Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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;
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;
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.
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
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
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
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'
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
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
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
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"
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.
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
[]
[^]
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
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%
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');
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