22

Clase 12 - Unid3 - SQL-ddl

Embed Size (px)

DESCRIPTION

asdfsadfasfasf

Citation preview

Page 1: Clase 12 - Unid3 - SQL-ddl
Page 2: Clase 12 - Unid3 - SQL-ddl

Diseño de Bases de Datos

TI1205

Adrián BravoSede Valparaíso - 2015

Page 3: Clase 12 - Unid3 - SQL-ddl

Lenguaje de Definición y

Manipulación de Datos

SQL

Page 4: Clase 12 - Unid3 - SQL-ddl

SQL

SQL (Structured Query Language) es un lenguaje de programación diseñado para almacenar, manipular y recuperar datos almacenados en bases de datos relacionales. La primera encarnación de SQL apareció en 1974, cuando un grupo de IBM desarrolló el primer prototipo de una base de datos relacional.

- DDL: Lenguaje para la Definicion de Datos- DML: Lenguaje para la Manipulacion de Datos

Page 5: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: Lenguaje de Definicion de Datos

- CREAR, MODIFICAR, BORRAR- Tablas- Atributos- Indices- Relaciones, entre otros

Page 6: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: CREAR TABLA

CREATE TABLE <nombre_de_la_tabla>(

<nombre_de_la columna1><tipo_de_datos> [(tamaño)] [NOT NULL] [DEFAULT],..........................

<nombre_de_la_columnaN><tipo_de_datos> [(tamaño)] [NOT NULL][DEFAULT],

[CONSTRAINT [UKnombre] UNIQUE ({<lista_de_columnas>})],[CONSTRAINT [PKnombre] PRIMARY KEY ({<lista_de_columnas>})],[CONSTRAINT [CKnombre] CHECK <condición>],[CONSTRAINT [FKnombre] FOREIGN KEY ({<lista_de_columnas>})

REFERENCES <nombre_de_tabla_referenciada> ({<lista_de_columnas>})[ON DELETE CASCADE] ]

);

Page 7: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: CREAR TABLA

Ejemplo:

CREATE TABLE alumno(

NumMatricula integer NOT NULL,Rut varchar(12) NOT NULL,Nombre varchar(50) NOT NULL,Apellido varchar(100) NOT NULL,fecha_nac date,Edad integer DEFAULT 18,

CONSTRAINT pkAlumno PRIMARY KEY (NumMatricula),CONSTRAINT unRut UNIQUE (Rut)

);

Page 8: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: CREAR TABLA

OBSERVACIONES:

- Los nombres de las tablas de un usuario no se pueden repetir

- Los nombres de las columnas deben ser únicos dentro de cada tabla

- Los nombres pueden tener como máximo 30 caracteres

- Cada tabla puede contener hasta 254 columnas

Page 9: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: MODIFICAR TABLA

ALTER TABLE{ADD|MODIFY|DROP|DISABLE|ENABLE}

Para:

- Cambiar la definición de una columna para permitir valores nulos o no, así como el tipo de datos

- Aumentar o disminuir el tamaño de una columna

- Añadir o Eliminar columnas

- Cambiar, Agregar o Deshabilitar Restricciones

Page 10: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: MODIFICAR TABLA

ALTER TABLE <nombre_de_la_tabla> ADD (

<nombre_de_la_nueva_columna1> <tipo_de_datos> [NOT NULL] [constraint], ........................... <nombre_de_la_nueva_columnaN> <tipo_de_datos> [NOT NULL] [constraint]

);

ALTER TABLE <nombre_de_la_tabla> ADD (

CONSTRAINT <nombre_de_restriccion> <restriccion> <columnas>);

Page 11: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: MODIFICAR TABLA

Ejemplo: Agregar la columna direccion y ciudad a la tabla Alumno

ALTER TABLE alumnoADD (

direccion varchar(200) NOT NULL, ciudad varchar(100)

);

Page 12: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: MODIFICAR TABLA

Que pasaria si queremos eliminar una columna?

ALTER TABLE alumnoDELETE|DROP <nombre_de_columna>;

Y si queremos cambiar el tipo de datos de una columna especifica?

ALTER TABLE alumnoMODIFY <nombre_de_columna> <nuevo_tipo_datos>;

Page 13: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: MODIFICAR TABLA

MODIFY:

para modificar el tipo o el tamaño de una columna ésta no debe contener valores

modificar una columna NULL a NOT NULL implica que no haya ninguna fila con valor NULL para esa columna, o bien que la tabla esté vacía

Page 14: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: ELIMINAR TABLA

DROP TABLE <nombre_de_tabla>

Cuando se ejecuta el comando DROP:

- La definición de la tabla se elimina del catálogo.

- El espacio que ocupaba la tabla se recupera para otros elementos de la base de datos

- Se borran todas las filas de la tabla sin ninguna alerta

- La ejecución de este comando elimina la tabla definitivamente

Page 15: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: ELIMINAR TABLA

Ejemplo: Eliminar la tabla Alumno

DROP TABLE alumno;

Page 16: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: RENOMBRAR TABLA

RENAME <antiguo_nombre> TO <nuevo_nombre>

Cuando se ejecuta el comando RENAME:

- El nuevo nombre se almacena en el catálogo y la tabla no podrá volver a ser referenciada con el nombre antiguo

- No se produce ninguna repercusión sobre los datos

- El propietario de la tabla es el único que puede cambiar el nombre

Page 17: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: RENOMBRAR TABLA

Ejemplo: Cambiar el nombre de la tabla alumno para que desde ahora se llame “alumnoReprobado”

RENAME alumno TO alumnoReprobado;

Page 18: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: Secuencias.

Generación de números secuenciales (autonuméricos) para las columnas.Su uso por lo general se utiliza para claves primarias de autoincrementación.

CREATE SEQUENCE <nombre_de_secuencia>[INCREMENT BY entero][START WITH entero][MAXVALUE entero| NOMAXVALUE][MINVALUE entero| NOMINVALUE][CYCLE|NOCYCLE][CACHE entero|NOCACHE][ORDER|NORDER]

Page 19: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: Secuencias.

Generación de números secuenciales (autonuméricos) para las columnas.Su uso por lo general se utiliza para claves primarias de autoincrementación.

CREATE SEQUENCE <nombre_de_secuencia>[INCREMENT BY entero][START WITH entero][MAXVALUE entero| NOMAXVALUE][MINVALUE entero| NOMINVALUE][CYCLE|NOCYCLE][CACHE entero|NOCACHE][ORDER|NORDER]

Page 20: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: Secuencias.

- <nombre_de_columna>.CURRVAL y <nombre_de_columna>.NEXTVAL se utilizan para consultar e insertar los valores de la secuencia que contiene una columna

- Una vez definida la secuencia se puede alterar con ALTERSEQUENCE

Page 21: Clase 12 - Unid3 - SQL-ddl

SQL: DDL

DDL: Secuencias.

- <nombre_de_columna>.CURRVAL y <nombre_de_columna>.NEXTVAL se utilizan para consultar e insertar los valores de la secuencia que contiene una columna

- Una vez definida la secuencia se puede alterar con ALTERSEQUENCE

Page 22: Clase 12 - Unid3 - SQL-ddl