Tarea

Tema 4: SQL
n Lenguaje de definición de datos (DDL) n Consultas: estructura básica n Operaciones de conjuntos n Funciones agregadas n Valores nulos n Subconsultas anidadas n Relaciones derivadas n Vistas n Modificaciones de Bases de Datos n Relaciones unidas (joined) n SQL embebido, ODBC y JDBC

Bases de datos

1

Esquema utilizado en los ejemplos

sucursal nombre-sucursalciudad-sucursal activos

cuenta numero-cuenta nombre-sucursal saldo

depositante nombre-cliente numero-cuenta

cliente nombre-cliente calle-cliente ciudad-cliente

prestamo numero-prestamo nombre-sucursal cantidad

prestatario nombre-cliente numero-prestamo

Bases de datos

2

Lenguaje de definición de datos (DDL)
Permite la especificación de un conjunto de relaciones y además de informaciónsobre cada una de las relaciones, incluyendo:
n El esquema de cada relación. n El dominio de los datos asociados a cada atributo. n Restricciones de integridad. n El conjunto de índices que se debe mantener para

cada relación. n Información de seguridad y autorización para cada relación. n La estructura de almacenamiento físico de cada relación en disco.

Bases de datos

3

Tipos dedominio en SQL
n char(n). Cadena de caracteres de longitud fija n indicada por el usuario. n varchar(n). Cadena de caracteres de longitud variable, con una longitud

máxima n indicada por el usuario. n int. Entero (un subconjunto finito de enteros dependiente de la máquina). n smallint. Entero corto (un subconjunto del dominio entero cuyo tamaño es dependiente de la máquina). n numeric(p,d).Número en formato de punto fijo, con una precisión indicada por el usuario de p digitos, con n digitos a la derecha del punto decimal.
n real, double precision. Numeros en formato de punto flotante y punto

flotante de doble precisión, con precisión dependiente de la máquina. n float(n). Númeor en punto flotante, conuna precisión indicada por el usuario de al menos n digitos. n En todos los tipos dedominios se permiten valores nulos. Si un atributose declara not null, se prohiben los valores nulos para ese atributo. n La construcción create domain de SQL-92 permite crear dominios definidos por el usuario:
create domain nombre-persona char(20) not null
Bases de datos 4

Tipos de Fecha/Hora en SQL (Cont.)
n date. Fechas, conteniendo un año (4 dígitos) , mes y día.

H P.e. date‘2001-7-27’
n time. Horas, minutos y segundos.

H P.e. time ’09:00:30’
n timestamp: Fecha y hora.

time ’09:00:30.75’

H P.e. timestamp ‘2001-7-27 09:00:30.75’
n Interval: periodo de tiempo

H P.e. Interval ‘1’ día H Restar un valor date/time/timestamp de otro nos da un valor de tipo intervalo H Valores de tipo intervalo se pueden sumar a valores date/time/timestamp
n Podemos extraer valores decampos de date/time/timestamp

H P.e. extract (year from r.fechainicio)
n Podemos transformar tipos cadena de caracteres a

date/time/timestamp H P.e. cast as date
Bases de datos 5

Comando Create Table
n Una relación SQL se define mediante el comando

create table: create table r (A1 D1 RI1, A2 D2 RI2, …, An Dn RIn, (restriccion-integridad1), …, (restriccion-integridadk))
H r esel nombre de la relación H cada Ai es un nombre de atributo en el esquema de la relación r H Di es el tipo de datos de los valores del dominio del atributo Ai
n Ejemplo:

Bases de datos

create table sucursal (nombre-sucursal ciudad-sucursal activos

char(15) not null, char(30), integer)

6

Restricciones de integridad en Create Table
n n n n

not null primary key (A1, …, A n)check (P), donde P es un predicado foreign key (A1, …, A n) references r (B1, …, B n)

Ejemplo: Declarar nombre-sucursal como la clave primaria de sucursal y asegurar que el valor de activos no es negativo. create table sucursal (nombre-sucursal char(15), ciudad-sucursal char(30) activos integer, primary key (nombre-sucursal), check (activos >= 0))

Bases de datos

7

Comandos Drop…