You are on page 1of 6

CONSULTAS DE UNA SOLA TABLA SELECT <lista_columnas> FROM <lista_tablas> WHERE <condicion_busqueda> Rangos Se pueden recuperar filas con

base a un rango de valores utilizando la palabra clave BETWEEN SELECT <lista_columnas> FROM <lista_tablas> WHERE nombre_columna [NOT] BETWEEN expresin AND expresin Ejemplo: Devolver el apellido y la clave de todos los empleados contratados entre el 10/1/92 y el 31/12/92 SELECT apellido_p, emp_id FROM empleado WHERE fec_cont BETWEEN 10/1/92 AND 31/12/92 Listas Se pueden recuperar filas con valores que corresponden a una lista con la palabra clave IN. SELECT <lista_columnas> FROM <lista_tablas> WHERE nombre_columna [NOT] IN (lista_valores) Ejemplo: Encontrar a los empleados que trabajan para editores con la clave 0877 o 9999 SELECT emp_id, nombre, apellido FROM empleado WHERE clave IN (0877, 0009) * WHERE clave NOT IN (0877, 0009) Cadenas de caracteres Recuperar filas con base en porciones de cadenas de caracteres, utilizando la palabra clave LIKE. SELECT <lista_columnas> FROM <lista_tablas> WHERE nombre_columna [NOT] LIKE cadena Comodines % cadena de cero o ms caracteres

_ Un solo caracter [ ] Un solo carcter dentro del rango especificado

Ejemplo: Devolver la tabla ttulos las columnas id_titulo, y titulo de todos los libros que contengan computadora en cualquier parte del titulo. SELECT id_titulo, titulo FROM titulo WHERE titulo LIKE %computadora% Ejemplo: Devolver todos los alumnos donde su apellido sea Snchez SELECT * FROM alumno WHERE ap_alumno LIKE [Ssz]_nche[zs] Ejemplo: Devolver el nombre completo de los alumnos donde su apellido sea Galvez y sean mayor de 18 aos de edad SELECT nombre, ap_alumno, am_alumno FROM alumno WHERE ap_alumno LIKE [Gg]_lve[zs] AND edad > 18 Ejemplo: Devoler el nombre y la edad de los alumnos donde su apellido sea Glvez y el nombre no sea Ximena y la edad este entre 17 y 20 aos SELECT nombre, ap_alumno, am_alumno FROM alumno WHERE ap_alumno LIKE [Gg]_lve[zs] AND nombre NOT LIKE [Xx]imena AND edad BETWEEN 17 and 20

Valores desconocidos Un valor NULL ocurre cuando no se asigna un valor a un campo. NULL equivale a un valor desconocido SELECT <lista_columnas> FROM <lista_tablas> WHERE nombre_columna IS [NOT] NULL SELECT titulo_id, titulo FROM titulo WHERE ventas IS NULL bien SELECT titulo_id, titulo FROM titulo WHERE ventas = NULL

Libros que si tienen ventas: SELECT titulo_id, titulo FROM titulo WHERE ventas IS NOT NULL bien SELECT titulo_id, titulo FROM titulo WHERE ventas <> NULL Criterios multiples Recuperar las columnas id_titulo, titulo y precio de todos los libros que tenga en id_pub 0877 o la palabra computadora en el titulo y para los cuales el precio sea NOT NULL SELECT id_titulo, titulo, precio FROM libros WHERE titulo LIKE %computadora% OR id_pub = 0877 AND precio IS NOT NULL La misma consulta pero deshacerse del valor NULL en el campo precio SELECT id_titulo, titulo, precio FROM libros WHERE (titulo LIKE %computadora% OR id_pub = 0877 ) AND precio IS NOT NULL Informacin duplicada Para no recibir informacin duplicada, se pueden eliminar las filas duplicadas utilizando la clausula DISTINCT en la parte SELECT SELECT DISTINCT lista_columnas FROM lista_tablas WHERE condiciones_busqueda SELECT DISTINCT estado FROM autor SELECT DISTINCT city FROM autor SELECT DISTINCT city, state FROM autor

Clasificacin de datos ORDER BY SELECT lista_columnas FROM lista_tablas [ORDER BY nombre_columna [ASC DESC]] Funciones de agregado -Devuelve un conteo del nmero total de filas en la tabla empleado SELECT COUNT (*) FROM empleado -Selecciona el valor maximo de la columna ventas de la tabla titulo SELECT MAX (ventas) FROM titulo -Selecciona todos los valores de la columna ventas y las sum SELECT SUM(ventas) FROM compra GROUP BY Agrupa todos los datos que satisfacen los criterios de la clausula WHERE para ser devueltos en una sola fila en un valor de resumen. HAVING Establece los criterios que determinan que filas devolver la clusula GROUP BY. -Encontrar todos los libros que tienen mas de un autor y devuelve el nmero identificado del titulo y el nmero de autores de cada libro SELECT titulo_id, count(titulo_id) AS Numero_Autores FROM tituloautor GROUP BY titulo_id HAVING count(titulo_id) > 1 -Encontrar libros que hayan tenido a la fecha ventas de 4000 pesos o ms, y listar los identificadores de titulo SELECT titulo_id, ventas FROM libros WHERE ventas >= 4000 GROUP BY titulo_id, ventas

CONSULTAS DE TABLAS MULTIPLES Se deben de implementar combinaciones para recuperar datos de dos o ms tablas. Los resultados aparecern en una sola tabla con columnas de todas las tablas especificadas en la lista_columnas de SELECT y que satisfagan el criterio de bsqueda. Para combinar tablas, debe hacer una comparacin de una o ms columnas de una tabla con una o ms columnas de otra u otras tablas. Al combinar tablas puede utilizar la sintaxis de combinacin ANSI o la de SQL Server Sintaxis de combinacin SQL Server SELECT nombre_tabla.nombre_columna, [] FROM lista_tablas WHERE nombre_tabla.nombre_columna operador nombre_tabla.nombre_columna, [] -FROM lista las tablas comprendidas en la combinacin -WHERE incluye las columnas a combinar y puede tener criterios de bsqueda adicionales Sintaxis de combinacin ANSI SELECT nombre_tabla.nombre_columna, [] FROM nombre_tabla JOIN nombre_tabla ON criterio_busqueda, [] WHERE criterio_busqueda -Seleccionar todas las columnas de la tablas publicaciones y pub_info donde las columnas pub_id de las tablas combinadas son iguales. SELECT * FROM publicaciones, pub_info WHERE publicaciones.pub_id = pub_info.pub_id SELECT * FROM publicaciones INNER JOIN pub_info ON publicaciones.pub_id = pub_info.pub_id -Devolver el nombre completo de todos los clientes que compraron en diciembre SELECT nombre, ap_paterno, ap_matterno FROM clientes, venta WHERE clientes.id_cliente=venta.id_cliente AND fecha_venta BETWEEN 01-dic-06 AND 31-dic-06 -Devolver el nombre completo de clientes, el total y la fecha de venta, donde el apellido paterno de los clientes comience con la letra H o sea Hernndez y el total de la compra sea mayor que 1000

SELECT nombre, ap_paterno, ap_materno FROM cliente, venta WHERE cliente.id_cliente = venta.id_cliente AND Ap_paterno LIKE [Hh]& or ap_paterno LIKE [Hh]ern_nde[sz] AND total_vta >= 1000 -Devolver el nmero de compra, nombre del producto, cantidad de producto que se compro en el ultimo semestre del ao. SELECT compra_esp.no_compra, nombre_prod, compra_esp.cant_prod FROM compra_esp, producto, compra WHERE compra_esp.id_producto = producto.id_producto AND compra_esp.no_compra=compra.no_compra AND fecha_compra BETWEEN 01-jul-06 AND 31-dic-06 SUBCONSULTAS / CONSULTAS ANIDADAS Una instruccin SELECT dentro de otra instruccin SELECT es una subconsulta. -Devolver el nombre completo de todos los clientes cuya fecha de venta fue en diciembre SELECT nombre, ap_paterno, ap_materno FROM cliente WHERE id_cliente in (SELECT id_cliente FROM venta WHERE fecha_venta BETWEEN 01-12-06 AND 31-12-06) -Devolver el nombre de todos los productos que se vendieron la primera semana de diciembre o el total de venta es menor a 1000. SELECT nombre_prod FROM producto WHERE id_prod IN (SELECT id_prod FROM vende WHERE no_vta IN (SELECT no_vta FROM venta WHERE fecha_vta BETWEEN 01-12-06 AND 07-12-06 OR total_vta < 1000) )

You might also like