Gestión de Base de Datos MySQL: Creación, Estructura y Operaciones SQL
Clasificado en Informática
Escrito el en español con un tamaño de 6,17 KB
Gestión de Base de Datos Multinacional con SQL
Configuración Inicial de la Base de Datos
Descripción de la creación de la base de datos y sus propiedades.
- Crear la base de datos "Multinacional" con colación
latin1_swedish_ci
y juego de caractereslatin1
. - Establecer el motor de las tablas como
InnoDB
.
CREATE DATABASE Multinacional
DEFAULT CHARACTER SET latin1
COLLATE latin1_swedish_ci;
USE Multinacional;
Definición del Esquema de Tablas
Tabla Empleados
Requisitos para la tabla Empleados:
- El campo
NumEmpleado
debe contener un valor que no se repita (clave primaria auto-incremental). - El campo
Salario
solo puede tomar los valores "Bruto" o "Neto". - El campo
Comision
debe ser un número decimal, no puede dejarse en blanco y debe ser mayor de 100. - El campo
NumHijos
debe ser una cadena de longitud fija de 2 caracteres. - El campo
Nombre_Pareja
debe ser una cadena de longitud fija de 5 caracteres. - Debe existir una clave foránea a la tabla
Departamentos
.
-- Creación de la tabla Empleados
CREATE TABLE Empleados (
NumEmpleado INT PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(50),
Apellido VARCHAR(50),
Salario ENUM('Bruto', 'Neto') NOT NULL,
Comision DECIMAL(10,2) NOT NULL CHECK (Comision > 100),
NumHijos CHAR(2),
NumDepto INT,
Nombre_Pareja CHAR(5),
CONSTRAINT fk_departamento FOREIGN KEY (NumDepto) REFERENCES Departamentos(NumDepto) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB COMMENT='Tabla de empleados';
Tabla Proveedores
Requisitos para la tabla Proveedores:
- El campo
Codigo
es la clave primaria. - El campo
Direccion
es una cadena de hasta 100 caracteres. - El campo
Telefono
debe ser una cadena de caracteres de longitud fija de 9 caracteres, con una restricción con nombre. - El campo
Nombre_Pareja
debe ser una cadena de longitud fija de 5 caracteres.
-- Creación de la tabla Proveedores
CREATE TABLE Proveedores (
Codigo INT PRIMARY KEY,
Nombre VARCHAR(50),
Direccion VARCHAR(100),
Telefono CHAR(9) CONSTRAINT chk_telefono CHECK (LENGTH(Telefono) = 9), -- Añadida restricción con nombre
Nombre_Pareja CHAR(5)
) ENGINE=InnoDB COMMENT='Tabla de proveedores';
Tabla Departamentos
Requisitos para la tabla Departamentos:
- El campo
NumDepto
es la clave primaria. - El campo
Presupuesto
debe ser mayor de 6000, con una restricción con nombre. - El campo
Comunidad
debe tener un valor por defecto "Castilla y León". - Debe existir una clave foránea a la tabla
Proveedores
. - Nota: Esta tabla tiene el requisito de tener un máximo de 100 filas, lo cual no se implementa directamente en DDL.
-- Creación de la tabla Departamentos
CREATE TABLE Departamentos (
NumDepto INT PRIMARY KEY,
NumCentro INT NOT NULL,
NombreDepto VARCHAR(50),
Presupuesto DECIMAL(10,2) CONSTRAINT chk_presupuesto CHECK (Presupuesto > 6000), -- Añadida restricción con nombre
Comunidad VARCHAR(50) DEFAULT 'Castilla y León',
Proveedor INT NOT NULL,
CONSTRAINT fk_proveedor FOREIGN KEY (Proveedor) REFERENCES Proveedores(Codigo) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB COMMENT='Tabla de departamentos';
Operaciones de Gestión y Modificación
Visualizar Estructura de la Base de Datos y Tablas
Comandos para listar bases de datos, seleccionar una y mostrar sus tablas y la estructura de una tabla específica.
SHOW DATABASES;
USE Multinacional;
SHOW TABLES;
DESCRIBE Empleados; -- Usando DESCRIBE (equivalente a DESC)
DESCRIBE Proveedores;
Modificar Estructura de Tablas
Ejemplos de comandos ALTER TABLE
para modificar la estructura de las tablas existentes. Note que algunos de estos comandos podrían ser redundantes si la estructura ya fue definida en la creación.
- Modificar la clave primaria de
Empleados
aNumEmpleado
.
ALTER TABLE Empleados DROP PRIMARY KEY, ADD PRIMARY KEY (NumEmpleado);
- Añadir un campo "Dirección" a la tabla
Proveedores
.
ALTER TABLE Proveedores ADD COLUMN Direccion VARCHAR(100) AFTER Nombre;
- Cambiar el tipo de datos de "NumHijos" a
CHAR(2)
en la tablaEmpleados
.
ALTER TABLE Empleados MODIFY COLUMN NumHijos CHAR(2);
- Renombrar el campo
Nombre
aNombreProveedor
en la tablaProveedores
.
ALTER TABLE Proveedores CHANGE COLUMN Nombre NombreProveedor VARCHAR(50);
- Añadir una restricción para que
Comision
sea mayor de 100 en la tablaEmpleados
.
ALTER TABLE Empleados ADD CONSTRAINT chk_comision CHECK (Comision > 100);
Copia de Seguridad
Comando para realizar una copia de seguridad de la base de datos "Multinacional".
mysqldump -u root -p Multinacional > Miempresa.sql
Operaciones de Eliminación
Comandos para eliminar datos, tablas o la base de datos completa.
- Vaciar los datos de la tabla
Centros
sin eliminar la tabla (nota: la tablaCentros
no fue definida previamente en el documento).
DELETE FROM Centros;
- Eliminar la restricción
chk_comision
de la tablaEmpleados
.
ALTER TABLE Empleados DROP CONSTRAINT chk_comision;
- Eliminar la tabla
Centros
(nota: la tablaCentros
no fue definida previamente en el documento).
DROP TABLE Centros;
- Eliminar la base de datos
Multinacional
.
DROP DATABASE Multinacional;