Semana 01
Semana 01
/*
Esto es un comentario
de varias líneas.
Fin.
*/
-- Esto es un comentario de una línea
ALGUNAS CONSIDERACIONES
Las relaciones de cada base de datos debe especificarse en el sistema en términos de un lenguaje de
definición de datos (DDL).
Además de las relaciones, se define la información relativa a ellas:
Esquema de cada relación
Dominio de valores asociados a cada atributo
Restricciones de integridad
Índices que se mantienen para cada relación
Información de seguridad y autorización de cada relación
Estructura de almacenamiento físico de cada relación en disco
TIPOS DE DATOS EN SQL (DOMINIOS)
char(n). Cadena de caracteres de longitud fija n, especificada por el usuario
varchar(n). Cadena de caracteres de longitud variable con una longitud máxima n especificada por el
usuario.
int. Integer, un subconjunto finito de los enteros depende de la máquina.
smallint. Small integer (un subconjunto dependiente de la máquina del tipo dominio entero).
real, double precision. Número en coma flotante y números en coma flotante de doble precisión, con
precisión dependiente de la máquina.
numeric(p,d). Un número en coma fija, cuya precisión la especifica el usuario. El número está formado por p
dígitos (más el signo) y de esos p dígitos, d pertenecen a la parte decimal.
float(n). Un número en coma flotante cuya precisión es de al menos n dígitos
date: Fechas, contiene un año (4 dígitos), mes y día
time: Hora del día, en horas, minutos y segundos.
timestamp: fecha y hora del día
interval: periodo de tiempo
DEFINICIÓN BÁSICA DE ESQUEMAS SQL
Para crear una tabla utilizamos el comando create table:
r es el nombre de la relación
Cada Ai es un atributo del esquema de relación r
Di es el tipo del dominio del atributo Ai
CREATE TABLE cliente (
create table sucursal ( codCliente char(3),
nombre_sucursal char(15) , nombreC varchar(40) not null,
ciudad-sucursal char(30), direccion varchar(40) not null,
activos numeric(16,2) telefono numeric(9,0),
Primary key nombre_sucursal) PRIMARY KEY(codCliente)
);
RESTRICCIONES DE INTEGRIDAD
Las restricciones de integridad protegen contra problemas accidentales en la base de datos, asegurando que
los cambios con autorización en la base de datos no generan pérdidas en la consistencia de los datos.
Obligatoriedad, NOT NULL
Clave primaria, PRIMARY KEY (A1, ..., An )- los atributos han de ser no nulos y únicos
Clave ajena, FOREIGN KEY (A1) REFERENCES r (A)
Verificación de condiciones, CHECK
AUTO_INCREMENT
Valores por defecto, DEFAULT
Restricción unique
La especificación unique indica que los atributos A1, A2, … Am constituyan una clave candidata.
Las claves candidatas pueden tener atributos nulos (al contrario que las claves primarias)
Cláusula check
check (P ), donde P es un predicado
RESTRICCIONES
Las claves primarias, candidatas y las claves externas o ajenas se pueden especificar como parte de la
instrucción create table de SQL:
La cláusula primary key incluye una lista de los atributos que comprende la clave primaria.
La cláusula unique key incluye una lista de los atributos que comprende una clave candidata.
La cláusula foreign key incluye una lista de los atributos que comprende la clave externa y el nombre de la relación a
la que hace referencia mediante la clave externa. Por defecto, una clave externa hace referencia a los atributos de la
clave primaria de la tabla referenciada.
La diferencia entre unique y primary key, una clave unique permite nulos, en cuanto una primary
key no permite nulos es decir ya incluye la constraint de not null para cada atributo.
RESTRICCIÓN CLAVE AJENA
FOREIGN KEY(idCliente) REFERENCES cliente(CodCliente)
ON DELETE cascade,
Sirve para relacionar dos o más tablas, se necesita un campo en común, por ejemplo, idCliente y codCliente,
existe en cliente y en compra.
Si queremos eliminar algún cliente, las filas que se correspondan en compras con ese cliente serán
eliminadas automáticamente.
EJEMPLO CREACIÓN DE TABLAS
DEFINICIÓN BÁSICA DE ESQUEMAS SQL
Con INSERT INTO añadimos datos a la relación.
INSERT INTO r VALUES (A1,…,An)
Para borrar todas las tuplas de una relación, utilizamos DELETE FROM
DELETE FROM r
Con DROP table eliminar una relación en una base de datos. Elimina el esquema de la relación.
DROP TABLE r
ALTER TABLE este comando sirve para añadir atributos a una relación existente
ALTER TABLE r ADD A D
r es la relación, A es el atributo a añadir, D es el dominio del atributo A
A todas las tuplas de la relación se les asigna un valor null para el nuevo atributo.
El comando ALTER TABLE también se puede utilizar para borrar atributos de una relación:
ALTER TABLE r DROP A
DEFINICIÓN BÁSICA DE ESQUEMAS SQL
La sentencia UPDATE sirve para actualizar datos de las tablas de una BD.
UPDATE empleados
SET Direccion=‘Gran Vía 241’, telefono=‘686567687’
WHERE Nombre=‘Ana García’;
Si se omite WHERE, se actualizan todas las filas de la tabla destino.
EJEMPLOS
INSERT INTO cliente VALUES ('015', 'Pedro Glez.', 'Gerona 14', 917845308);
INSERT INTO articulo VALUES ('0001', 'Ord. Sobremesa', 600, 12);
INSERT INTO compra VALUES('015', '0007', ‘2015/11/06', 2);
INSERT INTO cuenta VALUES (‘A-9732’, ‘Navacerrada’,1200);
INSERT INTO cuenta VALUES (‘A-777’,‘Navacerrada’, null)
USE tiendaInformatica;
DROP TABLE IF EXISTS compra;
DROP TABLE IF EXISTS cliente;
DROP TABLE IF EXISTS articulo;
CLAUSULA SELECT
LA CLAÚSULA SELECT
Una consulta característica de SQL tiene la forma:
SELECT A1, A2, ..., An
FROM r1, r2, ..., rm
WHERE P
Ai representan los atributos
ri representan las relaciones
P es un predicado