introducción a sql consultas y criterios de selección

22
IMPLEMENTACIÓN DE BASES DE DATOS

Upload: mc-omar-jasso

Post on 26-Jun-2015

7.603 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Introducción a sql consultas y criterios de selección

IMPLEMENTACIÓN DE BASES DE DATOS

Page 2: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

INTRODUCCIÓN A TRANSACT-SQL

1 INTRODUCCION A TRANSACT-SQL1.1 Consultas de selección1.2 Criterios de selección1.3 Agrupamiento de registros y funciones agregadas1.4 Consultas de actualización1.5 Subconsultas1.6 Consultas y referencias cruzadas1.7 Consultas de unión interna1.8 Consultas de unión externa

IMPLEMENTACIÓN DE BASES DE DATOS

Page 3: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN

Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información 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 básicas La sintaxis básica de una consulta de selección 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 compañia y teléfono de la tabla clientes.

IMPLEMENTACIÓN DE BASES DE DATOS

Page 4: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN1 Ordenar los registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la claúsula 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 compañia, Telefono de la tabla Clientes ordenados por el campo Nombre de la compañia.

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 claúsula (ASC -se toma este valor por defecto) ó descendente (DESC)

SELECT PostalCode, CompanyName, Phone FROM Customers ORDER BY PostalCode DESC , CompanyName ASC;

IMPLEMENTACIÓN DE BASES DE DATOS

Page 5: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN2.3 Consultas con Predicado El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles predicados son:

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 cláusula 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 sería equivalenteEJ: SELECT Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC;

IMPLEMENTACIÓN DE BASES DE DATOS

Predicado Descripción

ALL Devuelve todos los registros de la tabla

TOP Devuelve un determinado número de registros de la tabla

DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente

Page 6: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN

TOP:Devuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula 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 cláusula 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 número 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 cláusula ORDER BY.

SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Promedio DESC;

El valor que va a continuación de TOP debe ser un Integer sin signo.TOP no afecta a la posible actualización de la consulta.

IMPLEMENTACIÓN DE BASES DE DATOS

Page 7: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN

DISTINCT:Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción 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 López en el campo Apellido, la siguiente instrucción SQL devuelve un único registro:

SELECT DISTINCT Apellido FROM Empleados

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula 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 Customersselect distinct country,region from Customersselect distinct country,region,City from Customers

IMPLEMENTACIÓN DE BASES DE DATOS

Page 8: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.1 CONSULTAS DE SELECCIÓN

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: SELECT campo AS alias FROM tabla

Ej: SELECT Apellido AS Empleado FROM Empleados

IMPLEMENTACIÓN DE BASES DE DATOS

Page 9: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

INTRODUCCIÓN A TRANSACT-SQL

1 INTRODUCCION A TRANSACT-SQL1.1 Consultas de selección1.2 Criterios de selección1.3 Agrupamiento de registros y funciones agregadas1.4 Consultas de actualización1.5 Subconsultas1.6 Consultas y referencias cruzadas1.7 Consultas de unión interna1.8 Consultas de unión externa

IMPLEMENTACIÓN DE BASES DE DATOS

Page 10: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

La cláusula WHERE La cláusula WHERE puede usarse para determinar qué registros de las tabla(s) listadas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM.

Sintaxis: SELECT Campo1, …. Campo N FROM tabla(s) WHERE criterio1 …. Criterio N

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

IMPLEMENTACIÓN DE BASES DE DATOS

Page 11: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

La cláusula 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 País 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 español: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 país de envío 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 camposselect * from orders where RequiredDate='26-03-1998'

IMPLEMENTACIÓN DE BASES DE DATOS

Page 12: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓNOperadores Lógicos Los operadores lógicos soportados por SQL son: AND, OR, XOR, Is y Not. A excepción de los dos últimos todos poseen la siguiente sintaxis:

<expresión1> operador <expresión2>

En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la operación varía en funcióndel operador lógico. Si a cualquiera de las anteriores condiciones le anteponemos el operador NOT el resultado de la operación 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

IMPLEMENTACIÓN DE BASES DE DATOS

Page 13: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

La cláusula 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 País 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 envío (ShipVia) es el 3 select orderid,CustomerID,OrderDate,ShipCountry,ShipCity from orders where CustomerID=‘savea’ and ShipVia=3

IMPLEMENTACIÓN DE BASES DE DATOS

Page 14: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

La cláusula WHERE

Realiza la misma consulta, pero ahora listando solo las órdenes cuyo país de envío 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 camposselect * 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

IMPLEMENTACIÓN DE BASES DE DATOS

Page 15: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

Intérvalos de Valores (operador BETWEEN)Para indicar que deseamos recuperar los registros según el intérvalo de valores de un campo emplearemos el operador Between cuya sintaxis es:

(campo [Not] Between valor1 And valor2 (la condición Not es opcional)

En este caso la consulta devolvería los registros que contengan en "campo"un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condición 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 camposSelect * From Orders Where Freight between 100 and 200

IMPLEMENTACIÓN DE BASES DE DATOS

Page 16: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓNEl Operador Like Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Su sintaxis es:

Expresión Like modelo

En donde expresión es una cadena modelo o campo contra el que se compara expresión. Se puedeutilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Pormodelo puede especificar un valor completo (Ana María), o se pueden utilizarcaracteres comodín como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An%).

El operador Like se puede utilizar en una expresión para comparar un valor de un campo con una expresión 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.

IMPLEMENTACIÓN DE BASES DE DATOS

Page 17: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓNEl Operador Like

IMPLEMENTACIÓN DE BASES DE DATOS

Comodín Descripción

% Cualquier cadena de 0 a más caracteresEj: Where title like ‘%computer%’

_ Cualquier carácter. Ej: WHERE au_fname LIKE ‘_ean’

[] Intérvalo de caracteres. Ej: WHERE au_lname LIKE ‘[C-P]arsen’

[^] Cualquier intérvalo de caracteres que no se encuentre en la listaEj: WHERE au_lname LIKE ‘[^a]%’

Page 18: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y enseguida de 3 dígitos: Like ‘P[A-F]___’

Coincide No Coincide ‘aa’, ‘aBa’, ‘aBBBa’ ‘aBC’ ‘a*a’ ‘aaa’ ‘abcdefg’, ‘abc’ ‘cab’, ‘aab’ ‘aaa’, ‘a3a’, ‘aBa’ ‘aBBBa’ ‘a0a’, ‘a1a’, ‘a2a’ ‘aaa’, ‘a10a’

IMPLEMENTACIÓN DE BASES DE DATOS

Page 19: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓN

El operador Like

Lista todas las órdenes y sus campos donde el país de envío (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 país de envío (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 ASelect * from Orders where CustomerID like ‘_A%’

IMPLEMENTACIÓN DE BASES DE DATOS

Page 20: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

1.2CRITERIOS DE SELECCIÓNEl Operador In Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los indicados en una lista. Su sintaxis es:

Expresión [Not] In(valor1, valor2, . . .)

SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');

IMPLEMENTACIÓN DE BASES DE DATOS

Page 21: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L.

INTRODUCCIÓN A TRANSACT-SQL

1 INTRODUCCION A TRANSACT-SQL1.1 Consultas de selección1.2 Criterios de selección1.3 Agrupamiento de registros y funciones agregadas1.4 Consultas de actualización1.5 Subconsultas1.6 Consultas y referencias cruzadas1.7 Consultas de unión interna1.8 Consultas de unión externa

IMPLEMENTACIÓN DE BASES DE DATOS

Page 22: Introducción a sql consultas y criterios de selección

M.C. OMAR JASSO L. IMPLEMENTACIÓN DE BASES DE DATOS