160 likes | 356 Views
SQL: DDL. Francisco Moreno & Carlos Mario Zapata. SQL:DDL. DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos: -Tablas -Indices -Vistas - Otros. Se pueden crear tablas con la instrucción CREATE TABLE
E N D
SQL: DDL Francisco Moreno & Carlos Mario Zapata
SQL:DDL • DDL: Lenguaje de Definición de Datos • Permite crear objetos en la Base de Datos Tipos de Objetos: -Tablas -Indices -Vistas - Otros
Se pueden crear tablas con la instrucción CREATE TABLE ( atributos cada uno con tipo y restricciones ) Se pueden crear índices así: CREATE INDEX nombreindice ON tabla(columna(s)) Las vistas no son más que “consultas con nombres” Ejemplo: CREATE VIEW nombre_vista AS consulta
Restricciones de Integridad en una BD Relacional. Aseguran que los cambios realizados a una B. de D. no provoquen inconsistencia en la información. 1.1. Restricciones de dominio: Conjunto de valores y de operaciones permitidas sobre ellos. Dominios base para SQL: CHAR(p) : Cadena de carácteres de longitud fija p de máxima longitud p VARCHAR(p) : Cadena de carácteres de longitud variable. Máxima longitud p. NUMBER(p,s) : Valor numérico de precisión p y escala s. DATE : Fechas válidas. La tendencia es permitir al programador definir sus propios tipos de datos.
Restricciones de Integridad en una B. de D. Relacional. (cont.) 1.2. Valores nulos : Un atributo puede o no admitir valores nulos. En SQL se define mediante la cláusula NOT NULL. 1.3. Integridad Referencial: Garantiza la existencia de las claves foráneas. Para ello se utiliza la cláusula REFERENCES y FOREIGN KEY 1.4. Clave primaria: Garantiza la unicidad y obligatoriedad del o los atributos definidos como clave primaria. Para ello se utiliza la cláusula PRIMARY KEY.
Restricciones de Integridad en una B. de D. Relacional. (cont.) 1.5. Clave candidata : Garantiza la unicidad de los atributos declarados como tal. Se utiliza la cláusula UNIQUE. Si se desea hacer obligatoria debe especificarse adicionalmente NOT NULL. 1.6 Las reglas CHECK para atributos: Involucra condiciones de chequeo para uno o varios atributos. Sintaxis : CHECK ( condicion) Se valida si el atributo cambia. (Insert o Update).
DEPARTAMENTO # codigo * Nombre Ciudad Sea el modelo: el lugar de trabajo de adscrito a EMPLEADO #cédula *nombre *salario comisión *cargo el subordinado de el jefe de
Restricciones de Integridad en una B. de D. Relacional.(cont.) CREATE TABLE departamento ( codigo NUMBER(6) PRIMARY KEY, nombre VARCHAR(6) NOT NULL UNIQUE, ciudad VARCHAR(12) CHECK (ciudad IN (‘Medellín’,’Bogotá’,’Cali’)) NOT NULL ) CREATE TABLE empleado ( cédula NUMBER(10) PRIMARY KEY, nombre VARCHAR(30) NOT NULL, jefe NUMBER(10) REFERENCES empleado, salario NUMBER(10,2) NOT NULL, comisión NUMBER(2) , cargo VARCHAR(20) NOT NULL, depto NUMBER(6) NOT NULL REFERENCES departamento )
Restricciones de Integridad en una B. de D. Relacional.(cont.) Se pueden especificar las acciones de integridad referencias ante borrado y actualizacíón así: CREATE TABLE empleado ( cédula NUMBER(10) PRIMARY KEY, nombre VARCHAR2(30) NOT NULL, jefe NUMBER(10) REFERENCES empleado, salario NUMBER(10,2) NOT NULL, comisión NUMBER(2) , cargo VARCHAR2(20) NOT NULL, depto NUMBER(6) REFERENCES departamento ON UPDATE SET NULL, ON DELETE CASCADE )
Restricciones de Integridad en una B. de D. Relacional.(cont.) CREATE TABLE empleado ( cédula NUMBER(10) PRIMARY KEY, nombre VARCHAR2(30) NOT NULL, jefe NUMBER(10), salario NUMBER(10,2) NOT NULL CHECK (salario > 0 ) , comisión NUMBER(3) CHECK ( comision between 0 and 100), cargo VARCHAR2(20) NOT NULL, depto NUMBER(6) NOT NULL REFERENCES departamento, FOREIGN KEY jefe REFERENCES empleado(cédula) ); Cuando la clave foránea a la que se referencia es compuesta se debe utilizar esta forma, ver siguiente ejemplo
Restricciones de Integridad en una B. de D. Relacional.(cont.) CREATE TABLE envio( snro NUMBER(6), pnro NUMBER(6), cantidad NUMBER(6) NOT NULL, PRIMARY KEY(snro, pnro) ) Es incorrecto colocar PRIMARY KEY al frente de snro y de pnro.
Referencia a una clave primaria compuesta: CREATE TABLE revision( codrevision NUMBER(5) PRIMARY KEY, otrosnro NUMBER(6) NOT NULL, otropnro NUMBER(6) NOT NULL, revisor VARCHAR(20)NOT NULL, FOREIGN KEY(otrosnro,otropnro) REFERENCES envio )
Se puede modificar la estructura de una tabla con la instrucción ALTER TABLE Ej: ALTER TABLE mitabla ADD nuevocampo NUMBER(3); • Para destruir una tabla (estructura y datos) DROP TABLA nombre_tabla
Para ingresar valores a una tabla: • INSERT INTO envio VALUES ( 10, 20, 100) • INSERT INTO departamento VALUES( 100, ‘Aseo’, ‘Cali’) Sea la tabla: CREATE TABLE t( A number(3) PRIMARY KEY, b date, c varchar(3)) • INSERT INTO t VALUES(10, CURRENT_DATE, ‘hi’); • INSERT INTO t(c,a) VALUES(‘bye’,20); ¿Qué pasa con el atributo b en este caso?
Para eliminar filas de una tabla: DELETE FROM tabla [WHERE condicion] Ej: DELETE FROM envio WHERE snro=34 La condición puede incluir subconsultas… • Para actualizar filas de una tabla: UPDATE tabla SET campo = nuevo_valor [WHERE condicion] Se pueden actualizar varios campos al mismo tiempo separando por comas, la condición y nuevo_valor pueden incluir subconsultas…