1. Taller de Bases de Datos
Tema: Recuperación de datos mediante
consultas.
Ing. Gustavo Viera Estrada
Taller de Bases de datos.
META 2010
Procesos de consultas
2. Objetivos
Conocer y aplicar comandos para realizar consultas
básicas y de múltiples tablas.
Aprenderá como extraer columnas específicas.
Luego ampliara este sencillo select con técnicas de
manipulación y conversión de datos.
Desarrollar ejercicios de consulta, manipulación de
datos.
META 2010
Procesos de consultas
3. Contenido
Conocer la sintaxis completa del comando SELECT junto
con sus principales cláusulas:
SELECT lista_de_selección
[INTO nueva_tabla]
FROM lista_de_tablas
[WHERE condiciones_de_búsqueda]
[GROUP BY lista_de_agrupamientos]
[ORDER BY lista_de_ordenamiento [ASC | DESC]]
META 2010
Procesos de consultas
4. Definición
El comando SELECT se utiliza para recuperar datos desde
una base de datos y para presentarlos al usuario en uno o
más conjuntos de resultados. Un conjunto de resultados es un
arreglo tabular de los datos que se recupera al ejecutarse el
comando SELECT. Al igual que una tabla, el conjunto de
resultados posee filas y columnas. Este tema proveerá de una
vista general de los principales componentes del comando
SELECT, y de cómo estos componentes pueden ser usados
para recuperar datos específicos desde una base de datos.
META 2010
Procesos de consultas
5. Fundamentos del comando
Select
Un comando SELECT en Transact-SQL permite recuperar
datos desde una base de datos SQL Server. La mayoría
de los comandos SELECT incluyen cuatro propiedades
primarias del conjunto de resultados:
Las columnas a ser incluidas en el conjunto de resultados.
Las tablas de donde se grabarán los datos del conjunto de
resultados.
Las condiciones que las filas de las tablas fuentes deben cumplir
para ser incluidas en el conjunto de resultado.
El ordenamiento de las filas en el conjunto de resultados.
META 2010
Procesos de consultas
6. Ejemplos del uso del Select
Por ejemplo, el siguiente comando SELECT recupera el ID, nombre y
precio unitario de cualquier producto cuyo precio unitario supere los $40:
SELECT ProductoID, ProductoNombre, PrecioUnit
FROM Productos
WHERE PrecioUnit > 40
ORDER BY PrecioUnit ASC
En este ejemplo, la cláusula SELECT define qué columnas deberán ser
recuperados y la cláusula FROM identifica la tabla que contiene estas
columnas La cláusula WHERE limita las filas que serán incluidas en el
conjunto de resultados a aquellos productos que tengan un valor de
PrecioUnit mayor a $40. Por último, la cláusula ORDER BY especifica que
el conjunto de resultados estará ordenado de manera ascendente según el
valor de la columna PrecioUnit.
.
META 2010
Procesos de consultas
7. Clausula TOP
La palabra clave TOP n
La palabra clave TOP n especifica que solo serán devueltas las primeras n
filas del conjunto de resultados. Si se especifica ORDER BY, las filas son
seleccionadas después que el conjunto de resultados se ordena. El valor n
indica el número de filas a ser retornadas (siempre que la palabra clave
PERCENT no sea indicada). PERCENT especifica que n es el porcentaje de
filas en el conjunto de resultados que se retornarán. Por ejemplo el siguiente
comando SELECT retorna las primeras 10 ciudades en orden alfabético de la
tabla Ordenes:
SELECT DISTINCT TOP 10 CiudadVenta, RegionVenta
FROM Ordenes
ORDER BY CityVentas
META 2010
Procesos de consultas
8. Uso de los alias (As)
La palabra clave AS
Se puede mejorar la comprensión de un comando SELECT dando a la
tabla un alias. Se puede asignar un alias de tabla usando o no la palabra
clave AS:
nombre_tabla AS alias_tabla
nombre_tabla alias_tabla
En el ejemplo siguiente, el alias p se asigna a la tabla Editores:
USE pubs
SELECT p.ed_id, p.ed_nonmbre
FROM editores AS p
META 2010
Procesos de consultas
9. Tipos de información en la lista
de selección
Una lista de selección puede incluir muchos tipos de información, tal como una expresión simple
o una subconsulta escalar. Los ejemplos siguientes muestran varios de los ítems que se pueden
incluir en las listas de selección:
SELECT Nombre + ' ' + Apellido AS "Nombre_Empleado",
IDENTITYCOL AS "ID_Empleado",
Telefono_casa,
Region
FROM Northwind.dbo.Empleados
ORDER BY Apellido, Nombre ASC
En este ejemplo, los apellidos y los nombres de los empleados son combinados en una columna.
Un espacio se inserta entre el nombre y el apellido. El nombre de la columna que contendrá los
nombres de los empleados será Nombre_Empleado. El conjunto de resultados también incluirá
la columna de identificación llamada ID_Empleado; la columna Telefono_casa; y la columna
Region. El conjunto de resultado se ordenará primero por apellido y después por nombre.
.
META 2010
Procesos de consultas
10. La clausula INTO
La cláusula INTO habilita para especificar que el conjunto de resultados se utilizará
para crear una tabla nueva con el nombre definido en la cláusula. El comando
SELECT...INTO se utiliza para combinar datos de varias tablas o vistas en una
nueva tabla. Se puede usar para crear una tabla nueva desde un servidor
conectado. El ejemplo utiliza un comando SELECT para recuperar valores desde
las columnas Apellido y Nombre de la tabla Empleados:
SELECT Nombre, Apellido
INTO NombresEmpleados
FROM Empleados
El comando crea una nueva tabla llamada NombresEmpleados y guarda en ella el
conjunto de resultados generado. La nueva tabla contendrá las columnas Nombre y
Apellido, y estas columnas contendrán los valores de la tabla Empleados. El conjunto
de resultados no se muestra en el panel Results a no ser que específicamente se
consulte la nueva tabla.
META 2010
.
Procesos de consultas
11. La clausula FROM
La cláusula FROM se requiere en todo comando SELECT que recupere datos de
tablas. Se usa la cláusula FROM para listar las tablas que contienen las columnas
referenciadas en la lista de selección y en la cláusula WHERE. Se pueden asignar
alias a las tablas mediante el uso de la cláusula AS.
SELECT *
FROM Vendedores
Por otra parte, se puede usar la cláusula FROM para especificar combinaciones entre
dos tablas o vistas, lo que se discutirá mas adelante en detalle.
META 2010
Procesos de consultas
12. La clausula WHERE
Las cláusulas WHERE en un comando SELECT controlan qué filas de las
tablas fuentes serán usadas para construir el conjunto de resultados. La
cláusula WHERE son filtros. Especifican una serie de condiciones de
búsqueda, y solo se utilizan para construir el conjunto de resultados aquellas
filas que satisfacen las condiciones de filtro. Se dice que estas filas califican
para participar del conjunto de resultados. Por ejemplo, la cláusula WHERE
en el siguiente comando SELECT retornará solo aquellas filas cuyo valor
para la región sea Washington:
SELECT IDCliente, NombreCompañia
FROM Clientes
WHERE Region = 'WA'
META 2010
Procesos de consultas
13. La clausula ORDER BY
La cláusula ORDER BY ordena el resultado de una consulta por una o más columnas
(hasta 8060 bytes). Un ordenamiento puede ser ascendente (ASC) o descendente
(DESC). Si no se especifica una ordenamiento, se asume ASC. Si se indican más de
una columna en la cláusula ORDER BY el ordenamiento es anidado.
El siguiente comando ordena las filas en la tabla Titulos, primero por Editor (en orden
descendente), luego por tipo (en orden ascendente dentro de cada editor), y
finalmente por precio (en orden ascendente, dado que no se indica DESC):
SELECT Pub_id, Tipo, Titulo, Precio
FROM Titulos
ORDER BY Pub_id DESC, Tipo, Precio
META 2010
Procesos de consultas
14. Cadena de caracteres
Puede recuperar filas con base en porciones de cadena de caracteres, utilizando la
palabra clave LIKE. Junto con el LIKE se pueden emplear los caracteres tipos
comodines en la forma de expresiones normales:
Los comodines disponibles son:
* (cadena de cero o mas caracteres)
_ (un solo carácter)
Ejemplo:
SELECT titulo_id, titulo FROM libros
WHERE titulo LIKE „*computación*‟
Mostrara de todas las filas de la tabla libros que como titulo tengan la cadena
computación en cualquier parte del mismo.
META 2010
Procesos de consultas
15. Auto-evaluación
¿Que es lo que devuelven estas consultas?
A).- SELECT* FROM autores
WHERE nombre LIKE ‘Lo*’
B).- SELECT id_emp AS claveEmpleado,
ape AS Apellido,
nom AS Nombre
FROM empleados
C).- SELECT * FROM empleados
WHERE antigüedad < 5
META 2010
Procesos de consultas
16. Auto-evaluación
Ejercicios
Al inicio del tema se proporciono una base de datos llamada practica6 que se usara
para estos ejercicios.
1.- Se desea recuperar los campos id_titulo, titulo y precio de todos los libros que
tengan la palabra ‘diseño web’ en el titulo y cuando el precio no sean mayores a 500
peso. La tabla se llama títulos.
2.- Escriba una consulta para listar todos los títulos y precios de la tabla títulos, en
orden ascendente con base en el precio.
3.- Crear una consulta para encontrar todos los autores de libros que sean
únicamente del país de México. La tabla se llama autores.
META 2010
Procesos de consultas
17. Respuestas
Respuestas al cuestionario
A).- Esta consulta devuelve todas las columnas de la tabla de autores cuando el
apellido del autor comienza con la palabra Lo.
b).- Esta consulta devuelve todas las filas de la tabla de empleados y las columnas
id_emp, ape,nom. A los encabezados de columnas se les han dado los nombres
alternos claveEmpleado, apellido y nombre.
c).- Esta consulta muestra todos los empleados que tengan de 0 a 4 años de
antigüedad elaborando en la empresa
META 2010
Procesos de consultas
18. Respuestas
Respuestas a los ejercicios
1.- SELECT id_titulo,titulo,precio FROM titulos
WHERE (titulo LIKE ‘*diseño web*’) and (precio <=500).
2.- SELECT titulo,precio FROM titulo
ORDER BY precio ASC.
3.- SELECT * FROM autores
WHERE pais = ‘Mexico’.
META 2010
Procesos de consultas
19. Fuente
Rick Sawtell, Richard Waymire
“Aprendiendo Microsoft SQL Server 2000 en 21
dias”, Cáp. 6
6ª. Edición
Pearson Educacion, 2002
META 2010
Procesos de consultas