¿Cómo formamos una sentencia DDL en MySQL?
OPERACIÓN PRINCIPAL
ELEMENTO
Cada sentencia termina con ;
Víctor Gil Rodríguez
OPERACIÓN PRINCIPAL
ELEMENTO
DATABASE
CREATE
DROP
TABLE
USE
ALTER
VIEW
RENAME
¿Qué operaciones podemos hacer con el elemento DATABASE?
CREATE
DATABASE
NombreBD;
DROP
USE
NombreBD;
CREATE DATABASE MiBaseDatos;
USE MiBaseDatos;
DROP DATABASE MiBaseDatos;
EJEMPLOS
¿Qué operaciones podemos hacer con el elemento TABLE?
CREATE
CREATE TABLE nomTabla1(estructura); ALTER TABLE nomTabla1 + Operación Secundaria; DROP TABLE nomTabla1; RENAME TABLE nomTable1 TO nomTable2;
DROP
TABLE
NombreTabla
ALTER
EJEMPLOS
RENAME
CREATE
TABLE
( estructura );
SINTAXIS:
CREATE TABLE Tabla1( nombreCampo1 tipoDato [restricciónCampo], nombreCampo2 tipoDato, ... , restriccionesTabla PK,FK,CK,... );
EJEMPLOS
CREATE
TABLE
( estructura );
EJEMPLOS
CREATE TABLE DEPARTAMENTO ( codigo CHAR(2), nombre VARCHAR(30) UNIQUE, --campo con restricción de campo CONSTRAINT dep_cod_PK PRIMARY KEY(codigo) -- Restricción clave primaria -- definida al final. ); CREATE TABLE EMPLEADO ( numEmple CHAR(5) PRIMARY KEY, --Restricción clave primaria en campo. nombre VARCHAR(25) NOT NULL, sueldo MEDIUMINT, fechaNac DATE, dpto CHAR(2), CONSTRAINT emp_dep_FK FOREIGN KEY(dpto) REFERENCES DEPARTAMENTO(codigo) on delete SET NULL on update CASCADE --Restricción clave foránea );
TABLE
DROP
NombreTabla;
EJEMPLOS
DROP TABLE Empleado; DROP TABLE Departamento; /* IMPORTANTE: No se podrá eliminar una tabla si tiene alguna dependencia con otra mediante una restricción FK. Primero debemos borrar EMPLEADO y después DEPARTAMENTO, es decir, en el sentido contrario en el que se crean. */
ALTER
TABLE
Nombre Tabla
Operación Secundaria
Elemento de la tabla
Operación Secundaria
ADD
INDEX
(nombre campo) ;
DROP
CONSTRAINT
nomRestricción TipoRestricción (campo)[...];
COLUMN
CHANGE
sintaxis según operación a realizar
ALTER
TABLE
Nombre Tabla
Operación Secundaria
Elemento de la tabla
Operación Secundaria
ADD
INDEX
nombreIndice (nombre campo) ;
DROP
INDEX
nombreIndice;
EJEMPLOS
ALTER TABLE Empleado ADD INDEX idxNombre(Nombre); ALTER TABLE Empleado DROP INDEX idxNombre;
ALTER
TABLE
Nombre Tabla
Operación Secundaria
Elemento de la tabla
Operación Secundaria
ADD
CONSTRAINT
nomRestricción TipoRestricción (campo)[...];
DROP
CONSTRAINT
nomRestricción ;
EJEMPLOS
ALTER TABLE Empleado ADD CONSTRAINT emp_sue_CK CHECK (sueldo>1000); ALTER TABLE Empleado DROP CONSTRAINT emp_sue_CK;
ALTER
TABLE
Nombre Tabla
Operación Secundaria
Elemento de la tabla
Operación Secundaria
ADD
COLUMN
nomCampo + tipoCampo + [posibleRestricción] ;
DROP
COLUMN
nomCampoExistente;
CHANGE
COLUMN
nomCampoViejo + nomCampoNuevo + tipoCampo ;
EJEMPLOS
ALTER TABLE Empleado ADD COLUMN cargo VARCHAR(20); ALTER TABLE Empleado DROP COLUMN fechaNac; ALTER TABLE Empleado CHANGE COLUMN cargo puesto VARCHAR(15) NOT NULL;
¿Qué operaciones podemos hacer con el elemento VIEW?
CREATE
VIEW
Nombre Vista
Sentencia SELECT
+ AS +
DROP
EJEMPLOS
CREATE VIEW empleConta AS SELECT numEmple, nombre FROM EMPLEADO WHERE dpto='11';