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 caracteres latin1.
  • 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 a NumEmpleado.
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 tabla Empleados.
ALTER TABLE Empleados MODIFY COLUMN NumHijos CHAR(2);
  • Renombrar el campo Nombre a NombreProveedor en la tabla Proveedores.
ALTER TABLE Proveedores CHANGE COLUMN Nombre NombreProveedor VARCHAR(50);
  • Añadir una restricción para que Comision sea mayor de 100 en la tabla Empleados.
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 tabla Centros no fue definida previamente en el documento).
DELETE FROM Centros;
  • Eliminar la restricción chk_comision de la tabla Empleados.
ALTER TABLE Empleados DROP CONSTRAINT chk_comision;
  • Eliminar la tabla Centros (nota: la tabla Centros no fue definida previamente en el documento).
DROP TABLE Centros;
  • Eliminar la base de datos Multinacional.
DROP DATABASE Multinacional;

Entradas relacionadas: