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