0% encontró este documento útil (0 votos)
6 vistas

01. Introduccion Consultas SQL

Consultas SQL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas

01. Introduccion Consultas SQL

Consultas SQL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Consultas SQL (SELECT)

Consultas sencillas :

Devolver todos los campos de una tabla (SELECT*)

SELECT *
FROM Empleados

Si Empleados dispone los campos: IdEmpleado, nombre, DepId lo anterior sería


equivalente a:

SELECT IdEmpleado, nombre, DepId


FROM Empleados

Al tener únicamente una tabla involucrada, podemos referirnos a los campos sin
calificar, dado que no hay duda de a qué tabla se refiere. Cuando veamos
consultas sobre varias tablas comprenderemos la necesidad de incluir esta
notación calificada (TABLA.campo) :

SELECT EMPLEADOS.IdEmpleado, EMPLEADOS.nombre,


EMPLEADOS.DepId
FROM Empleados

Devolver un subconjunto de los campos de una tabla (SELECT DISTINCT)

SELECT cp, ciudad


FROM Direccion

Esta consulta devolverá únicamente los campos cp (código postal) y ciudad de la


tabla DIRECCION. Al tener un subconjunto de los campos, éstos no tienen por
qué incluir a la clave de la tabla. Así, si tenemos muchos registros referidos a
distintas calles y números de ese mismo código postal y ciudad, nos
encontraremos muchos registros repetidos.

Esto puede evitarse haciendo:

SELECT DISTINCT cp, ciudad


FROM CLIENTES

Así se eliminan los registros repetidos, devolviendo únicamente una vez cada par
cp, ciudad.
Devolver un subconjunto de los registros de una tabla (WHERE)

SELECT numero, calle


FROM DIRECCION
WHERE ciudad = ‘Guasave’

Esta consulta devolvería el número y la dirección de todas las direcciones


pertenecientes a la ciudad de Guasave. Como vemos, con WHERE indicamos la
condición que deben cumplir los registros de la tabla para ser devueltos en la
consulta.

En este caso tenemos una condición simple dada por la comparación de igualdad
(=) entre al campo (ciudad) y un literal de tipo cadena, entre comillas simples
(‘Guasave’).

SELECT calle, ciudad


FROM DIRECCION
WHERE numero = 12

Esta otra consulta devolvería la calle y ciudad de todos los registros de la tabla
con el número 12, en este caso un literal numérico.

Operadores relacionales :

Al margen del signo de igualdad empleado anteriormente, se pueden usar N las


condiciones simples de las consultas los operadores relacionales, devolviendo
siempre un valor booleano (lógico):

Operador Significado
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual
que
>= Mayor o igual
que
= Igual que

SELECT nombre
FROM EMPLEADOS
WHERE edad <= 32
Adicionalmente, disponemos de operadores de comparación adicionales,
también devolviendo valores booleanos (lógicos) True o False según si se
cumplen o no las condiciones:

BETWEEN: para indicar un intervalo de valores.

SELECT nombre
FROM EMPLEADOS
WHERE edad BETWEEN 20 AND 35

LIKE: empleado para comparar patrones de texto pudiendo incluir


comodines como los siguientes:

Comodin Descripcion
% Sustituto para cero o más caracteres.
_ Sustituto para exactamente un carácter
[lista caracteres] Cualquier carácter de la lista
[^lista caracteres] Cualquier carácter que no esté en la lista
[!lista caracteres] Cualquier carácter que no esté en la lista

SELECT num, calle, cp


FROM DIRECCION
WHERE ciudad LIKE ‘G%’

Esta consulta devolvería los datos de las direcciones de toda ciudad que comience
por G y siga por cualquier número de caracteres, incluyendo cero caracteres. Por
ejemplo, Guasave o Guamuchil.

IN: Se utiliza para comparar con una lista de valores fijados de modo que
devuelva True si el campo indicado pertenece a la lista.

SELECT num, calle, direccion


FROM DIRECCION
WHERE ciudad IN (‘Guasave’, ‘Culiacan’, ‘Los Mochis’, ‘Guamuchil)

Operadores lógicos (AND, OR, NOT)

Los operadores lógicos nos sirven para componer expresiones de filtrado a partir
de las anteriores:

Operador Significado
AND Y lógico
OR O lógico
NOT Negación
lógica

La precedencia y asociatividad es la habitual definida en la Lógica. En cualquier


caso, cuando incluya expresiones que empleen varios de estos operadores es
recomendable usar paréntesis para evitar errores. Por ejemplo:

SELECT * FROM DIRECCION


WHERE ciudad = ‘Guasave’ AND cp = 81000
OR ciudad = ‘Guamuchil’ AND NOT cp = 81028

Devuelve los registros pertenecientes a direcciones que tengan el código postal


81000 de Guasave o bien que no tengan el 81028 de Guamuchil. La mayor
precedencia la adopta el operador NOT sobre la condición cp = 81028; a
continuación los AND se aplican sobre ciudad = ‘Guasave’ AND cp = 81000 y
ciudad = ‘Guamuchil’ AND NOT cp = 81028; por último se aplica el OR sobre la
fórmula completa. La misma consulta se puede expresar de forma más clara con
paréntesis:

SELECT *
FROM DIRECCION
WHERE (ciudad = ‘Guasave’ AND cp = 81000) OR (ciudad = ‘Guamuchil’
AND (NOT cp = 81028))

O bien si el NOT nos parece más evidente, podemos excluir el paréntesis


interior, a nuestra gusto siempre conservando el significado que queríamos dar la
operación.

Ordenación

Ordenar según criterios (ORDER BY)

Podemos ordenar los registros devueltos por una consulta por el campo o campos
que estimemos oportunos:

SELECT *
FROM CIUDAD
ORDER BY ESTADO ASC, numhabitantes DESC

Esta consulta devolvería todas las ciudades ordenadas por estado en orden
ascendente, y dentro de los del mismo estado ordenaría las ciudades por orden
descendente del número de habitantes. Si no indicamos ASC ni DESC, el
comportamiento por defecto será el orden ascendente (ASC).
Devolución de expresiones

Asignación de un alias a un dato devuelto (AS)

SELECT idCliente AS id, nombre AS cliente, descripcion AS desc


FROM CLIENTES

También podría gustarte