You are on page 1of 9

Creacin de Tablas (DDL)

Universidad de Sonsonate
FACULTAD DE INGENIERIA Y CIENCIAS NATURALES

Bases de datos
Guia-4
Creacin de Tablas (DDL)

Sonsonate, Marzo 2013 Docente: lvaro H. Zavala Instructor: Jorge A. Menjvar

Pgina 1 de 9

Creacin de Tablas (DDL)

Contenido
Introduccin ............................................................................................................................................ 3 Creacin de tablas ................................................................................................................................... 3 Sintaxis de creacin de tabla ............................................................................................................... 3 Tipos de datos...................................................................................................................................... 3 Restricciones de integridad ................................................................................................................. 4 Ejemplo 1 ................................................................................................................................................ 4 Crear tabla ........................................................................................................................................... 4 Ejemplo 2 ............................................................................................................................................... 5 Borrado de tablas DROP TABLE ........................................................................................................... 6 Modificar Tablas ..................................................................................................................................... 7 Orden TRUNCATE............................................................................................................................. 7 Borrar restricciones ............................................................................................................................. 7 EJERCICIOS ........................................................................................................................................... 7 EJERCICIO 1. CREACION DE TABLAS ......................................................................................... 8 EJERCICIO 2. CREACION DE TABLAS ......................................................................................... 9

Pgina 2 de 9

Creacin de Tablas (DDL)

Introduccin
Las tablas son las unidades bsicas de almacenamiento de datos. Veremos cmo se crean las tablas en Mysql y como se definen las restricciones de integridad asociadas a dichas tablas. Y se asociarn todas las restricciones de integridad semnticas admitidas (Nulos, llaves Primarias, llaves foraneas (Clasula UNIQUE)) y restricciones de integridad sobre valores de columnas en la tabla.

Creacin de tablas
Para crear una tabla es necesario tener el privilegio CREATE TABLE en el servidor.

Sintaxis de creacin de tabla


CREATE TABLE [esquema.]tabla( Columna Tipo [Especificaciones], Columna2 Tipo [Especificaciones] [Indice] [restriccin_tabla], [Restriccion]) ENGINE=InnoDB [Especificaciones];

Tipos de datos
Tipo VARCHAR (s) CHAR (s) INT (s) DATE DATETIME DOUBLE(M,D) Float (M,D) Blob, TinyBlob, MediumBlob, LongBlob Descripcin Caracteres de longitud variable. Mximo s caracteres. Lmite 4000 caracteres. Caracteres de longitud fija. Lmite 2000 caracteres. Entero. Fecha Es una combinacin de formato de fecha y hora conjuntamente. Su representacin es 'YYYY-MM-DD HH:MM:SS' Nmero de coma flotante de precisin doble. Nmero de coma flotante de precisin simple Un tipo de datos Blob es un objeto binario que puede almacenar cualquier tipo de datos o informacin, desde un archivo de texto con todo su formato (se diferencia en esto del tipo Text) hasta imgenes, archivos de sonido o video, etc.

Pgina 3 de 9

Creacin de Tablas (DDL)

Restricciones de integridad
Es importante que los datos de una base de datos, estn sujetos a reglas de integridad predefinidas. Oracle permite definir y forzar que se verifiquen las reglas de integridad de los datos declarando Restricciones de Integridad y definiendo Triggers (Triggers Se vern ms adelante en otra gua). Una Restriccin de Integridad, es un mtodo declarativo de definir una restriccin para una columna de una tabla. Integridad de datos: La integridad hace referencia a que los datos de la base de datos han de ajustarse a una serie de restricciones antes de almacenar. As pues, una restriccin de integridad ser una regla que restringe el rango de valores para una o ms columnas de una tabla. Al almacenar datos en las tablas se pueden ajustar a una serie de restricciones predefinidas, por ejemplo: que una columna no pueda tener valores negativos, que una cadena de caracteres se deba almacenar en maysculas, que el valor de una columna no pueda ser 0. Integridad referencial. Lo cual garantiza que los valores de una columna/s de una tabla dependan de los valores de otra columna/s de otra tabla. Para definir una restriccin en la orden create table se utiliza CONSTRAINT. Este puede restringir una o varias columnas de una misma tabla. Hay dos modos de especificar las restricciones: como parte de una definicin de columna (restriccin de columna) o al final una vez especificada todas las columnas (restriccin de tabla). Se declaran al crear modificar la tabla (CREATE/ALTER TABLE). Pueden ser aplicadas sobre columnas, que se colocan tras la definicin de la columna o sobre la tabla, que implican ms de una columna. NOT NULL: no admite valores nulos. UNIQUE: los valores de la columna son nicos. PRIMARY KEY: la columna es clave primaria. REFERENCES: indica que la columna es llave fornea en una relacin de integridad referencial. ON DELETE CASCADE|SET NULL: Mantiene la integridad referencial eliminando los registros del lado relacionado cuando se eliminan los registros del lado principal de la relacin (CASCADE) o coloca valores nulos a los registros de la llave borrada (SET NULL)

Ejemplo 1
Crear tabla
Crear la tabla de empleados. Cada empleado puede tener un jefe o ninguno (null). El jefe es a su vez un empleado por lo que hay una clave ajena definida sobre la misma tabla. CREATE TABLE empleados (cod_emp char(4), Pgina 4 de 9

Creacin de Tablas (DDL)

nom_emp varchar(10) not null, salario integer not null default 250, fecha_nac date , comision integer, cod_jefe char(4), PRIMARY KEY (cod_emp), FOREIGN KEY (cod_jefe) REFERENCES empleados ON DELETE CASCADE ) ENGINE=InnoDB;

Ejemplo 2

CREATE TABLE `sysbd`.`geo_paises` ( `IDPais` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT , `NombrePais` VARCHAR(80) NOT NULL DEFAULT '' , `FechaCreacion` DATETIME NOT NULL , PRIMARY KEY (`IDPais`) ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARACTER SET = utf8 CREATE TABLE `sysbd`.`geo_departamentos` ( `IDDepartamento` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
Pgina 5 de 9

Creacin de Tablas (DDL)

`NombreDepartamento` VARCHAR(80) NOT NULL DEFAULT '' , `IDPais` INT(11) UNSIGNED NOT NULL , `FechaCreacion` DATETIME NOT NULL , PRIMARY KEY (`IDDepartamento`) , INDEX `fk_geo_departamentos_geo_paises1_idx` (`IDPais` ASC) , CONSTRAINT `fk_geo_departamentos_geo_paises1` FOREIGN KEY (`IDPais` ) REFERENCES `sysbd`.`geo_paises` (`IDPais` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 15 DEFAULT CHARACTER SET = utf8

CREATE TABLE `sysbd`.`geo_municipios` ( `IDMunicipio` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT , `NombreMunicipio` VARCHAR(80) NOT NULL DEFAULT '' , `IDDepartamento` INT(11) UNSIGNED NOT NULL , `FechaCreacion` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`IDMunicipio`) , INDEX `fk_geo_municipios_geo_departamentos1_idx` (`IDDepartamento` ASC) , CONSTRAINT `fk_geo_municipios_geo_departamentos1` FOREIGN KEY (`IDDepartamento` ) REFERENCES `sysbd`.`geo_departamentos` (`IDDepartamento` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARACTER SET = utf8

Borrado de tablas DROP TABLE


La orden sql DROP TABLE suprime una tabla de la base de datos. Cada usuario puede borrar sus propias tablas. Solo el administrador de la base de datos o algn usuario con privilegios suficientes, puede borrar las tablas de otro usuario. Al suprimir una tabla tambin se suprimen los ndices y los privilegios asociados a ella. Las vistas y los sinnimos creados a partir de esta tabla dejan de funcionar peor siguen existiendo en la base de datos por lo que habra que eliminarlos. El formato es: DROP TABLE nombre_tab [cascade constraints] DROP TABLE empleados;

Pgina 6 de 9

Creacin de Tablas (DDL)

Modificar Tablas
Agregar una columna a una tabla ya creada alter table clientes add column DireccionCliente varchar(100);

Quitar una columna de una tabla alter table clientes drop column DireccionCliente;

Modifcar el tipo de dato asociado a una columna alter table personas modify column FechaNac date;

Orden TRUNCATE
La orden truncate permite suprimir todas las filas de una tabla y liberar el espacio ocupado para otros usos pero no desaparece la definicin de la tabla. Es una orden del lenguaje DDL que no genera retroceso (ROLLBACK). la orden delete no libera espacio.

Su formato: TRUNCATE TABLE nom_tabla; Truncate Table Matricula;

Borrar restricciones
Sintaxis: ALTER TABLE tabla DROP PRIMARY KEY | UNIQUE(campos) | CONSTRAINT nombreRestriccin [CASCADE] ALTER TABLE CursosActuales DROP PRIMARY KEY; ALTER TABLE CursosActuales DROP(comision);

EJERCICIOS
INDICACIONES

Pgina 7 de 9

Creacin de Tablas (DDL)

Elabore las instrucciones necesarias en scripts para los ejercicios planteados, elabore tambin las instrucciones del esquema (usuario) creado para almacenar las tablas

EJERCICIO 1. CREACION DE TABLAS


A partir del diagrama dado cree el script para las tablas atendiendo las restricciones de llaves planteadas en el esquema y las que siguen. Para las llaves forneas de la tabla detalle_factura aplicar borrado en cascada (on delete cascade) El campo cliente debe ser nico el campo cantidad debe tener como valor por defecto 1 (default 1) todos los campos no deben aceptar valores nulos (not null) a excepcin de DireccionCliente y NITcliente Los campos Precio, Precio_total, Cantidad, TotalFactura deben ser mayores a cero Mediante el alter table adicionar 1 columna a la tabla producto que ser marca

Nota: utilice los tipos de datos que crea conveniente segn la informacin que se almacenara Cliente Id_cliente (PK) Cliente DireccionCliente NITcliente Factura NoFactura (PK) Id_cliente (FK) FechaFact TotalFactura Detalle_factura Numero (PK) NoFactura(FK) Id_producto(FK) Cantidad Precio_total M

Producto Id_Producto(PK) Producto Precio

Pgina 8 de 9

Creacin de Tablas (DDL)

EJERCICIO 2. CREACION DE TABLAS


A partir del diagrama dado cree el script para las tablas atendiendo las restricciones de llaves planteadas en el esquema y las que siguen. Para las llaves forneas de la tabla prstamo aplicar borrado en cascada (on delete cascade) El campo nombres del lector debe ser nico as como el campo autor todos los campos no deben aceptar valores nulos (not null) Mediante el alter table adicionar 2 columnas a la tabla lector que sern direccin y edad Mediante alter table cambiar los campos Nombres y Apellidos del lector por NomLector y ApeLector respectivamente En los campos fecha_pres y fecha_dev colocar como valor por defecto(defautl) la fecha del sistema Nota: utilice los tipos de datos que crea conveniente segn la informacin que se almacenara

Lector

Prstamo

Libro

Id_lector (PK) Nombres Apellidos

Id_prestamo (PK) Id_lector (FK) Id_libro (FK) Fecha_pres Fecha_dev

Id_libro (PK) Titulo

Libro_autor Correlat (PK) Id_libro (FK) Id_autor (FK)

Autor Id_autor (PK) Autor

Libro_Editorial Correlat (PK) Id_libro (FK) Id_editorial(FK)

Editorial Id_editorial(PK) Editorial

Pgina 9 de 9

You might also like