Escolar Documentos
Profissional Documentos
Cultura Documentos
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Respecto a los dominios de los atributos, SQL incorporaa un conjunto de dominios bsicos,
permitiendo definir atributos de tipo cadena de caracteres, de tipo numrico de fecha y de hora.
Adems de indicar el dominio da cada atributo, a la hora de definir las tablas pueden sealarse
igualmente diferentes caraceristicas de los mismos, como por ejemplo si no se permitirn valores
para ese atributo, si el valor debe ser nico, para valores por defecto.
Ejemplo:
CREATE TABLE CLIENTES(
NUM_CLIENTE SMALLINT NOT NULL AUTO_INCREMENT,
NOMBRE VARCHAR(40) NOT NULL,
DIRECCION VARCHAR(50),
FECHANAC DATE,
TELEF CHAR(9),
EMAIL CHAR(30),
PUNTOS_ACUM SMALLINT NOT NULL DEFAULT 0,
CLAVE CHAR(6) NOT NULL,
PRIMARY KEY (NUM_CLIENTE));
MODIFICACION DE TABLAS
Una vez creada una table, es possible su modificacin utilizando la sentencia ALTER.
Ejemplo:
-
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Eliminacin de las entradas de las primeras 5 filas para la proyeccion Numero 211
DELETE FROM ENTRADAS WHERE FILA<=5 AND IDPROY=231
La sentencia delete con condiciones simples permiten seleccionar las filas y sumprir basandose
unicamente en los propios contenidos de las filas. Sin embargo, tambin es posible efectuar la
seleccin de las filas a suprimir en base a los datos contenidos en otras tablas
Ejemplo:
Si se desea eliminar todas las proyecciones de la pelcula Refugio en el paraso, se podra utilizar la
sentencia:
DELETE FROM PROYECCIONES WHERE
IDPELICULA = (SELECT IDPELICULA FROM PELICULAS WHERE
TITULO = Refugio en el paraiso);
LA SENTENCIA UPDATE
La sentencia UPDATE permite modificar los valores de los atributos de uno o varios registros
almacenados en la tabla. La sintaxis de la sentencia es :
UPDATE nombre_tabla SET lista_asignaciones WHERE condicin
La parte final de la sentencia, la clausula WHERE es opcional; en caso de no indicarse, la actualizacin
afectara a todos los registros de la tabla.
En una misma sentencia se pueden actualizar los valores de varios atributos, indicando las
asignaciones separadas por comas.
Ejemplos
-
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Otorgar 100 puntos extra a todos los clientes que tengan un saldo de puntos acumulados
menores que 500
UPDATE CLIENTES SET PUNTOS_ACUM=PUNTOS_ACUM*100 WHERE
PUNTOS_ACUM<500
Al igual que ocurria con la sentencia DELETE, tambin es posible efectuar la seleccin de las filas a
actualizar en base a los datos contenidos en otras tablas.
UPDATE PROYECCIONES SET TARIFA_REDUCIDA=1
WHERE IDPELICULA=(SELECT IDPELICULA FROM PELICULAS WHERE ANNO<1990);
LA SENTENCIA SELECT
Las consultas son la base del SQL, mediante ellas se extrae informacin de las diferentes tablas de
la base de datos, mostrndola en una estructura tabular.
Toda consulta en SQL se realiza con la sentencia SELECT. Esta es sin duda la sentencia ms poderosa
y completa con la que cuenta el lenguaje SQL. Su sintaxis completa es:
SELECT [Cuantificador_de_conjunto] tems
FROM nombre_de_tabla
[WHERE condicin_de_busqueda]
[GROUP BY columna_de_agrupacion ]
[HAVING condicin_de_busqueda]
[ORDER BY especificacin de ordenacin]
Todos los fragmentos que en esta sintaxis aparecen encerrados entre corchetes son opcionales.
La sentencia SELECT consta de varias partes diferentes:
-
Un asterisco (*), que es equivalente a especificar los nombres de todas las columnas de
las tablas
Una consonante, indicando que el mismo valor constante va a aparecer en todas las filas
de los resultados de la consulta
Una expresin SQL, cuyo valor ser calculado a partir de los valores de los atributos.
ALL (opcin por defecto) indica que en el resultado de la consulta deben mostrarse
todas las filas, incluyendo las repetidas.
Clausula FROM: en ella se indican, separadas por comas, todas las tablas que contienen los
datos que se desean recuperar en la consulta.
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Clausula GROUP BY: permite obtener consultas resumen en las que todas las filas similares
son agrupadas y se genera una fila resumen por cada grupo.
Clausula HAVING: permite indicar condiciones o filtros a verificar por los diferentes grupos
producidos por la clausula GROUP BY.
Una consulta SQL puede incluir columnas calculadas cuyos valores se obtienen a partir de los valores
de los datos almacenados
Ejemplo:
-
Si desea listar las salas disminuyendo el aforo en un 10 %, la sentencia para ello seria
SELECT NUM_SALA, AFORO*0.9 FROM SALAS;
En estas consultas con campos calculados pueden utilizarse diferentes funciones de SQL adems de
las propias de cada gestor de bases de datos. Por ejemplo, existen funciones para tratamiento de
fechas y horas, para tratamiento de cadenas de caracteres..
Eliminacin de duplicados
Si una consulta incluye la clave primaria de una tabla en su lista de seleccin entonces cada fila de
resultados ser nica; en cambio, si no se incluye la clave en la lista de seleccin pueden aparecer
filas duplicadas en el resultado. Se pueden eliminar las filas duplicadas en la consulta insertando la
palabra clave DISTINCT en la sentencia SELECT justo antes de la lista de seleccin
Ejemplo:
-
Al seleccionar todos los directores de las pelculas de la tabla pelculas pueden aparecer
algunos de ellos duplicados (los que han dirigido varias pelculas). La consulta seria
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Obtener los ttulos de todas las pelculas de una duracin inferior a 120 minutos
Obtener un listado con las direcciones de correo electrnico de todos los clientes que tengan
Generar un listado con los ttulos y directores de todas las pelculas en las que participe
Antonio Banderas:
SELECT TITULO, DIRECCION FROM PELICULAS WHERE ACTORES LIKE %Banderas%
Como se puede apreciar en estos ejemplos, el lenguaje SQLtiene una sintaxis muy similar al lenguaje
natural, y ofrece una gran capacidad expresiva para generar consultas
Ordenacion de los resultados de una consulta
Para ordenar los resultados de una consulta se utiliza la clausula ORDER BY seguida de una lista de
especificaciones de ordenacin separadas por comas. La primera especificacin de ordenacin es la
principal y las otras sern utilizadas en caso de igualdad de valor en la primera. Cada especificacin
de ordenacin esta dado por el nombre de un atributo seguido de una de las palabras siguientes:
ASC
Consultas multitabla
SQL permite tambin recuperar datos procedentes de diferentes tablas mediante una nica
sentencia SELECT, esto es lo que se conoce como composicin
Ejemplos:
-
Se desea saber todas las fechas en las que se proyecta la pelcula El Seor de los Anillos
SELECT FECHA FROM PELICULAS, PROYECCIONES WHERE
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Se desea un listado con los nombres de todos los clientes que hayan adquirido alguna entrada
para ver la pelcula El Seor de los Anillos.
SELECT NOMBRE FROM
PELICULA, PROYECCIONES, ENTRADAS, CLIENTES
WHERE
TITULO=El Seor de los Anillos AND
PELICULAS.IDPELICULA=PROYECCONES.IDPELICULA
AND
PROYECCIONES.IDPROY = ENTRADAS.IDPROY AND
ENTRADAS.NUM_CLIENTE=CLIENTES.NUM_CLIENTE
Consultas Resumen
SQL permite resumir los datos mediante un conjunto de fuciones denominadas funciones de columna.
Alguna de ellas son:
SUM(): Calcula la suma total de los valores de una columna
AVG(): Calcula el valor promedio de una columna.
MIN(): Encuentra el valor mas pequeo de la columna
MAX(): Encuentra el valor mas grande de una columna
COUNT(): Cuenta el numero de valores de una columna
Ejemplo:
-
Calculo de la suma de los puntos acumulados por los clients numero 321, 543, 287 y 721
SELECT SUM(PUNTOS_ACUM) FROM CLIENTES
WHERE NUM_CLIENTE IN(321,543,287,721);
Consultas agrupadas
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
Se desea obtener el nombre de todos los clientes que hayan adquirido 20 o ms entradas; la
forma de conseguirlo seria utilizando la sentencia:
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
10
______________________________________________________________________
Docente: Mg. Huarote Zegarra Ral
11