1
Lenguaje SQL
(Structured Query Language)
Es el lenguaje standard para manejo de datos en
bases de datos relacionales.
Lo utilizan la mayora de los Sistemas Manejadores de
Bases de Datos (SMBD) comerciales (DB2, Oracle,
INGRES, SYBASE, SQL Server, etc.)
SQL se propuso inicialmente en 1970 y
peridicamente se publican versiones actualizadas de
la norma (ANSI y la ISO).
Las expresiones en las implementaciones de SQL
propias de cada DBMS pueden diferir levemente
respecto del standard.
Sentencias
Clusulas
SQL
Operadores
Funciones de
agregado
<> Distinto de
= Igual que
Utilizado para especificar un intervalo de
BETWEEN
valores.
LIKE Utilizado en la comparacin de un modelo
R
A1(R)
La Relacin R
La Relacin Resultante
A B C A B
5 6 10 A,B (R) 5 6 A B En SQL
5 6 20 5 6 5 6
30 40 1 30 40 30 40 SELECT A,B
1 4 2 1 4 1 4
FROM R
ING. MARIA NINA
YUCRA
13
CONSULTAS
Nombre (SOCIOS)
Se escogen las columnas especificadas en la lista de atributos o campos
En SQL
NOMBRE
Elena Manriquez
Manuel Garca SELECT Nombre
Paloma Soria FROM Socio
NACIONALIDAD INSTITUCION
Norteamericana Relational Ins. En SQL
Espaola FIM
Espaola FI de UPB SELECT Nacionalidad, Institucin
Italiana Polit.Milan
FROM Autor
Norteamericana ER Ins. ING. MARIA NINA
YUCRA
15
CONSULTAS SELECT Bsicas
Selecciona todas las columnas de la tabla
SELECT *
FROM Customers;
Seleccin de Columnas Especificas
Ej:Selecciona las columnas CompanyName, address, City, country de la Tabla
Customers
SELECT CompanyName, address, City, country
FROM Customers
Uso de Alias de Columna
Ej:Selecciona la columnas CompanyName y se le asigna como alias Nombre de
la compaa de la Tabla Customers
SELECT CompanyName AS 'Nombre de la compaia'
FROM Customers;
Otro ejemplo:
SELECT CompanyName AS "Nombre de la Compaia", address AS "Direccin", City
AS "Ciudad", country AS Pais
FROM Customers;
ING. MARIA NINA
YUCRA
16
CONSULTAS SELECT Bsicas
Uso de Operadores Aritmticos
Ej:Se incrementa el precio unitario en diez unidades monetarias y se asigna
como alias de la columan Precio Aumentado
SELECT ProductName,UnitPrice, UnitPrice +10 AS "Precio Aumentado"
FROM Products;
Prioridad de los Operadores Aritmticos
Ej:Se incrementa el precio unitario 12 veces mas ms cien 100 unidades
monetarias
SELECT ProductName,UnitPrice, 12 *UnitPrice+100
FROM Products
Uso de Parntesis
Ej:Se incrementa el precio unitario ms cien 100 unidades y ese resultado
se incrementa 12 veces
SELECT ProductName,UnitPrice, 12 *(UnitPrice+100)
FROM Products
En SQL
SELECT *
FROM R
WHERE C>=5
ING. MARIA NINA
YUCRA
21
Consultas de una Tabla - Condiciones
Es un filtro que define las condiciones que debe cumplir cada fila
de las tabla de origen para satisfacer los requisitos de la
instruccin SELECT. Solo las filas que cumplen las condiciones
contribuyen con datos al conjunto de resultados
Los operadores de comparacin comprueban si dos expresiones
son o no las mismas. No se pude utilizarlos con los tipos de
datos text, ntext, image.
Los operadores lgicos comprueban la veracidad de alguna
condicin. Devuelven el tipo de datos Booeleano con valor
TRUE o FALSE
AUTOR
NOMBRE NACIONALIDAD INSTITUCION
Date C.J. Norteamericana Relational Ins.
De Miguel Espaola FIM
Saltor F. Espaola FI de UPB
Ceri S. Italiana Polit.Milan
Chen P. Norteamericana ER Ins.
Nacionalidad=Espaola (Autor)
Se escogen filas que cumplan con el predicado En SQL
SELECT *
FROM Autor
WHERE Nacionalidad=Espaola AND Institucin =FIM
ING. MARIA NINA
YUCRA
24
CONSULTAS - Condiciones
Ejemplo Listar la nacionalidad y la institucin de todos
los autores de nacionalidad ESPAOLA
En SQL
Ej: Retornar las filas de los clientes que tengan una F como caracter
inicial en el nombre de la compania
SELECT *
FROM Customers
WHERE CompanyName Like 'F%'
Ej: Retornar las filas de los clientes que tengan una ia como caracteres
finales en el nombre de la compania
SELECT *
FROM Customers
WHERE CompanyName Like '%ie'
ING. MARIA NINA
YUCRA
26
Consultas de una Tabla - Condiciones
Ejemplos con operadores relacionales:
Ej: Obtener todas las filas de los productos que pertenezcan a a
las categorias 1, 2, o 5
SELECT *
FROM Products
WHERE CategoryID=1 OR CategoryID=3 OR CategoryID=5
IN Se lo utiliza cuando se quiere determinar si un valor
coincide con algun valor de una subconsulta o lista
Ej:Obtener todas las filas de los productos que pertenezcan a las
categoras 1, 2, o 5
SELECT *
FROM Products
WHERE CategoryID IN (1,3,5)
Ejemplos:
Listar los temas de los proyectos
SELECT Tema
FROM PROYECTO
SOCIOS PRESTAMO
CODIGO NOMBRE DIRECCION LIBRO AUTOR LECTOR FECHA_PREST
1 Elena Manrquez Calle 123 DB Systems Date C.J. Elena Manrquez 11/03/07
2 Manuel Garca Calle 234 Basi di Dati Ceri S. Manuel Garca 25/03/07
3 Paloma Soria Calle 325
En SQL
SOCIOS x PRESTAMO
SELECT *
FROM Socio, Prestamo
COMBINACION ( )
La combinacin de dos relaciones respecto a
una cierta combinacin, es otra relacin constituida
por todos los y tj concatenadas, tales que, en cada par,
las correspondientes satisfacen la condicin especificada.
Tambin se llama JOIN o PRODUCTO THETA.
Se corresponde con un producto cartesiano seguido de
una seleccin
Solucin: =
NOMBRE,DIRECCION (SOCIOS.NOMBRE=PRESTAMO.LECTOR (SOCIOxPRESTAMO))
NOMBRE DIRECCION
Elena Manriquez Calle 123 En SQL
Manuel Garca Calle 234
SELECT *
FROM Prestamo, Socio
WHERE (((Socio.Nombre)=[Prestamo].[Lector]));
ING. MARIA NINA
YUCRA
40
CONSULTAS A VARIAS TABLAS
COMBINACION ( )
AUTOR LIBRO
NOMBRE NACIONALIDAD INSTITUCION LIBRO AUTOR EDITORIAL
Date C.J. Norteamericana Relational Ins. DB Systems Date C.J. Addison
De Miguel Espaola FIM Basi di Dati Ceri S. Clup
Saltor F. Espaola FI de UPB SQL stan. Date C.J. Addison
Ceri S. Italiana Polit.Milan Diseo BD De Miguel Rama
SELECT *
FROM Autor INNER JOIN Libro ON Autor.Nombre=Libro.Lector;
=
ING. MARIA NINA
YUCRA
41
Consulta a varias tablas
Para muchas de las consultas que los usuarios realizan sobre los datos
almacenados en la base de datos es necesario extraer informacin de ms de
una tabla, para ello es necesario emplear los JOINS que representan una
operacin producir un conjunto de resultados que incorporen filas y columnas
de las tablas referidas en la consulta, esto lo hace basndose en columnas
comunes a las tablas.
Cuando se ejecutan los JOIN, SQL Server compara los valores de las
columnas especificadas fila por fila entonces usa los resultados de la
comparacin para combinar los valores que califican como nuevas filas.
SELECT <lista de columnas>
FROM <tabla o vista >
[INNER | LEFT|RIGHT|FULL [OUTER]] JOIN
<Tabla o Vista > ON <condicin>
La lista de columnas puede incluir campos de diferentes tablas.
JOIN especifica las tablas incolucradas en la consulta.
ON, establece la condicin de unin de las tablas, a travs de campos
comunes.
SELECT NombreProy
FROM Empresa INNER JOIN Proyecto ON Empresa.CodEmpresa
= Proyecto.CodEmpresa
WHERE Empresa.NomEmpresa='Empresa 2