Está en la página 1de 22

IMPLEMENTACIN DE BASES DE DATOS

INTRODUCCIN A TRANSACT-SQL
1 INTRODUCCION A TRANSACT-SQL 1.1 Consultas de seleccin 1.2 Criterios de seleccin 1.3 Agrupamiento de registros y funciones agregadas 1.4 Consultas de actualizacin 1.5 Subconsultas 1.6 Consultas y referencias cruzadas 1.7 Consultas de unin interna 1.8 Consultas de unin externa

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN


Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros es modificable. 2.1 Consultas bsicas La sintaxis bsica de una consulta de seleccin es la siguiente: SELECT Campos FROM Tabla; En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo:

SELECT CompanyName, Phone FROM Customers


Esta consulta devuelve un recordset con el campo nombre de la compaia y telfono de la tabla clientes.

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN


1 Ordenar los registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la clasula ORDER BY Lista de Campos, en donde Lista de campos representa los campos a ordenar.

Ejemplo: SELECT PostalCode, CompanyName, Phone FROM Customers ORDER BY CompanyName


Esta consulta devuelve los campos CodigoPostal, Nombre de la compaia, Telefono de la tabla Clientes ordenados por el campo Nombre de la compaia. Se pueden ordenar los registros por mas de un campo, como por ejemplo: SELECT PostalCode, CompanyName, Phone FROM Customers ORDER BY PostalCode,CompanyName

Incluso se puede especificar el orden de los registros: ascendente mediante la clasula (ASC -se toma este valor por defecto) descendente (DESC)
SELECT PostalCode, CompanyName, Phone FROM Customers ORDER BY PostalCode DESC , CompanyName ASC;

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN 2.3 Consultas con Predicado El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles predicados son:
Predicado ALL TOP DISTINCT Descripcin Devuelve todos los registros de la tabla Devuelve un determinado nmero de registros de la tabla Omite los registros cuyos campos seleccionados coincidan totalmente

ALL: Si no se incluye ninguno de los predicados se asume ALL, es decir, se le indica al Motor de la base de datos que devuelva todas las filas o registros que contenga la tabla o tablas que listemos en la clusula FROM. EJ: SELECT ALL Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC; No es necesario colocar ALL, es el predicado por defecto. La siguiente consulta sera equivalente EJ: SELECT Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC;

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN


TOP: Devuelve un cierto nmero de registros que entran entre al principio o al final de un rango especificado por una clusula ORDER BY. Supongamos que queremos recuperar los nombres de los 5 mejores estudiantes de un curso: SELECT TOP 5 Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC; Si no se incluye la clusula ORDER BY, la consulta devolver un conjunto arbitrario de 5 registros de la tabla Estudiantes.

El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si el promedio nmero 5 y 6 son iguales, la consulta devolver 6 registros.
Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la clusula ORDER BY. SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC; El valor que va a continuacin de TOP debe ser un Integer sin signo. TOP no afecta a la posible actualizacin de la consulta.

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN DISTINCT: Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instruccin SELECT se incluyan en la consulta deben ser nicos. Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen Lpez en el campo Apellido, la siguiente instruccin SQL devuelve un nico registro: SELECT DISTINCT Apellido FROM Empleados Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la clusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios. select distinct country from Customers select distinct country,region from Customers select distinct country,region,City from Customers

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.1 CONSULTAS DE SELECCIN


Alias En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un conjunto devuelto. Para resolver esto tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada. Sintaxis: Ej: SELECT campo AS alias FROM tabla SELECT Apellido AS Empleado FROM Empleados

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

INTRODUCCIN A TRANSACT-SQL

1 INTRODUCCION A TRANSACT-SQL 1.1 Consultas de seleccin 1.2 Criterios de seleccin 1.3 Agrupamiento de registros y funciones agregadas 1.4 Consultas de actualizacin 1.5 Subconsultas 1.6 Consultas y referencias cruzadas 1.7 Consultas de unin interna 1.8 Consultas de unin externa

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN La clusula WHERE La clusula WHERE puede usarse para determinar qu registros de las tabla(s) listadas en la clusula FROM aparecern en los resultados de la instruccin SELECT. WHERE es opcional, pero cuando aparece debe ir a continuacin de FROM. Sintaxis: SELECT Campo1, . Campo N FROM tabla(s) WHERE criterio1 . Criterio N

SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000 SELECT Id_Producto, Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido SELECT * FROM Pedidos WHERE Fecha_Envio = 2010-22-03 SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos = 'King

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
La clusula WHERE Lista todos los registros de la tabla RDENES realizadas por el vendedor 3. Muestra nicamente los campos ID, ID del cliente, Fecha (Order Date) y Pas y Ciudad de envi (ShipCountry, ShipCity) select orderid,CustomerID,OrderDate,ShipCountry,ShipCity from orders where EmployeeID=3 Realiza la misma consulta anterior nombrando los campos a mostrar en espaol: select orderid as IdOrden,CustomerID as IdCliente,OrderDate as Fecha,ShipCountry PaisDeEnvio,ShipCity "Ciudad de envio" from orders where EmployeeID=3 Realiza la misma consulta, pero ahora listando solo las rdenes cuyo pas de envo es Francia(France) select orderid as IdOrden,CustomerID as IdCliente,OrderDate as Fecha,ShipCountry PaisDeEnvio,ShipCity "Ciudad de envio" from orders where ShipCountry='france Lista todos los registros de la tabla rdenes cuya fecha de entrega (RequiredDate) es 26 de marzo de 1998. Muestra todos los campos select * from orders where RequiredDate='26-03-1998'

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN

Operadores Lgicos Los operadores lgicos soportados por SQL son: AND, OR, XOR, Is y Not. A excepcin de los dos ltimos todos poseen la siguiente sintaxis: <expresin1> operador <expresin2> En donde expresin1 y expresin2 son las condiciones a evaluar, el resultado de la operacin vara en funcin del operador lgico. Si a cualquiera de las anteriores condiciones le anteponemos el operador NOT el resultado de la operacin ser el contrario al devuelto sin el operador NOT.
SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50 SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100 SELECT * FROM Empleados WHERE NOT Estado = 'Soltero SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR (Provincia = 'Madrid' AND Estado = 'Casado'); El ltimo operador denominado Is se emplea para comparar dos variables de tipo objeto <Objeto1> Is <Objeto2>. Este operador devuelve verdad si los dos objetos son iguales. SELECT * FROM Empleados WHERE FechaNacimiento IS NULL

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
La clusula WHERE Lista todos los registros de la tabla RDENES realizadas por el vendedor 3 o el 6. Muestra nicamente los campos ID, ID del cliente, Fecha (Order Date) y Pas y Ciudad de envi (ShipCountry, ShipCity) select orderid,CustomerID,OrderDate,ShipCountry,ShipCity from orders where EmployeeID=3 or EmployeeID=6 Realiza la misma consulta mostrando solo los registros de rdenes del cliente con id SAVEA y cuyo modo de envo (ShipVia) es el 3 select orderid,CustomerID,OrderDate,ShipCountry,ShipCity from orders where CustomerID=savea and ShipVia=3

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
La clusula WHERE Realiza la misma consulta, pero ahora listando solo las rdenes cuyo pas de envo es Francia(France) y el id del empleado es 7 O las rdenes con fecha (Order date) a partir de octubre de 1997 select orderid,CustomerID,OrderDate,ShipCountry,ShipCity from orders where (ShipCountry='france' and EmployeeID=7) or OrderDate >='01-10-1997' Lista todos los registros de la tabla rdenes cuya capacidad de carga (Freight) est entre 100 y 200. Muestra todos los campos select * from orders where freight >=100 and freight<=200 Muestra todas las rdenes con todos sus campos que no han sido embarcadas o enviadas (ShippedDate) Select * from Orders where ShippedDate is null

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
Intrvalos de Valores (operador BETWEEN) Para indicar que deseamos recuperar los registros segn el intrvalo de valores de un campo emplearemos el operador Between cuya sintaxis es: (campo [Not] Between valor1 And valor2 (la condicin Not es opcional) En este caso la consulta devolvera los registros que contengan en un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin Not devolver aquellos valores no incluidos en el intervalo. SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999 Lista todos los registros de la tabla rdenes cuya capacidad de carga (Freight) est entre 100 y 200. Muestra todos los campos Select * From Orders Where Freight between 100 and 200 "campo"

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
El Operador Like Se utiliza para comparar una expresin de cadena con un modelo en una expresin SQL. Su sintaxis es: Expresin Like modelo En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An%). El operador Like se puede utilizar en una expresin para comparar un valor de un campo con una expresin de cadena. Por ejemplo, si introduce Like C% en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C.

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
El Operador Like Comodn % _ Descripcin Cualquier cadena de 0 a ms caracteres Ej: Where title like %computer% Cualquier carcter. Ej: WHERE au_fname LIKE _ean

[]
[^]

Intrvalo de caracteres. Ej: WHERE au_lname LIKE [C-P]arsen


Cualquier intrvalo de caracteres que no se encuentre en la lista Ej: WHERE au_lname LIKE [^a]%

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y enseguida de 3 dgitos: Like P[A-F]___

Coincide aa, aBa, aBBBa a*a abcdefg , abc aaa, a3a, aBa a0a, a1a, a2a

No Coincide aBC aaa cab, aab aBBBa aaa, a10a

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
El operador Like Lista todas las rdenes y sus campos donde el pas de envo (Ship Country) empieza con la letra s select * from orders where ShipCountry like S% Lista todas las rdenes y sus campos donde el nombre del pas de envo (Ship Country) lleve las letras de select * from orders where ShipCountry like %de% Lista todas las rdenes y sus campos donde la segunda letra ID del cliente sea una A Select * from Orders where CustomerID like _A%

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

1.2CRITERIOS DE SELECCIN
El Operador In Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los indicados en una lista. Su sintaxis es: Expresin [Not] In(valor1, valor2, . . .) SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

INTRODUCCIN A TRANSACT-SQL

1 INTRODUCCION A TRANSACT-SQL 1.1 Consultas de seleccin 1.2 Criterios de seleccin 1.3 Agrupamiento de registros y funciones agregadas 1.4 Consultas de actualizacin 1.5 Subconsultas 1.6 Consultas y referencias cruzadas 1.7 Consultas de unin interna 1.8 Consultas de unin externa

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS

M.C. OMAR JASSO L.

IMPLEMENTACIN DE BASES DE DATOS