Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL AVANZADO
SQL Avanzado 1
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
Ejemplo
La siguiente sentencia SQL selecciona los dos primeros registros de la tabla "clientes":
Ejemplo PORCIENTO
Sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
SQL Avanzado 2
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Ejemplo
La siguiente sentencia SQL selecciona todos los clientes una ciudad empezando con la
letra "s":
Ejemplo
La siguiente sentencia SQL selecciona todos los clientes con un país que contiene el
patrón "tierra":
Uso de la palabra clave NOT: Permite seleccionar los registros que no coinciden con el
patrón.
Ejemplo
La siguiente sentencia SQL selecciona todos los clientes con un país que no contiene el
patrón de "tierra":
SQL Avanzado 3
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
SQL COMODINES
Un carácter comodín se puede utilizar para sustituir a cualquier otro carácter (s) en
una cadena.
Comodín Descripción
La siguiente sentencia SQL selecciona todos los clientes de una ciudad que comienza
con "ber":
La siguiente sentencia SQL selecciona todos los clientes una ciudad que contiene el
patrón "es":
La siguiente sentencia SQL selecciona todos los clientes de una ciudad a partir de
cualquier carácter, seguido de "erlín":
SQL Avanzado 4
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
La siguiente sentencia SQL selecciona todos los clientes de una ciudad que comienza
con "L", seguida de cualquier carácter, seguido de "n", seguido de cualquier carácter,
seguido de "en":
La siguiente sentencia SQL selecciona todos los clientes de una ciudad que comienza
con "b", "s" o "p":
La siguiente sentencia SQL selecciona todos los clientes de una ciudad que comienza
con "a", "b" o "c":
La siguiente sentencia SQL selecciona todos los clientes de una ciudad que no
comienza con "b", "s" o "p":
SQL Operador IN
El operador IN permite especificar varios valores en una cláusula WHERE.
Sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
SQL Avanzado 5
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Ejemplo
La siguiente sentencia SQL selecciona todos los clientes de una ciudad de "Paris" o
"London":
Sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Ejemplo
La siguiente sentencia SQL selecciona todos los productos con un precio de entre 10 y
20:
La siguiente sentencia SQL selecciona todos los pedidos con un OrderDate ENTRE '04-
Julio-1996 'y '09-julio-1996':
SQL Avanzado 6
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
La siguiente sentencia SQL selecciona todos los productos con un precio de entre 10 y
20, pero los productos con un CategoryID de 1,2 o 3 no se deben mostrar:
En algunas bases de datos, entre los campos selectos que se encuentran entre
los valores y la exclusión de la prueba.
En otras bases de datos, entre los campos selectos que se encuentran entre
los valores y la inclusión de la prueba.
SQL Avanzado 7
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
SQL Aliases
Los Alias de SQL se utilizan para dar a una tabla de Base de Datos o a una columna de
una tabla un nombre temporal. Básicamente los Alias se crean para que los nombres
de columna sean más legibles.
Sintaxis de Columnas
Sintaxis de Tablas
SELECT column_name(s)
FROM table_name AS alias_name;
La siguiente sentencia SQL especifica dos alias, uno para la columna CustomerName y
otro para la columna ContactName. Consejo: Se requieren comillas dobles o corchetes
si el nombre de la columna contiene espacios:
La siguiente sentencia SQL selecciona todos los pedidos de los clientes "Alfreds
Futterkiste". Utilizamos los "clientes" y las tablas "Pedidos", y les damos los alias de
tabla de la "c" y "o" respectivamente (Aquí hemos utilizado alias para que el SQL más
corto):
SQL Avanzado 8
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
SQL JOIN
Una cláusula SQL JOIN se utiliza para combinar filas a partir de dos o más tablas,
basándose en un campo común entre ellos.
El tipo más común de unión es: SQL combinación interna - INNER JOIN (join sencilla).
Un SQL INNER JOIN devuelve todas las filas de varias tablas cuando se cumpla la
condición de unión.
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20
SQL Avanzado 9
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Entonces, si nos encontramos con la siguiente sentencia SQL (que contiene un INNER
JOIN):
INNER JOIN: Devuelve todas las filas cuando hay por lo menos un partido en
ambas tablas.
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas
coincidentes de la tabla de la derecha.
RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas
coincidentes de la tabla izquierda.
FULL JOIN: Devuelve todas las filas cuando hay un partido en una de las tablas.
SQL Avanzado 10
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
3 Antonio Moreno Antonio Moreno Mataderos 2312 México D.F. 05023 México
Taquería
SQL Avanzado 11
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2
Ejemplo
Nota: La palabra clave INNER JOIN selecciona todas las filas de ambas tablas, siempre
y cuando hay una coincidencia entre las columnas. Si hay filas en la tabla "clientes"
que no tienen coincidencias en "Pedidos", no se mostrarán estos clientes.
Sintaxis
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
SQL Avanzado 12
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
PS! En algunas bases de datos DEJADA REGISTRARSE EN que se llama DEJADA JOIN
EXTERIOR.
3 Antonio Moreno Antonio Moreno Mataderos 2312 México D.F. 05023 México
Taquería
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2
Ejemplo
La siguiente declaración SQL regresará todos los clientes, y con cualesquiera órdenes
de que pudieran tener:
SQL Avanzado 13
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Nota: La palabra clave JOIN LEFT devuelve todas las filas de la tabla izquierda
(clientes), incluso si no hay coincidencias en la tabla de la derecha (Órdenes).
Sintaxis
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
PS! En algunas bases de datos RIGHT JOIN se llama RIGHT OUTER JOIN.
SQL Avanzado 14
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
3 Antonio Moreno Antonio Moreno Mataderos 2312 México D.F. 05023 México
Taquería
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2
Ejemplo
La siguiente sentencia SQL devolverá todos los pedidos, así como cualquier cliente que
podrían haberlos colocados:
Nota: La palabra clave RIGHT JOIN devuelve todas las filas de la tabla de la derecha
(órdenes), incluso si no hay coincidencias en la tabla de la izquierda (Clientes).
SQL Avanzado 15
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
3 Antonio Moreno Antonio Moreno Mataderos 2312 México D.F. 05023 México
Taquería
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2
SQL Avanzado 16
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Ejemplo
La siguiente sentencia SQL selecciona todos los clientes, y todas las órdenes:
CustomerName OrderID
Alfreds Futterkiste
10382
10351
Nota: La palabra clave FULL OUTER JOIN devuelve todas las filas de la tabla izquierda
(clientes), y todas las filas de la tabla derecha (Órdenes). Si hay filas en "Clientes" que
no tienen coincidencias en "Pedidos", o si hay filas de "Pedidos" que no tienen
coincidencias en "Clientes", las filas se mostrarán también.
Tenga en cuenta que cada sentencia SELECT dentro de la Unión debe tener el mismo
número de columnas. Las columnas deben tener tipos de datos similares. Además, las
columnas de cada instrucción SELECT deben estar en el mismo orden.
SQL Avanzado 17
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
PS: Los nombres de columna del conjunto de resultados de una UNION son siempre
iguales a los nombres de columna en la primera instrucción SELECT de la UNION.
3 Antonio Moreno Antonio Moreno Mataderos 2312 México D.F. 05023 México
Taquería
2 New Orleans Cajun D… Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Hom… Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA
SQL Avanzado 18
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Ejemplo
La siguiente sentencia SQL selecciona todas las diferentes ciudades de los "clientes" y
los "Proveedores":
Nota: Este comando no se puede utilizar para enumerar todas las ciudades de las dos
tablas. En el ejemplo anterior varios clientes y proveedores comparten la misma
ciudad, pero cada ciudad sólo se mostrará una vez. El comando UNION sólo selecciona
valores distintos.
La siguiente sentencia SQL selecciona todas las ciudades de los "clientes" y los
"Proveedores":
La instrucción SELECT INTO es la más utilizada para crear copias de seguridad de las
tablas.
SQL Avanzado 19
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
Ejemplo
Hacer una copia de seguridad - Ahora queremos hacer una copia exacta de los
datos en nuestra tabla "Personas".
SELECT *
INTO Persons_Backup
FROM Persons
También podemos utilizar la cláusula IN para copiar la tabla en otra base de datos:
SELECT *
INTO Persons_Backup IN 'Backup.mdb'
FROM Persons
SELECT LastName,FirstName
INTO Persons_Backup
FROM Persons
SQL Avanzado 20
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
SELECT LastName,Firstname
INTO Persons_Backup
FROM Persons
WHERE City='Sandnes'
El ejemplo siguiente crea una tabla "Persons_Order_Backup" contiene los datos de las
dos tablas "Personas" y "Pedidos":
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
SQL Avanzado 21
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
SQL FUNCIONES
SQL tiene muchas funciones integradas para realizar cálculos sobre los datos.
Las Funciones de SQL devuelven un solo valor, calculado a partir de los valores de una
columna.
Función AVG ()
El AVG () devuelve el valor medio de una columna numérica.
Sintaxis
SQL Avanzado 22
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
2 Chang 1 1 24 - 12 oz bottles 19
Ejemplo
Función COUNT ()
El COUNT () devuelve el número de filas que coincida con los criterios especificados.
Sintaxis
SQL Avanzado 23
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
10265 7 2 1996-07-25 1
10266 87 3 1996-07-26 3
10267 25 4 1996-07-29 1
Ejemplo
SQL Avanzado 24
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
NumberOfCustomers
89
Función MAX ()
La función MAX () devuelve el mayor valor de la columna seleccionada.
Sintaxis
Ejemplo
Función MIN ()
El MIN () devuelve el valor más pequeño de la columna seleccionada.
Sintaxis
Ejemplo
SQL Avanzado 25
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Función SUM ()
El SUM () devuelve la suma total de una columna numérica.
Sintaxis
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
Ejemplo
SQL Avanzado 26
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Sintaxis
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2
SQL Avanzado 27
Ing. Rommell Duval Vargas Laitano MGCT
Universidad José Cecilio del Valle
IIT3014 - Base de Datos Relacional
Ejemplo
También podemos utilizar la instrucción GROUP BY en más de una columna, de esta manera:
SQL Avanzado 28
Ing. Rommell Duval Vargas Laitano MGCT