DDL
(Data Definition Language)
(Lenguaje de Definición de Datos)
Parte N°1
Ing. Andy Hirvyn Rucoba Reátegui
DEFINCIÓN:
Este sub lenguaje de SQL, nos permite manipular (crear, modificar y
eliminar) una base de datos y sus diferentes objetos (tablas, vistas,
procedimientos almacenados, llaves, disparadores, etc.).
DDL
CREATE ALTER DROP
(Crea un (Modifica un (Borra un
Objeto) Objeto) Objeto)
BASE DE DATOS
Crea una base de datos:
CREATE DATABASE [NombreBD]
Ejemplos: CREATE DATABASE Contabilidad
Modifica propiedades una base de datos:
ALTER DATABASE [NombreBD] SET (Propiedades a cambiar)
Ejemplos: ALTER DATABASE Contabilidad SET SINGLE_USER
ALTER DATABASE Contabilidad SET MULTI_USER
Elimina una base de datos:
DROP DATABASE [NombreBD]
Ejemplos: DROP DATABASE Contabilidad
DROP DATABASE Ventas
Observaciones:
- Las propiedades a cambiar e inclusive la instrucción SET dependerán de cada gestor
de base de datos
TABLAS
Creación de una tabla :
CREATE TABLE [NombreTabla]
(Campo1 [TipoDato][Tamaño] [Null/Not Null] ,
Campo2 [TipoDato][Tamaño] [Null/Not Null] ,
. . .
. . .
. . .
CampoN [TipoDato][Tamaño] [Null/Not Null] ,
CONSTRAINT [NombrePK] PRIMARY KEY ( Campo(s)PK )
)
Observaciones:
- Los Nombres de las tablas no deben contener espacios ni caracteres especiales
- Los Campo(s) son aquellos que van a formar parte de la llave primaria
TABLAS
Ejemplo 1:
CREATE TABLE Empleado
(IdEmpleado Varchar(3) Not Null ,
Nombres Varchar(60) Null ,
Apellidos Varchar(100) Null ,
Edad TinyInt Null ,
Sueldo Numeric(18,2) ,
EstadoCivil Char(1) Null ,
Profesion Varchar(60) Null ,
CONSTRAINT PK_Empleado PRIMARY KEY ( IdEmpleado )
)
TABLAS
Ejemplo 2:
CREATE TABLE Stocks
(IdAlmacen Char(3) Not Null ,
IdProducto Varchar(8) Not Null ,
Stock Numeric(18,2) ,
CostoPromedio Numeric(18,2) ,
CostoUltimo Numeric(18,2) ,
Estado Char(1) Null ,
CONSTRAINT PK_Stock PRIMARY KEY ( IdAlmacen, IdProducto )
)
TABLAS
Creación de una tabla que tiene llaves foráneas:
CREATE TABLE [NombreTabla]
(Campo1 [TipoDato][Tamaño] [Null/Not Null] ,
Campo2 [TipoDato][Tamaño] [Null/Not Null] ,
. . .
. . .
. . .
CampoN [TipoDato][Tamaño] [Null/Not Null] ,
CONSTRAINT [NombrePK] PRIMARY KEY ( Campo(s)PK ) ,
CONSTRAINT [NombreFK1] FOREIGN KEY ( Campo(s)FK )
REFERENCES TablaRef1(Campo(s)PK_Ref) ,
CONSTRAINT [NombreFK2] FOREIGN KEY ( Campo(s)FK )
REFERENCES TablaRef2(Campo(s)PK_Ref)
)
Observaciones:
- La TablaRef es la tabla a la cual se hará la referencia (Tabla Origen) y tiene que
estar previamente ya creada
- Los Campo(s)PK_Ref son aquellos que forman parte de la llave primaria de la
tabla de referencia
TABLAS
Ejemplo 2:
CREATE TABLE Producto
(IdProducto Varchar(8) Not Null ,
Descripcion Varchar(100) ,
UnidadMedida Varchar(20) ,
IdMarca Char(3) ,
IdLinea Char(2) ,
Precio Numeric(18,4) Null ,
CONSTRAINT PK_Producto PRIMARY KEY (IdProducto) ,
CONSTRAINT FK_Marca_Producto FOREIGN KEY (IdMarca)
REFERENCES Marca(IdMarca) ,
CONSTRAINT FK_Linea_Producto FOREIGN KEY (IdLinea)
REFERENCES Linea(IdLinea)
)
TABLAS
Alteración a la estructura de una tabla ya creada:
1.- Agregar un campo a una tabla:
ALTER TABLE [NombreTabla]
ADD CampoNuevo [TipoDato][Tamaño] [Null/Not Null]
Ejemplo:
ALTER TABLE Producto ADD Estado Varchar(1) Null
2.- Cambiar el tipo de dato de un campo en una tabla:
ALTER TABLE [NombreTabla]
ALTER COLUMN Campo [TipoDato][Tamaño] [Null/Not Null]
Ejemplo:
ALTER TABLE Producto ALTER COLUMN Estado TinyInt
Observaciones:
- Habrá que tener en cuenta que no se puede cambiar el tipo de dato de un campo
de una tabla si este pertenece a una llave primaria o foránea
TABLAS
3.- Borrar un campo a una tabla:
ALTER TABLE [NombreTabla] DROP COLUMN Campo
Ejemplo:
ALTER TABLE Producto DROP COLUMN Estado
4.- Agregar una llave primaria a una tabla:
ALTER TABLE [NombreTabla]
ADD CONSTRAINT [NombrePK] PRIMARY KEY ( Campo(s)PK )
Ejemplo:
ALTER TABLE Producto
ADD CONSTRAINT PK_Producto PRIMARY KEY (IdProducto)
Observaciones:
- Habrá que tener en cuenta que no se puede borrar un campo de una tabla si este
pertenece a una llave primaria o foránea
TABLAS
5.- Agregar una llave foránea a una tabla(crear una relación entre dos tablas):
ALTER TABLE [NombreTabla]
ADD CONSTRAINT [NombreFK] FOREIGN KEY ( Campo(s)FK )
REFERENCES TablaRef(Campo(s)PK_Ref)
Ejemplo:
ALTER TABLE Producto
ADD CONSTRAINT FK_Marca_Producto FOREIGN KEY (IdMarca)
REFERENCES Marca(IdMarca)
6.- Borrar una llave (primaria o foránea) de una tabla:
ALTER TABLE [NombreTabla] DROP CONSTRAINT [NombrePK/FK]
Ejemplo:
ALTER TABLE Producto DROP CONSTRAINT FK_Marca_Producto
ALTER TABLE Producto DROP CONSTRAINT PK_Producto
TABLAS
Borrar una tabla ya creada:
DROP TABLE [NombreTabla]
Ejemplo:
DROP TABLE Producto
Observaciones:
- Habrá que tener en cuenta que no se puede borrar un tabla si otras tablas
dependen de ella