Gestión de Bases de Datos MySQL: Creación, Modificación y Consultas

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,41 KB

DROP DATABASE IF EXISTS biblioteca; (borramos bd)
CREATE DATABASE biblioteca; (crea la bd)
USE biblioteca; (usamos la bd)
DROP TABLE IF EXISTS libros; (borramos la tabla)
CREATE TABLE libros ( (creamos tabla con sig campos)
codigo INTEGER(4) AUTO_INCREMENT, (campo numerico y autoincremental)
fecha DATE, (campo fecha)
DNI VARCHAR(9) UNIQUE NOT NULL, (campo sin repeticiones y obligatorio no vacio)
Poblacion VARCHAR(20) DEFAULT 'Lugo',(campo texto longitud variable,valor por defecto Lugo)
PRIMARY KEY (codigo) (campo clave principal codigo)
FOREIGN KEY (cod_numero) REFERENCES libros(codigo) (clave foranea de tabla libros y su clave principal así usa RESTRICT y no permite ni modificar ni borrar)
FOREIGN KEY (cod_numero) REFERENCES libros(Dni) ON DELETE CASCADE ON UPDATE CASCADE (así si permite borrar y modificar)
FOREIGN KEY (cod_numero) REFERENCES libros(Dni) ON DELETE RESTRICT ON UPDATE CASCADE (así no permite borrar y si modificar)
); (fin definición campos tabla)
)ENGINE=InnoDB; (fin de campos y tipo de motor InnoDB para Foreign Key)

Modificación de Tablas y Creación de Claves Ajenas

(TAREA 1-modifica tabla y crea las claves ajenas)

ALTER TABLE COCINEROS ADD CONSTRAINT COCIN_FK_DNI FOREIGN KEY(DNI) REFERENCES EMPLEADOS(DNI) ON DELETE RESTRICT ON UPDATE CASCADE;

Añadir un índice para búsquedas frecuentes

Añade un índice búsquedas frecuentes por Apellidos y Nombre sin duplicados.

ALTER TABLE EMPLEADOS
ADD UNIQUE apellnom (Apellidos, Nombre);
SHOW INDEX FROM EMPLEADOS;

Comprobar la fecha de alta de los empleados

Comprueba que la fecha de alta de los empleados no sea anterior a esa fecha.

ALTER TABLE EMPLEADOS
ADD CHECK (FechaAlta>="2010-07-15");

Restricción de valores en el turno de trabajo

El turno de trabajo sólo puede tomar 3 valores: mañana, tarde y noche.(no utilices CHECK).

ALTER TABLE CAMAREROS
MODIFY Turno ENUM("mañana", "tarde", "noche");
DESCRIBE CAMAREROS;

Añadir columnas entre otras existentes

Añade las columnas Apellidos y Nombre entre el código y la dirección.

ALTER TABLE PROVEEDORES
ADD Apellidos VARCHAR(20) AFTER CodigoPro,
ADD Nombre VARCHAR(15) AFTER Apellidos;
DESCRIBE PROVEEDORES;

Establecer valor por defecto en una columna

El valor por defecto del número de asientos en las mesas es 4.

ALTER TABLE MESAS
ALTER COLUMN Nasientos SET DEFAULT 4;
DESCRIBE MESAS;

Añadir un índice y mostrar los índices de una tabla

Añade un índice por Categoría. Muestra todos los índices de la tabla.

ALTER TABLE PRODUCTOS
ADD UNIQUE Cat (Categoria);
SHOW INDEX FROM PRODUCTOS;

Restricción en el tipo de dato y nulabilidad

Añade una restricción en la tabla, de forma que el Stock sea entero de 4 cifras, sin signo y que no admita nulos.

ALTER TABLE PRODUCTOS
MODIFY stock INT(4) UNSIGNED NOT NULL;
DESCRIBE PRODUCTOS;

Borrar un índice

Borra el índice que acabas de crear.

ALTER TABLE PRODUCTOS
DROP INDEX Cat;
SHOW INDEX FROM PRODUCTOS;

Borrar una tabla y sus claves ajenas

Borra la tabla PROVEEDORES.Borra previamente las claves ajenas.

ALTER TABLE PRODUCTOS
DROP FOREIGN KEY PRODU_FK_Cprov;
DROP TABLE PROVEEDORES;


Inserción, Consultas y Modificación de Datos

INSERT INTO libros (codigo,titulo,autor,editorial) VALUES (6,'Usabilidad','Berta','Larouse');

(inserta valores en campos de la tabla, ojo los numeros no van entre comillas y las letras si)
SHOW TABLES; (muestra las tablas de la BD)
DESCRIBE libros; (muestra estructura tabla libros)
SELECT * FROM libros; (muestra todos los campos de libros)
SELECT * FROM Clientes LIMIT 0,15; (muesta como max 15 filas de Clientes)
SELECT titulo, autor FROM libros; (muestra solo los campos indicados)
USE libros; SHOW TABLES; (utiliza la bd y muestra las tablas)
CREATE VIEW vista_articulos AS SELECT cantidad,precio,articulo,cantidad*precio AS importe FROM artículos;
(Crea una vista llamada vista_articulos y selecciona los campos y cantidad*precio llamo importe de articulos)
DELETE FROM Clientes WHERE Dni='12345678P'; (borra de la tabla el dni)
UPDATE Clientes SET Dni='11223344X' WHERE Dni='12345678P' (modifica el dni por otro)
ALTER TABLE Clientes CHANGE tfno telefono VARCHAR(9); (modifica columna tfno por telefono)
ALTER TABLE Clientes MODIFY Apellido VARCHAR(22); (modifica tipo de datos a varchar(22)
ALTER TABLE Clientes DROP telefono; (borra col telef)

Entradas relacionadas: