bd1 6 SQL
bd1 6 SQL
Lenguaje no procedural
relacional y lo extiende
Se distinguen dos sublenguajes:
DDL (Data Definition Language)
DML (Data Manipulation Language)
DATA DEFINITION LANGUAGE (DDL)
Permite crear, modificar y eliminar objetos de
la base de datos:
Tablas
o Una tabla es un conjunto de valores organizados en
filas y columnas. Es la representación de una relación
aunque no son estrictamente equivalentes
Vistas
o Una vista es una tabla virtual basada en el resultado
de una consulta. Pueden usarse en consultas como si
fueran tablas
Usuarios
OPERACIONES SOBRE TABLAS
CREATE TABLE
Crea una nueva tabla
Parámetros:
Nombre de la tabla
Nombre y tipo de dato de cada columna
Restricciones de clave primaria y clave foránea sobre
otras tablas
ALTER TABLE
Modifica una tabla existente
DROP TABLE
Elimina una tabla existente y elimina los datos
almacenados en ella
EJEMPLO
Sistema de Información relativo a hospitales:
ALTER VIEW
Modifica una vista
DROP VIEW
Elimina una vista
DATA MANIPULATION LANGUAGE
(DML)
Permite crear, modificar, eliminar y recuperar
datos:
INSERT
Agrega tuplas a una tabla
Ejemplo:
UPDATE
Actualiza tuplas de una tabla
Ejemplo:
SELECT
Recupera datos
Ejemplo:
SELECT direccion
FROM hospitales
WHERE nomHosp = ‘Maciel’;
RECUPERACIÓN DE DATOS
Sintaxis:
SELECT A1, …, An
FROM R1, …, Rm
WHERE C;
donde:
A1, …, An son nombres de atributos. También se puede
utilizar (*)
R1, …, Rm son nombres de tablas
C es una condición booleana
CLÁUSULA ORDER BY
La cláusula ORDER BY permite ordenar el
resultado ascendentemente o descendentemente
(ASC ó DESC)
SELECT codHosp
FROM hospitales
ORDER BY codHosp ASC;
CLÁUSULA DISTINCT
La
cláusula DISTINCT permite filtrar tuplas
repetidas
SELECT ci
FROM personas
WHERE
personas.fchNac >= to_date('01/01/2000','dd/mm/yyyy') and
personas.fchNac <= to_date('31/12/2000','dd/mm/yyyy')
UNION
SELECT ci
FROM personas
WHERE personas.lugarNac = ‘Salto’;
SELECT ci
FROM personas
WHERE ci NOT IN (SELECT ci FROM
tecnologos);
FUNCIONES Y OPERADORES
ARITMÉTICOS
En las cláusulas SELECT y WHERE se pueden
aplicar funciones y operadores aritméticos
sobre atributos:
Sintaxis:
SELECT A1, …, An
FROM R1, …, Rm
WHERE Aj, …, Ak <op_comp>
(SELECT B1, …, Bk
FROM S1, …, Sm
WHERE C);
SELECT nombre
FROM fabricantes f1, ventas v1
WHERE f1.nroFab = v1.nroFab and v1.nroProd = 15
AND NOT EXISTS (SELECT * FROM ventas v2
WHERE v2.nroFab = f1.nroFab
En esta relación:
Se guardan todas las actividades que realizan los
estudiantes en la facultad
Estas actividades pueden ser de distintos tipos
(examen (‘E’) o realización de curso (‘RC’))
El atributo aprobo tiene valor ‘S’ o ‘N’. Si este
atributo tiene valor ‘S’ asumimos que la
asignatura esta aprobada totalmente, no importa
el tipo de actividad que sea
El atributo fecha corresponde a la fecha en la
que se realizó la actividad
EJEMPLO
Dar una lista que contenga código de
asignatura, código de carrera y cantidad de
aprobados a partir del 01/12/2001
Documentación PostgreSQL
http://www.postgresql.org/docs/