SQL - script - clase 1
From Ibbddunq
Revision as of 19:55, 19 September 2008
Contents |
Clase 1
0. Intro
Hoy vamos a ver el lenguaje con el que vamos a hablar con una instancia de BD relacinal. Ese lenguaje se llama SQL, y cubre todas las operaciones que uno puede tener ganas de hacer con una base. ¿Qué operaciones? Eso lo vamos a ir viendo.
En particular, una operación muy importante es la consulta, nosotros ya sabemos expresar consultas a una BD relacional, lo hacemos con las operaciones del álgebra relacional. El SQL tiene la misma idea del AR, vamos a ver cómo. A lo que vamos a dedicar más tiempo es a aprender a hacer consultas en SQL.
1. Meternos en el entorno de interacción con una BD relacional
Ahora vamos a trabajar con una BD relacional, les vamos a dar una instancia a c/u para jugar, y un programa para accederla. Vamos a empezar practicando con un modelo relacional del circo.
Imaginarnos cómo va a ser: yo me conecto a la instancia, que es nuevita para mí.
¿Qué es lo primero que tenemos que hacer? Claro, crear las tablas. Eso lo vamos a hacer con un formulario que nos presenta, ahí indicamos el esquema, el nombre, y nos crea en la instancia donde estemos trabajando una nueva tabla cuyo esquema es el que le dijimos.
¿Qué datos necesitamos decir? (esto interactivo, así van despertando).
- El nombre de la tabla nueva.
- Atributos, para cada uno dominio.
- Cuál/es de los atributos conforman la PK.
- Qué FKs a otras tablas hay.
- Otras restricciones, p.ej. not null.
Tambíén podemos crear tablas con SQL (i.e. expresar en el lenguaje la creación de una tabla, indicando todos los datos que dijimos), en las máquinas vamos a ver cómo.
Entonces, paso 1: crear las tablas.
Ejemplo: creamos las tablas funcion / acto / formaParte / ciudad.
2. Repaso de INSERT / UPDATE / DELETE
OK, tengo las tablas creadas cada una con el esquema que dijimos, pero ¿cómo están? Claro, vacías.
Ya vimos (sí lo vimos en la clase de modelo relacional) la sintaxis de INSERT / UPDATE / DELETE, repasémosla.
(sí, que la lean de su carpeta)
INSERT INTO tabla(atr1,...,atrn) VALUES (val1,...,valn) UPDATE tabla SET atr=val, atr=val, ... WHERE condicion DELETE FROM tabla WHERE condicion
Esto lo vamos a practicar el lunes (hoy sólo contarlo rápido)
Hacemos en pizarrón un par de INSERT sobre ciudad y uno sobre funcion para cerrar la idea.
Pregunta, ¿qué pasa si hago un INSERT sobre función poniendo una ciudad que no existe, o para la misma fecha-hora que una que ya está? Claro, salta la restricción de integridad correspondiente. Eso lo podemos probar el lunes.
3. Introducción al SELECT
Una vez que hicimos unos cuantos INSERT, tenemos una base con tablas que tienen filas, que no están vacías.
Ahora queremos obtener información haciendo búsquedas sobre esta instancia de BD. Ya sabemos una forma de expresar qué queremos: AR.