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)