Agenda
SQL: Conceptos básicos
Repaso de sentencias
Joins
Ejercicios
Scripting
Stored Procedure
SQL - Structured Query Language
SQL
¿Qué es SQL?
Repaso de sentencias
INSERT
Insert Query
Permite insertar uno a varios registros en una tabla:
DELETE
Delete Query
Permite eliminar uno a varios registros en una tabla:
SELECT
Select Query
Permite obtener un conjunto de datos a partir de una o mas tablas, filtrando, agrupando y
ordenando los resultados antes de retornarlos.
SELECT
Condiciones/Decisiones en WHERE
Dentro de la condición de búsqueda se pueden utilizar diferentes conectores y comparadores.
IN: devuelve los registros cuyos valores de columnas coinciden con un conjunto de valores a comparar.
NOT IN: devuelve los registros cuyos valores de columnas NO coinciden con un conjunto de valores a
comparar.
SELECT
Condiciones/Decisiones en Where
Dentro de la condición de búsqueda se pueden utilizar diferentes conectores y comparadores.
LIKE: devuelve los registros cuyos valores de columnas siguen un determinado patrón.
‘%u’: ciudades que terminen en ‘u’
‘u%’: ciudades que empiezan en ‘u’.
‘%u%’: ciudades que contienen ‘u’ en cualquier posición.
‘_u’: ciudades que terminen en ‘u’ en la segunda posición.
‘u__%’: ciudades que empiecen en ‘u’ y tengan al menos 3 caracteres.
‘b%s’: ciudades que empiecen en ‘b’ y terminen en ‘s’.
SELECT
Condiciones/Decisiones en Where
Dentro de la condición de búsqueda se pueden utilizar diferentes conectores y comparadores.
IS NULL: devuelve los registros cuyos valores de columnas están vacíos(NULL).
IS NOT NULL: devuelve los registros cuyos valores de columnas NO están vacíos(NULL).
SELECT
Condiciones/Decisiones en Where
Dentro de la condición de búsqueda se pueden utilizar diferentes conectores y comparadores.
AND: Se tiene que cumplir las condiciones unidas para ser verdadero.
OR: Se tiene que cumplir al menos una condición para ser verdadera
Nueva sentencia: UPDATE
Update Query
Permite modificar uno a varios registros en una tabla:
FUNCTIONS
Funciones
Función Descripción
AVG Returns the average value of a numeric column.
SUM Returns the total sum of a numeric column.
COUNT Returns the number of rows that matches a
specified criteria.
DISTINCT Is used to return only distinct (different) values.
MIN Returns the smallest value of the selected column
MAX Returns the largest value of the selected column
Joins
Joins
FROM CLAUSE - JOINS
Permiten vincular diferentes tablas, especificando cómo será la unión de datos.
El JOIN que usemos condicionará el resultado de acuerdo a su comportamiento.
Returns all rows Return all rows Return all rows Return all rows
when there is at from the left table, from the right when there is a
least one match in and the matched table, and the match in ONE of
BOTH tables rows from the right matched rows the tables
table from the left table
Joins
INNER JOIN
Retorna todos los registros siempre y cuando exista una coincidencia en
ambas tablas.
Username RoleDescription
JPEREZ Admin
JFERNANDEZ Admin
MROSA Internal
CLOPEZ External
Joins
LEFT JOIN
Retorna todos los registros de la tabla de la izquierda, mas los valores de
la tabla de la derecha, si es que existe alguna coincidencia, o en caso de
que no exista.
Username RoleDescription
JPEREZ Admin
JFERNANDEZ Admin
MROSA Internal
CLOPEZ External
JMARIA NULL
Joins
RIGHT JOIN
Retorna todos los registros de la tabla de la derecha, mas los valores de la
tabla de la izquierda, si es que existe alguna coincidencia, o NULL en caso
de que no exista.
Username RoleDescription
JPEREZ Admin
JFERNANDEZ Admin
MROSA Internal
CLOPEZ External
NULL Denied
DML
SELECT
FULL OUTER JOIN
Combina los resultados de LEFT JOIN y RIGHT JOIN
Username RoleDescription
JPEREZ Admin
JFERNANDEZ Admin
MROSA Internal
CLOPEZ External
JMARIA NULL
JPEREZ Admin
JFERNANDEZ Admin
MROSA Internal
CLOPEZ External
NULL Denied
Group By
GROUP BY
Permite agrupar los resultados obtenidos por una o mas columnas.
Es utilizado en conjunto con las funciones agregadas.
Having
HAVING
Permite filtrar los resultados, tomando en cuenta los grupos creados con la clausula GROUP
BY.
Mientras que WHERE aplica sobre columnas, HAVING aplica sobre grupos de Agregación.
Order By
ORDER BY
Permite ordenar los resultados obtenidos por una o mas columnas.
Se puede ordenar de manera Ascendente o Descendente.
Selects Anidados
Selects Anidados
De ser necesario, se pueden anidar consultas.
Hay que tener mucho cuidado con lo que devuelve
la segunda selección!
Ejercicios
Ejercicios
Ejercicios
1. Mostrar todos los clientes que el NombreContacto comienza con “D”.
2. Mostrar todos los clientes que se llamen Maria.
3. Mostrar todos los empleados de genero Femenino con sueldo básico.
¿Qué cantidad hay? ¿Y de Masculino?
4. Mostrar la cantidad de clientes que hay por Ciudad. Ordenarlos de manera
ascendente.
5. Mostrar las Ciudades que tienen mas de 5 clientes.
6. Mostrar una lista con los primeros 3 clientes que hayan hecho pedidos y
que no se hayan facturado, ordenados de manera descendente.
7. Mostrar una lista ordenada de manera ascendente con los primeros 5
clientes que vivan en París o Madrid que no hayan realizado ninguna
compra.
Ejercicios
8. Mostrar la cantidad de pedidos por empleado.
9. Mostrar el monto vendido por empleado
10. Mostrar las primeros 3 empleados que obtuvieron mas ventas.
11. Mostrar una lista ordenada de manera ascendente de las ventas
realizadas por cada empleado.
12. De cada pedido queremos saber su numero de pedido y cliente.
13. Obtener una lista ordenada de Clientes ordenada por País.
14. Mostrar el nombre de todos los proveedores que proveen productos.
15. Mostrar los empleados cuyo cargo sea 'Representante de ventas' y
'Gerente de ventas' sin usar OR, mostrar el nombre, apellido y NOMBRE
del cargo.
16. Listar los clientes que no tengan Fax registrado.
17. Listar los empleados cuyo sueldo básico supere el Promedio. Listarlos
Mostrando: Nombre, Apellido, NOMBRE de Cargo, NOMBRE de género y
sueldo básico
Scripting
Scripting
Es un programa, o sea un conjunto de comandos, que se le
da a un motor SQL para decirle lo que debe hacer y en que
orden debe hacerlo
Stored Procedures
Los stored procedures (procedimientos almacenados) son los equivalentes a las
rutinas, procedimientos, o funciones disponibles en casi todos los lenguajes de
programación (Visual FoxPro, Visual Basic, C, Delphi, Java, etc.), allí se utilizan
los datos que se encuentran en las tablas, se realizan operaciones aritméticas o
lógicas sobre esos datos y se devuelve el resultado de ese procesamiento. En un
SP podemos almacenar cualquier rutina que deseemos.
Preguntas – Mas ejercicios?