Sie sind auf Seite 1von 38

Esp.

Wilmer Jesús Manotas Ferias


El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones
de agregado. Estos elementos se combinan en las instrucciones para crear,
actualizar y manipular las bases de datos.

En este apartado los comandos con los cuales trabajaremos son los comandos
DML ( Lenguaje de Manipulación de Datos) que permiten generar consultas para
ordenar, filtrar y extraer datos de la base de datos.

Esp. Wilmer Jesús Manotas Ferias


Utilizadas 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 los
cuales pueden almacenarse o modificarse.
Para hacer consultas de selección es preciso utilizar la sentencia SELECT

Clausulas
From
Sentencia
Where
Select Asociada Group by
Having
Order By
Esp. Wilmer Jesús Manotas Ferias
La sintaxis de una consulta de selección es la siguiente:

SELECT
[* | ALL | DISTINCT | DISTINCTROW ]
FROM
[ table_references]

[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[HAVING where_condition] Clausulas
[ORDER BY {col_name | expr | position} Condicionales
[ASC | DESC], ...]

Esp. Wilmer Jesús Manotas Ferias


El predicado se incluye entre la claúsula y el primer nombre del campo a
recuperar, los posibles predicados son:

ALL | * Top
SELECT ALL FROM Empleados; SELECT TOP 25 Nombre, Apellido FROM
SELECT * FROM Empleados; Estudiantes ORDER BY Nota DESC;
Devuelve todos los campos de la tabla Devuelve un cierto número de registro

DISTINCT DISTINCTROW
SELECT DISTINCT Apellido FROM
SELECT DISTINCTROW Apellido FROM
Empleados;
Empleados;
Omite los registros que contienen datos
Devuelve los registros diferentes de una
duplicados en los campos seleccionados.
tabla.
Esp. Wilmer Jesús Manotas Ferias
Las cláusulas son condiciones de modificación utilizadas para definir los
datos que desea seleccionar o manipular.

Where : Cuando se incluye la claúsula WHERE en una consulta sólo se devolverán aquellas filas
que cumplen la condición especificada en dicha claúsula.
Ejemplo:
SELECT CodigoPostal, Nombre, Telefono FROM Clientes WHERE Nombre = ‘alfredo’;
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 210000;

Group By : Utilizada para separar los registros seleccionados en grupos específicos.


Ejemplo:
SELECT Apellidos, Salario FROM Empleados Group By Salario > 210000;

Esp. Wilmer Jesús Manotas Ferias


ORDER BY 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 CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre;

Having : Utilizada para expresar la condición que debe satisfacer cada grupo. Generalmente acompañada del
Group By.
Ejemplo:
SELECT empleado, SUM(Total) FROM Venta GROUP BY empleado HAVING sum(Total)>20000

Esp. Wilmer Jesús Manotas Ferias


Son símbolos o cadenas de caracteres que identifica SQL para llevar a cabo
la relación entre dos o mas expresiones ,operaciones aritméticas,
subconsultas etc.
Los tipos de operadores son:

 OPERADORES LOGICOS

 OPERADORES ARITMETICOS

 OPERADORES RELACIONALES

Esp. Wilmer Jesús Manotas Ferias


Permiten asociar varias condiciones de distintas formas, Los operadores lógicos
reducen las opciones a t r u e (1) o false (0).
<expresión1> operador <expresión2>

Operador Sintaxis Descripción


AND, && c1 AND c2 , c1 & & c2 Solo es verdad si ambas condiciones, c1 y
c2 son verdaderas.
OR, I I c1 OR c2, c1 I I c2 Verdad si c1 o c2 es verdadera

! , NOT ! c1, NOT c1 Verdad si c1 es falsa y falsa


si c1 es verdadera.

Esp. Wilmer Jesús Manotas Ferias


Ejemplos :

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');

Esp. Wilmer Jesús Manotas Ferias


Los operadores aritméticos se usan para realizar operaciones aritméticas
elementales.

Operador Sintaxis Descripción


+ a+b Agrega a + b, devuelve la suma de ambos

- a–b Resta a + b, devuelve la diferencia

* a*b Multiplica a+ b, devuelve el producto

/ a/ b Divide a+ b, devuelve el cociente

% a%b a Modulo b devuelve el resto a / b

Esp. Wilmer Jesús Manotas Ferias


Between … AND ……
Este operador se utiliza en la cláusula where, para poder restringir una lista de selección
según un rango de valores.
Sintaxis:
WHERE Nombre_Columna BETWEEN parametro1 AND parametro2
NOTA: parametro1 (Mínimo) y parametro2 (Máximo)
Ejemplo : Suponga que queremos ver aquellos productos (Tabla Productos) cuyos valores se encuentran
entre los 40000 y 200000 Dólares.

SELECT * FROM productos WHERE valProducto BETWEEN 40000 AND 200000

Esp. Wilmer Jesús Manotas Ferias


IN (Lista)
Este operador permite verificar si el campo se encuentra en una lista determinada o
subconsulta. Retorna verdadero si el campos se encuentra en la lista.
Sintaxis:
WHERE campo_tabla IN (Lista de datos o Subconsulta)
Ejemplo : Liste los campos de la tabla productos que tengan exactamente un precio de 180000, 50000 y
100000 pesos.

SELECT * FROM productos WHERE valProducto IN (180000,100000,50000)

Esp. Wilmer Jesús Manotas Ferias


Like
Esta palabra clave indica el patrón de ajuste con una condición de búsqueda. La coincidencia
de patrones significa analizar una coincidencia entre una expresión y el patrón especificado en
la condición de búsqueda.
Sintaxis:
Columna_Tabla LIKE Patron_de_Busqueda
Si la expresión coincide con el patrón se devuelve un valor booleano TRUE. En caso contrario
se devuelve FALSO. La expresión (COLUMNA_TABLA) debe ser de tipo carácter.
Los patrones son realmente expresiones de cadena. Y van acompañados de caracteres de
comodín, que colocados en a expresión toman un significado especial.

Esp. Wilmer Jesús Manotas Ferias


Like

Carácter Comodín Descripción

% Símbolo de porcentaje, coincide con una cadena de cero o


más caracteres.
_ Subrayado, coincide con un único carácter.

[] Carácter comodín en rango, coincide con cualquier carácter


único en el rango o conjunto, tales como [m – p] o [ mnop ],
significando que cualquiera de los caracteres puede ser m, n,
o ,p.
[^ ] Carácter comodín no en rango, coincide con cualquier
carácter distinto de m, n, o, p (según ejemplo anterior [ ^
mnop ].

Esp. Wilmer Jesús Manotas Ferias


Like

Ejemplo : Encontrar todos los apellidos (apeCliente) en la tabla clientes queterminen con la letra <<S>>. Use
el carácter comodín %.
SELECT apeCliente AS apellido FROM clientes WHERE apeCliente LIKE '%s'

Esp. Wilmer Jesús Manotas Ferias


IS NULL
Realiza un testeo para valores que son Nulos. Retorna True si la columna es NULL sino
retorna FALSE.
Sintaxis:
WHERE Columna IS NULL
Ejemplo : Usar base de datos db_facturas. Liste todos los campos de la tabla ciudades
cuya columna idDepartamento sea NULL.

SELECT * FROM ciudades WHERE idDepartamento IS NULL

Esp. Wilmer Jesús Manotas Ferias


Union

Este operador mezcla los resultados de dos o más consultas en un solo conjunto de resultados que
contiene todas las filas que pertenecen a las consultas de la unión.

Como restricción las columnas que se obtienen por la UNION en ambas consultas deben ser del mismo
tipo de datos.

Sintaxis:

SELECT * FROM TABLAS UNION [ ALL ] SELECT * FROM TABLAS

NOTA: Al usar el operador opcional ALL se listan como resultados todas las filas de ambas consultas. Sino
no se utiliza ALL se lista la UNION es decir no se listan datos duplicados.

Esp. Wilmer Jesús Manotas Ferias


Ejemplo: Muestre los Productos (referencia del Producto, descripcion del producto y valor
producto) que tengan un precio unitario igual al minimo. Y unirlo con la misma consulta con
el precio unitario igual maximo.

SELECT refProducto AS ID,desProducto AS Producto, valProducto AS Precio FROM productos


WHERE valProducto = (SELECT MIN(valProducto) FROM Products)

UNION

SELECT refProducto AS ID,desProducto AS Producto, valProducto AS Precio FROM productos


WHERE valProducto = (SELECT max(valProducto) FROM Products)

Esp. Wilmer Jesús Manotas Ferias


Estas funciones generan valores de resumen en los conjuntos de resultados de las
consultas. Una función de agregado (con la excepción de COUNT(*)) procesa todos
los valores seleccionados en una única columna para generar un único resultado.

Función de agregado Resultado

SUM([ALL | DISTINCT] expression) Total de los valores de la expresión numérica.

AVG([ALL | DISTINCT] expression) Promedio de los valores de la expresión numérica.

COUNT([ALL | DISTINCT] expression) Número de valores en la expresión.


COUNT(*) Número de filas seleccionadas.
MAX(expression) Valor mayor de la expresión.
MIN(expression) Valor menor de la expresión.

Esp. Wilmer Jesús Manotas Ferias


SUM, AVG, COUNT, MAX y MIN omiten los valores NULL; COUNT(*) no lo
hace.

La palabra clave opcional DISTINCT se puede usar con SUM, AVG y COUNT
para eliminar los valores duplicados antes de que se establezca la función de
agregado.

SUM y AVG se pueden usar sólo con columnas numéricas, como, por ejemplo,
las de los tipos de datos int, smallint, tinyint, decimal, numeric, float, real,
money y smallmoney. MIN y MAX no se pueden usar con tipos de datos bit.

El resto de las funciones de agregado que no sean COUNT(*) no se puede usar


con los tipos de datos text e image.
Esp. Wilmer Jesús Manotas Ferias
SUM

Retorna: Total de los valores de la expresión numérica.

Sintaxis:

SUM (Columna para la suma)

Ejemplo: Calcula la suma de todos los prioductos de la tabla productos.

SELECT SUM(valProducto) FROM productos

Esp. Wilmer Jesús Manotas Ferias


AVG

Retorna: Promedio de los valores de la expresión numérica.

Sintaxis:

AVG (Columna a Promediar)

Ejemplo: Averiguar el precio promedio de todos los productos si se duplicaran


los precios (tabla productos).

SELECT avg (valProducto * 2) FROM productos

Esp. Wilmer Jesús Manotas Ferias


MAX

Retorna: Valor mayor de la expresión.

Sintaxis:

MAX (Columna a obtener el Máximo valor)

Ejemplo: Muestre el mayor valor de las las ventas del año (ytd_sales) de todos
los libros de la tabla titles.

SELECT MAX(ytd_sales) FROM titles

Esp. Wilmer Jesús Manotas Ferias


MIN

Retorna: Valor menor de la expresión.

Sintaxis:

MIN (Columna a obtener el Mínimo valor)

Ejemplo: Muestre el mínimo valor de las ventas del año (ytd_sales) de todos
los libros de la tabla titles.

SELECT MIN (ytd_sales) FROM titles

Esp. Wilmer Jesús Manotas Ferias


COUNT

Retorna: Número de valores en la expresión. En el caso de utilizar (*) retorna el


numero de filas.

Sintaxis:

COUNT (expresión) o COUNT (*)

Ejemplo: Cuente las filas de la tabla titles.

SELECT COUNT(*) FROM titles

Esp. Wilmer Jesús Manotas Ferias


COUNT

Ejemplo: Cuente los datos de la tabla titles, cuyo tipo (TYPE) sea business .

SELECT COUNT(TYPE) FROM titles WHERE TYPE = ‘business’

Esp. Wilmer Jesús Manotas Ferias


Una sub consulta es una sentencia SELECT que es incrustada en una cláusula de otra sentencia
SQL, llamada sentencia padre. La sub consulta (consulta interna) obtiene un valor que es usado
por la sentencia padre.
Usar una sub consulta anidada es equivalente a ejecutar dos consultas secuenciales y utilizar el
resultado de la consulta interna como valor de búsqueda en la consulta externa (consulta
principal).
Las sub consultas pueden ser usadas para los siguientes propósitos:

 Proveer valores para condiciones en cláusulas WHERE, HAVING


 Definir el conjunto de filas a ser insertadas en una tabla de una
sentencia INSERT o CREATE TABLE.
 Definir uno o más valores para ser asignados a filas existentes en una
sentencia UPDATE

Esp. Wilmer Jesús Manotas Ferias


En algunas situaciones es necesario utilizar SELECT anidados para resolver
cierta necesidades de consultas que no pueden ser resueltas utilizando un
único SELECT.

Recordar que al realizar un SELECT se genera una tabla temporal de la lista de


selección, esto es lo que realmente hace posible que se puedan generar
consultas sobre consultas o condiciones sobre listas de selección.

Sintaxis:

SELECT Lista_de_selección FROM Tablas o Otros Select.


WHERE condiciones [JOIN | SUBCONSULTAS | etc. ]

Esp. Wilmer Jesús Manotas Ferias


Ejemplo: Usando base de datos db_facturas. Muestre los Productos (referencia
del Producto, descripcion del producto y valor producto) que tengan un precio
unitario igual al minimo.

SELECT refProducto AS ID,desProducto AS Producto, valProducto AS Precio


FROM productos
WHERE valProducto = (SELECT MIN(valProducto)
FROM Products)

Esp. Wilmer Jesús Manotas Ferias


Una tabla combinada es el resultado de una operación de combinación realizada
sobre dos o más tablas. Se pueden realizar varios tipos de combinaciones de tablas:
combinaciones internas (inner), externa completa (full outer), externa por la
izquierda (left outer), externa por la derecha (rigth outer) y cruzada (cross).

Esp. Wilmer Jesús Manotas Ferias


Combinación Interna (Inner Join): Es el tipo de combinación predeterminado;
especifica que solamente se han de incluir en el resultado filas de la tabla que
satisfagan la condición ON.

Para especificar una combinación hay que utilizar la palabra clave JOIN. Se
utiliza la palabra clave ON para identificar la condición de búsqueda sobre la
cual se basa la combinación.

Sintaxis:

SELECT columnas_de_las_tablas FROM tabla1 JOIN tabla2 ON condiciones

Esp. Wilmer Jesús Manotas Ferias


Ejemplo: De la base de datos db_facturas. Combine las tablas clientes y facturas para
mostrar que cliente (idCliente) tiene una factura asociada.

SELECT * FROM clientes JOIN facturas ON clientes.`idCliente` = facturas.`idCliente`


SELECT * FROM clientes C JOIN facturas F USING (idCliente)

Esp. Wilmer Jesús Manotas Ferias


Combinación externas Completas (full Outer Join)

Especifica que se debería incluir en el resultado las filas no coincidentes (filas


que no cumplen con la condición ON) así como las filas que coincidan (filas que
cumplen la condición ON). En el campo donde no es coincidente la condición
se coloca NULL.

Ejemplo: Utilice el mismo ejemplo anterior solo utilice en el from la instrucción


FULL OUTER JOIN.

Esp. Wilmer Jesús Manotas Ferias


Combinación externa por la izquierda (Left Outer Join)

Devuelve las filas coincidentes más todas las filas de la tabla que se
especifican a la izquierda de la palabra clave JOIN.

Ejemplo: Utilice el mismo ejemplo anterior solo utilice en el from la instrucción LEFT OUTER JOIN.

SELECT * FROM clientes LEFT OUTER JOIN facturas USING(idCliente)

Esp. Wilmer Jesús Manotas Ferias


Combinación externa por la derecha (Right Outer Join)

Contrario a Left Outer Join devuelve las filas coincidentes más todas las filas de
la tabla que se especifican a la derecha de la palabra clave JOIN.

Ejemplo: Utilice el mismo ejemplo anterior solo utilice en el from la instrucción RIGHT OUTER JOIN.

SELECT * FROM clientes RIGHT OUTER JOIN facturas USING(idCliente)

Esp. Wilmer Jesús Manotas Ferias


Esp. Wilmer Jesús Manotas Ferias
Esp. Wilmer Jesús Manotas Ferias

Das könnte Ihnen auch gefallen