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 CAMAREROSMODIFY 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 PROVEEDORESADD 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 MESASALTER 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 PRODUCTOSADD 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 PRODUCTOSDROP INDEX Cat;SHOW INDEX FROM PRODUCTOS;Borrar una tabla y sus claves ajenas
Borra la tabla PROVEEDORES.Borra previamente las claves ajenas.
ALTER TABLE PRODUCTOSDROP 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)