230 likes | 386 Views
Administracion de Base de Datos I. Semana 03. Tablas. Conceptos Basicos Estructura Sintaxis de Creacion Modificacion Eliminacion. Conceptos Basicos.
E N D
Administracion de Base de Datos I Semana 03
Tablas • ConceptosBasicos • Estructura • Sintaxis de Creacion • Modificacion • Eliminacion
ConceptosBasicos El lenguaje de definición de datos (DDL, Data DefinitionLanguage) es el encargado de permitir la descripcion de los objetos que forman una base de datos.
ConceptosBasicos • El lenguaje de definición de datos le va a permitir llevar a cabo las siguientes acciones: • Creación de tablas, índices y vistas. • Modificación de las estructura de tablas, índices y vistas. • Supresión de tablas, índices y vistas.
Creación • CREATE TABLE <nombre_tabla>(<nombre_campo> <tipo_datos(tamaño)>[null| notnull] [default <valor_por_defecto>]{,<nombre_campo> <tipo_datos(tamaño)>[null | notnull] [default <valor_por_defecto>]}[, constraint<nombre> primarykey(<nombre_campo>[ ,...n ])][, constraint<nombre> foreignkey (<nombre_campo>[ ,...n ]) references <tabla_referenciada> ( <nombre_campo> [ ,...n ] ) ] ) ;
Creación CREATE TABLEtCoches( matricula char(8) notnull,marca varchar(255) null,modelo varchar(255) null,color varchar(255) null,numero_kilometrosnumeric(14,2) null default 0,constraintPK_Cochesprimarykey(matricula)) ;
Creación En este ejemplo creamos una tabla llamada tCoches con cinco campos (matricula, marca, modelo, color, numero_kilometros). Nótese que se han omitido las tildes y los espacios a propósito. Nunca cree campos que contengan caracteres específicos de un idioma (tildes, eñes, ...) ni espacios.
Modificacion En ocasiones puede ser necesario modificar la estructura de una tabla, comúnmente para añadir un campo o reestricción. Para ello disponemos de la instruccciónALTER TABLE.
Modificacion • ALTER TABLE nos va a permitir: • Añadir campos a la estructura incial de una tabla. • Añadir restricciones y referencias.
Modificacion ALTER TABLE <nombre_tabla>ADD <nombre_campo> <tipo_datos(tamaño)>[null|notnull] [default <valor_por_defecto>]{, <nombre_campo> <tipo_datos(tamaño)>[null |notnull] [default <valor_por_defecto>]} ;
Modificacion ALTER TABLEtCochesADD num_plazasintegernull default 5; En este ejemplo añadimos el campo num_plazas a la tabla tCoches que habiamos creado en el apartado anterior.
Modificacion Para añadir una clave primaria vamos a crear una tabla de cliente y le añadiremos la clave primaria ejecutando una sentencia alter table:
Modificacion CREATE TABLE tClientes(codigointegernotnull,nombre varchar(255) notnull,apellidos varchar(255) null, nifvarchar(10) null,telefonovarchar(9) null,movilvarchar(9) null); ALTER TABLEtClientesADDCONSTRAINTPK_tClientesprimarykey (codigo); :
Modificación Solo podemos modificar una única tabla a la vez con ALTER TABLE, para modificar más de una tabla debemos ejecutar una sentencia ALTER TABLE por tabla.
Modificación Para añadir una clave externa (o foránea) necesitamos una tercera tabla en nuestra estructura. Por un lado tenemos la tabla tCoches y la tabla tClientes, ahora vamos a crear la tabla tAlquileres que será la encargada de "decirnos" que clientes han alquilado un coche.
Modificación CREATE TABLE tAlquileres(codigointegernotnull,codigo_clienteintegernotnull,matricula char(8) notnull, fx_alquilerdatetimenotnull,fx_devoluciondatetimenull);
Modificación ALTER TABLEtAlquileresADDCONSTRAINTPK_tAlquileresprimarykey (codigo),CONSTRAINT FK_Clientesforeignkey (codigo_cliente)referencestClientes (Codigo),CONSTRAINTFK_Cochesforeignkey (matricula)referencestCoches (matricula);
Modificación Creamos la tabla tAlquileres, y luego mediante una sentencia ALTER TABLE añadimos una clave primaria llamada PK_tAlquileres en el campo codigo, una clave externa llamada FK_Clientes referenciada al codigo de la tabla tClientes, y por último otra clave externa llamada FK_Coches referenciada al campo matricula de la tabla tCoches.
Modificación Cuando creamos una clave externa el campo referenciado y el que sirve de referencia deben ser del mismo tipo de datos. Si somos observadores nos daremos cuenta que los campos que sirven de referencia a las claves foráneas son las claves primarias de sus tablas. Sólo podemos crear claves externas que referencien claves primarias.
Eliminación Para eliminar una tabla se realiza la siguiente instrucción : DROP TABLE <nombre_tabla>; .
Eliminación La instrucción DROP TABLE elimina de forma permanente la tabla y los datos en ella contenida. Si intentamos eliminar una tabla que tenga registros relacionados a través de una clave externa la instrucción DROP TABLE fallará por integridad referencial. Cuando eliminamos una tabla eliminamos también sus índices.