Académique Documents
Professionnel Documents
Culture Documents
SQL – PARTE I
MSc. Jimena Adriana Timaná Peña
INTRODUCCIÓN
• SQL (Structure Query Language) o Lenguaje de Consulta Estructurado
• SQL es un lenguaje de dominio específico con el que podemos realizar: inserción, consulta,
actualización, borrado y control de acceso a los datos. Además permite la creación y
modificación del esquema de una BD.
INTRODUCCIÓN
Instrucciones:
CREATE / ALTER / DROP / RENAME / TRUNCATE
DDL – Data Definition Language
CREATE
varchar(n) / varchar2(n):
• Almacena cadenas de longitud variable. 1 a 4000 bytes o caracteres.
• Si se introduce una cadena de menor longitud que la que esta definida, se almacena con esa
longitud y no se rellenará.
• Si se introduce una cadena de mayor longitud que la fijada, producirá un error.
Tenga en cuenta que los valores alfanuméricos van encerrados entre comilla simple
DDL – Data Definition Language
data_type o Tipos de datos soportados:
• date: Es una fecha del calendario, que contiene año (4 dígitos), mes y día. Las fechas van
encerradas entre comilla simple.
• timestamp: tipo de datos incluyen un valor que consta de siete partes (año, mes, día, hora, minuto,
segundo y microsegundo.
• int: Es un entero con signo de 32 bits, que tenga un rango de -2147483647 a 2147483647.
También se puede utilizar la palabra integer.
CREATE
• Toda tabla generalmente tiene una restricción de clave primaria o PRIMARY KEY.
• La restricción PRIMARY KEY identifica de forma exclusiva cada registro de una tabla de base de
datos.
• Las claves primarias deben contener valores únicos.
• Una columna de clave principal no puede contener valores nulos.
CREATE TABLE Profesor CREATE TABLE Profesor
( (
profId integer not null PRIMARY KEY, profId integer not null,
profNombre varchar2(20) not null, profNombre varchar2(20) not null,
profApellido varchar2(20) not null, profApellido varchar2(20) not null,
profGenero char default 'f' profGenero char,
); CONSTRAINT pk_Profesor PRIMARY KEY (profId)
);
Clave primaria con múltiples columnas: CONSTRAINT pk_Profesor PRIMARY KEY (profId, profApellido)
DDL – Data Definition Language
CREATE
• Una llave foránea o FOREIGN KEY en una tabla apunta a la llave primaria de otra tabla.
• Un CHECK se utiliza para limitar el rango de valores que puede ser colocado en una columna
CREATE TABLE Profesor
(
profId integer not null,
profNombre varchar2(20) not null,
profApellido varchar2(20) not null,
profGenero char,
deptCodigo integer not null,
CONSTRAINT pk_Profesor PRIMARY KEY (profId),
CONSTRAINT fk_deptProf FOREIGN KEY (deptCodigo) REFERENCES Departamento (deptCodigo),
CONSTRAINT ckc_profGenero CHECK (profGenero in ('f', 'm')),
CONSTRAINT ckc_profId CHECK (profId >0)
);
CREATE
CREATE
En SQL, un Índice es un objeto de la BD diseñado para
encontrar datos rápida y eficientemente sin necesidad
de leer la tabla o vista completa.
ALTER
CREATE TABLE Departamento
(
deptCodigo integer not null,
deptNombre integer,
CONSTRAINT pk_Departamento PRIMARY KEY (deptCodigo )
);
ALTER
• Para adicionar una nueva columna a la Tabla:
alter table Departamento add deptFCreacion date not null
ALTER
• Para adicionar una restricción CHECK a la Tabla:
alter table Departamento add constraint ckc_DeptId CHECK (deptCodigo>0)
• Para adicionar una restricción PRIMARY KEY a la Tabla(SI NO LA TIENE):
alter table Departamento add constraint pk_Departamento PRIMARY KEY(deptCodigo)
• Para adicionar una restricción FOREIGN KEY a la Tabla:
alter table Departamento add constraint fk_FacDept FOREIGN KEY (facId) REFERENCES Facultad (facId)
DDL – Data Definition Language
DROP
Esta sentencia elimina un objeto de la base de datos. Puede ser una tabla, vista, índice o cualquier objeto
que soporte el motor de la base de datos.
• Para borrar una base de datos:
drop database database_name
• Para borrar una tabla:
drop table table_name
Para forzar el borrado de una tabla: Puede afectar la integridad referencial de la
drop table table_name cascade constraint base de datos, ya que se elimina todas las
tuplas, las restricciones, los índices y la tabla.
• Para borrar un índice de una tabla:
drop index index_name
• Para borrar una vista:
drop view view_name
DDL – Data Definition Language
Integridad Referencial:
Es una herramienta imprescindible de las bases de datos relacionales. Pero provoca varios problemas
si no se controla adecuadamente.
Por ejemplo, ¿qué pasa si borramos un registro de una tabla el cual tiene un campo PK que está
relacionado con otra tabla o tablas, es decir, es foránea en dicha(s) tabla(s)?
Pues ocurrirá una excepción, advirtiendo que no es posible hacer el borrado. Sin embargo, si
forzáramos a borrar el registro o incluso toda la tabla ocurrirá un fallo de integridad (habrá claves
secundarios refiriéndose a una clave principal que ya no existe).
DDL – Data Definition Language
Integridad Referencial:
Por ello se nos pueden ofrecer soluciones que se añaden tras la cláusula REFERENCES. Estas son:
ON DELETE SET NULL. Coloca nulos todas las claves secundarias relacionadas con la borrada.
ON DELETE CASCADE. Borra todos los registros cuya clave secundaria es igual que la clave del
registro borrado.
ON DELETE SET DEFAULT. Coloca en el registro relacionado el valor por defecto en la columna
relacionada
ON DELETE NOTHING. No hace nada.
DDL – Data Definition Language
Integridad Referencial:
En el caso explicado se aplicarían las cláusulas cuando se eliminen filas de la clave principal relacionada
con la clave secundaria. En esas cuatro cláusulas se podría sustituir la palabra DELETE por la palabra
UPDATE, haciendo que el funcionamiento se refiera a cuando se modifica un registro de la tabla principal;
en muchas bases de datos se admite el uso tanto de ON DELETE como de ON UPDATE.
En Oracle sólo se permite utilizar ON DELETE SET NULL u ON DELETE CASCADE. No se admite el uso de ON
UPDATE en ningún caso.
DROP
• Para borrar una PRIMARY KEY de una tabla:
alter table table_name drop constraint pk_name
• Para borrar una FOREIGN KEY de una tabla:
alter table table_name drop constraint fk_name
• Para borrar un CHECK de una tabla:
alter table table_name drop constraint ckc_name
Para borrar un DEFAULT de una columna de una tabla:
TRUNCATE
• Si solo se desea borrar los datos de la tabla y no la tabla en si misma:
truncate table table_name
RENAME
• Si se quiere renombrar la tabla:
alter table old_table_name rename to new_table_name
• Si se quiere renombrar el nombre de una columna:
alter table table_name rename column old_column_name to new_column_name
• Si se quiere renombrar un índice:
rename index old_index-name to new_index_name
PRIMERA PRÁCTICA SQL
• 1. Crear la tabla Estudante con los nombres para las columnas, tipos de datos y restricciones
proporcionados:
• estId entero no nulo.
• estNombre entero nulo
• estApelido varchar2 de 50 no nulo.
• estId es la clave primaria de la tabla