Sie sind auf Seite 1von 22

Diseo de

Bases de Datos
TI1205

Adrin Bravo
Sede Valparaso - 2015

Lenguaje de
Definicin y
Manipulacin de
Datos
SQL

SQL
SQL (Structured Query Language) es un lenguaje de programacin
diseado para almacenar, manipular y recuperar datos almacenados en
bases de datos relacionales. La primera encarnacin 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

SQL: DDL
DDL: Lenguaje de Definicion de Datos
- CREAR, MODIFICAR, BORRAR
- Tablas
- Atributos
- Indices
- Relaciones, entre otros

SQL: DDL
DDL: CREAR TABLA
CREATE TABLE <nombre_de_la_tabla>
(
<nombre_de_la columna1><tipo_de_datos> [(tamao)] [NOT NULL]
[DEFAULT],
..........................
<nombre_de_la_columnaN><tipo_de_datos> [(tamao)] [NOT NULL]
[DEFAULT],
[CONSTRAINT [UKnombre] UNIQUE ({<lista_de_columnas>})],
[CONSTRAINT [PKnombre] PRIMARY KEY ({<lista_de_columnas>})],
[CONSTRAINT [CKnombre] CHECK <condicin>],
[CONSTRAINT [FKnombre] FOREIGN KEY ({<lista_de_columnas>})
REFERENCES <nombre_de_tabla_referenciada> ({<lista_de_columnas>})
[ON DELETE CASCADE] ]
);

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)
);

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 mximo 30 caracteres
- Cada tabla puede contener hasta 254 columnas

SQL: DDL
DDL: MODIFICAR TABLA
ALTER TABLE
{ADD|MODIFY|DROP|DISABLE|ENABLE}
Para:
- Cambiar la definicin de una columna para permitir valores nulos o no, as
como el tipo de datos
- Aumentar o disminuir el tamao de una columna
- Aadir o Eliminar columnas
- Cambiar, Agregar o Deshabilitar Restricciones

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>
);

SQL: DDL
DDL: MODIFICAR TABLA
Ejemplo: Agregar la columna direccion y ciudad a la tabla Alumno
ALTER TABLE alumno
ADD (
direccion varchar(200) NOT NULL,
ciudad varchar(100)
);

SQL: DDL
DDL: MODIFICAR TABLA
Que pasaria si queremos eliminar una columna?
ALTER TABLE alumno
DELETE|DROP <nombre_de_columna>;
Y si queremos cambiar el tipo de datos de una columna especifica?
ALTER TABLE alumno
MODIFY <nombre_de_columna> <nuevo_tipo_datos>;

SQL: DDL
DDL: MODIFICAR TABLA
MODIFY:
para modificar el tipo o el tamao 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 vaca

SQL: DDL
DDL: ELIMINAR TABLA
DROP TABLE <nombre_de_tabla>
Cuando se ejecuta el comando DROP:
- La definicin de la tabla se elimina del catlogo.
- 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 ejecucin de este comando elimina la tabla definitivamente

SQL: DDL
DDL: ELIMINAR TABLA
Ejemplo: Eliminar la tabla Alumno
DROP TABLE alumno;

SQL: DDL
DDL: RENOMBRAR TABLA
RENAME <antiguo_nombre> TO <nuevo_nombre>
Cuando se ejecuta el comando RENAME:
- El nuevo nombre se almacena en el catlogo y la tabla no podr volver a
ser referenciada con el nombre antiguo
- No se produce ninguna repercusin sobre los datos
- El propietario de la tabla es el nico que puede cambiar el nombre

SQL: DDL
DDL: RENOMBRAR TABLA
Ejemplo: Cambiar el nombre de la tabla alumno para que desde ahora se
llame alumnoReprobado

RENAME alumno TO alumnoReprobado;

SQL: DDL
DDL: Secuencias.
Generacin de nmeros secuenciales (autonumricos) para las columnas.
Su uso por lo general se utiliza para claves primarias de
autoincrementacin.
CREATE SEQUENCE <nombre_de_secuencia>
[INCREMENT BY entero]
[START WITH entero]
[MAXVALUE entero| NOMAXVALUE]
[MINVALUE entero| NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE entero|NOCACHE]
[ORDER|NORDER]

SQL: DDL
DDL: Secuencias.
Generacin de nmeros secuenciales (autonumricos) para las columnas.
Su uso por lo general se utiliza para claves primarias de
autoincrementacin.
CREATE SEQUENCE <nombre_de_secuencia>
[INCREMENT BY entero]
[START WITH entero]
[MAXVALUE entero| NOMAXVALUE]
[MINVALUE entero| NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE entero|NOCACHE]
[ORDER|NORDER]

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 ALTER
SEQUENCE

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 ALTER
SEQUENCE

Das könnte Ihnen auch gefallen