Está en la página 1de 27

Taller de Bases de Datos

Unidad 2: Lenguaje de Denicion de Datos (DDL)


MSC. Jaime Jes us Delgado Meraz
j2deme@gmail.com
Instituto Tecnol ogico de Ciudad Valles
Ago - Dic 2013
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 1 / 27
1 Introduccion
2 Comandos DDL
CREATE DATABASE
CREATE TABLE
Restricciones
ALTER TABLE
RENAME TABLE
DROP TABLE
TRUNCATE TABLE
3 Conclusion
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 2 / 27
Introducci on
1 Introduccion
2 Comandos DDL
3 Conclusion
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 3 / 27
Introducci on
Introduccion
El lenguaje de denicion de datos (DDL, Data Denition
Language), es el lenguaje que permite denir la estructura de
nuestra base de datos.
Su especicacion puede cambiar de un gestor de bases de datos a
otro.
Dene como el sistema organiza internamente los datos.
Se encarga de la creacion, modicacion y eliminacion de los objetos
de la base de datos (es decir de los metadatos).
Una base de datos posee un esquema. El esquema suele tener el
mismo nombre que el usuario y sirve para almacenar los objetos de
esquema, es decir los objetos que posee el usuario.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 4 / 27
Comandos DDL
1 Introduccion
2 Comandos DDL
CREATE DATABASE
CREATE TABLE
Restricciones
ALTER TABLE
RENAME TABLE
DROP TABLE
TRUNCATE TABLE
3 Conclusion
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 5 / 27
Comandos DDL
Comandos DDL
Crear CREATE objeto...
Modicar ALTER objeto...
Renombrar RENAME objeto...
Eliminar DROP objeto...
TRUNCATE objeto...
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 6 / 27
Comandos DDL CREATE DATABASE
CREATE DATABASE
Se requiere especicar los archivos y ubicaciones que se utilizaran
para la base de datos, ademas de otras indicaciones tecnicas y
administrativas.
CREATE DATABASE prueba;
Se pueden especicar otras caractersticas al crear la base de datos:
1 CREATE DATABASE prueba
2 LOGFILE prueba.log
3 MAXLOGFILES 25
4 MAXINSTANCES 10
5 ARCHIVELOG
6 CHARACTER SET WIN1214
7 NATIONAL CHARACTER SET UTF8
8 DATAFILE prueba1.dbf AUTOEXTEND ON MAXSIZE 500 MB;
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 7 / 27
Comandos DDL CREATE DATABASE
CREATE DATABASE
Una base de datos es un conjunto de objetos pensados para gestionar
datos. En particular existe la siguiente organizacion:
Objeto
Esquema
Catalogo
Figura 1: Organizacion de una base de datos
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 8 / 27
Comandos DDL CREATE TABLE
CREATE TABLE
Permite crear una tabla, as como denir las columnas y las
restricciones de estas.
1 CREATE TABLE nombre_tabla(
2 nombre_columna tipo_dato,
3 nombre_columna tipo_dato,
4 nombre_columna tipo_dato
5 );
Nota
Los tipos de datos varan dependiendo del motor de bases de datos.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 9 / 27
Comandos DDL CREATE TABLE
CREATE TABLE
1 CREATE TABLE usuarios(
2 codigo int,
3 nombre varchar(60),
4 clave varchar(15)
5 );
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 10 / 27
Comandos DDL CREATE TABLE
Tips
Los nombres de las tablas y columnas deben comenzar con una letra.
No deben tener mas de 30 caracteres.
Solo se permiten utilizar letras del alfabeto (ingles), n umeros o el
guion bajo ( ), algunos gestores soportan tambien los signos $ y #,
pero por motivos de portabilidad, no son recomendados.
No puede haber dos tablas con el mismo nombre para el mismo
esquema, sin embargo, pueden coincidir los nombres si estan en
distintos esquemas.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 11 / 27
Comandos DDL CREATE TABLE
Restricciones
Es posible a nadir ciertas restricciones a algunas columnas de nuestras
tablas.
1 CREATE TABLE nombre_tabla(
2 nombre_columna tipo_dato RESTRICCION,
3 nombre_columna tipo_dato RESTRICCION,
4 nombre_columna tipo_dato RESTRICCION
5 );
Una restriccion consiste en la denicion de una caracterstica adicional
que tiene una columna o una combinacion de columnas.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 12 / 27
Comandos DDL CREATE TABLE
Restricciones
1 CREATE TABLE usuarios(
2 codigo int CONSTRAINT pkCodigo PRIMARY KEY,
3 nombre varchar(60) NOT NULL,
4 clave char(10) CONSTRAINT ukClave UNIQUE,
5 f_ingreso datetime,
6 id_empresa int CONSTRAINT fkEmpresa
7 REFERENCES empresa(id)
8 );
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 13 / 27
Comandos DDL CREATE TABLE
Restricciones
NOT NULL indica que la columna no puede contener un valor nulo. Esto
puede verse tambien expresado como que el campo es
obligatorio.
CONSTRAINT sirve para denir una restriccion que se podra eliminar
cuando queramos sin tener que borrar la columna. A cada
restriccion se le asigna un nombre que se utiliza para
identicarla y para poder eliminarla cuando se quiera.
Como constraint se puede denir: la clave primaria, el ndice
unico (sin duplicados), el valor no nulo, y la clave foranea.
PRIMARY KEY Dene la columna como clave principal de la tabla.
Las columnas no puede contener valores nulos.
No pueden haber valores duplicados en esa columna, es
decir que dos las no pueden tener el mismo valor en
esa columna.
Solo hay una clave principal por tabla.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 14 / 27
Comandos DDL CREATE TABLE
Restricciones
UNIQUE Dene un ndice unico sobre la columna.
Un ndice unico es un ndice que no permite valores
duplicados, es decir que si una columna tiene denida
un restriccion de UNIQUE no podran haber dos las con
el mismo valor en esa columna.
Se suele emplear para que el sistema compruebe el
mismo que no se a naden valores que ya existen.
FOREIGN KEY Es una columna o conjunto de columnas que contiene
un valor que hace referencia a una la de otra tabla.
Una columna indicada como llave foranea no debe ser
denida como llave primaria.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 15 / 27
Comandos DDL CREATE TABLE
Restricciones
CHECK Es una restriccion que debe cumplir el campo sobre el
cual se dene el constraint, a traves de una condicion de
tipo logica (condicion que determina si algo se cumple o
no - falso o verdadero).
En la condicion pueden emplearse:
Operadores logicos relacionales (<,>,<=,>=,==,<>).
Operadores logicos booleanos (AND, OR, NOT) y otros,
como el de pertenencia a una lista de valores (IN).
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 16 / 27
Comandos DDL CREATE TABLE
Restricciones
CONSTRAINT nbrestriccion
PRIMARY KEY
( nbcol )
UNIQUE ( nbcol )
FOREIGN KEY
( nbcol )
REFERENCES tabla
( nbcol )
,
,
, ,
Figura 2: Estructura de una restricci on
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 17 / 27
Comandos DDL CREATE TABLE
Otra forma de especicar restricciones
Tambien es posible agregar las restricciones al nal de los comandos
de creacion de la tabla:
1 CREATE TABLE tab1 (
2 col1 INTEGER,
3 col2 CHAR(25) NOT NULL,
4 col3 CHAR(10),
5 col4 INTEGER,
6 col5 INT,
7 CONSTRAINT pk PRIMARY KEY (col1),
8 CONSTRAINT uq1 UNIQUE (col3),
9 CONSTRAINT fk5 FOREIGN KEY (col5)
10 REFERENCES tab2 (camporeferencia));
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 18 / 27
Comandos DDL ALTER TABLE
ALTER TABLE
La sentencia ALTER TABLE sirve para modicar la estructura de una
tabla que ya existe, mediante las operaciones de:
A nadir columnas
Eliminar columnas
Modicar la denicion de la columna
A nadir restricciones a las columnas
Eliminar restricciones de las columnas
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 19 / 27
Comandos DDL ALTER TABLE
Operaciones
ADD Permite a nadir caractersticas a la tabla, tales como
columnas, restricciones, ndices y llaves, entre otros.
ALTER Modica la estructura de la tabla y de sus componentes.
DROP Elimina componentes de la tabla como restricciones,
columnas, ndices y llaves, entre otros.
COLUMN Especica que la operacion se ejecutara sobre una columna
indicada.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 20 / 27
Comandos DDL ALTER TABLE
Operaciones
ALTER TABLE nbtabla
ADD nbcol
tipo
restriccion1
ADD restriccion2
DROP nbcol
DROP CONSTRAINT nbrest
COLUMN
COLUMN
Figura 3: Estructura basica de un ALTER TABLE
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 21 / 27
Comandos DDL RENAME TABLE
RENAME TABLE
Esta operacion renombra una o mas tablas.
La operacion de renombrado es atomica, es decir que nadie mas
puede accesar a las tablas mientras el renombrado se ejecuta.
1 RENAME TABLE
2 tbl_name TO new_tbl_name
3 [, tbl_name2 TO new_tbl_name2]
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 22 / 27
Comandos DDL DROP TABLE
DROP TABLE
El comando DROP TABLE elimina una o mas tablas, siempre y cuando
el usuario que ejecuta el comando tenga privilegios DROP para esas
tablas.
Toda la informacion de las tablas y la denicion de su estructura se
eliminan, y no hay forma de restaurarlas una vez eliminadas, por lo
que se deben extremar precauciones al ejecutar este comando.
1 DROP TABLE
2 [IF EXISTS] tbl_name
3 [, tbl_name]
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 23 / 27
Comandos DDL TRUNCATE TABLE
TRUNCATE TABLE
La operacion TRUNCATE TABLE vacia una tabla completamente. Para
esto requiere que el usuario tenga el privilegio DROP.
De manera logica, la operacion TRUNCATE TABLE es similar a una
operacion DELETE que borra todas las las, o una secuencia de
comandos DROP TABLE y CREATE TABLE.
Aunque el comando TRUNCATE TABLE es similar a un DELETE, se
clasica como un enunciado DDL mas que como uno DML. Sus
diferencias recaen principalmente en que:
Las operaciones de truncado, eliminan y recrean la tabla, lo cual es
mucho mas rapido que borrar las las una a una, especialmente para
tablas grandes.
Las operaciones de truncado causan un commit implcito, y no pueden
hacer roll back.
Las operaciones de truncado no devuelven un valor signicativo para el
n umero de las borradas. Su resultado com un es 0 rows affected,
lo que se interpreta como Sin informacion.
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 24 / 27
Comandos DDL TRUNCATE TABLE
TRUNCATE TABLE
Siempre y cuando el archivo de formato de tabla tbl name.frm sea
valido, la tabla se puede recrear como una tabla vaca usando
TRUNCATE TABLE, a un si los datos o ndices estan corruptos.
Cualquier valor incremental se resetea a su valor inicial.
La operacion TRUNCATE TABLE no invoca triggers (disparadores) de
tipo ON DELETE.
1 TRUNCATE [TABLE] tbl_name
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 25 / 27
Conclusion
1 Introduccion
2 Comandos DDL
3 Conclusion
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 26 / 27
Conclusion
Mas informaci on
En MySQL:
help Data Definition
help CREATE
help ALTER
help DROP
help TRUNCATE TABLE
MSC. Jaime Jes us Delgado Meraz (ITCV) Taller de Bases de Datos Ago - Dic 2013 27 / 27

También podría gustarte