0% encontró este documento útil (0 votos)
105 vistas25 páginas

1 - Introduccion SQL

Este documento introduce el lenguaje de consultas estructurado (SQL) y describe algunos de sus comandos y funciones básicas. Explica que SQL se utiliza para acceder y manipular datos almacenados en sistemas de bases de datos relacionales. Proporciona ejemplos de comandos SQL como SELECT, FROM y WHERE para recuperar datos de tablas, y describe brevemente otros comandos como UPDATE, DELETE e INSERT. También menciona algunos de los sistemas de bases de datos más populares como SQL Server, MySQL, PostgreSQL y Oracle.

Cargado por

Kevin Paul
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
105 vistas25 páginas

1 - Introduccion SQL

Este documento introduce el lenguaje de consultas estructurado (SQL) y describe algunos de sus comandos y funciones básicas. Explica que SQL se utiliza para acceder y manipular datos almacenados en sistemas de bases de datos relacionales. Proporciona ejemplos de comandos SQL como SELECT, FROM y WHERE para recuperar datos de tablas, y describe brevemente otros comandos como UPDATE, DELETE e INSERT. También menciona algunos de los sistemas de bases de datos más populares como SQL Server, MySQL, PostgreSQL y Oracle.

Cargado por

Kevin Paul
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 25

6to Año - Electrónica Introducción SQL Ing.

Juan Manuel Soto

Introducción SQL
1. Introducción .................................................................................................................................... 2
2. Sintaxis ............................................................................................................................................ 3
3. SELECT ............................................................................................................................................. 4
4. DISTINCT .......................................................................................................................................... 5
5. WHERE ............................................................................................................................................. 6
6. AND & OR ........................................................................................................................................ 7
7. ORDER BY ........................................................................................................................................ 8
8. SELECT TOP ...................................................................................................................................... 9
9. LIKE ................................................................................................................................................ 10
10. IN ................................................................................................................................................. 11
11. BETWEEN ..................................................................................................................................... 12
12. ALIAS............................................................................................................................................ 13
13. JOIN ............................................................................................................................................. 15
14. INNER JOIN .................................................................................................................................. 17
15. LEFT JOIN ..................................................................................................................................... 18
16. RIGHT JOIN .................................................................................................................................. 20
17. FULL JOIN..................................................................................................................................... 21
18. UNION ......................................................................................................................................... 23

Página 1 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

1. Introducción
En un principio los programas accedían físicamente al disco para escribir los datos, algo que
implicaba que el programa tuviese que implementar toda la lógica de una base de datos para
permitir agregar, modificar o eliminar datos.

Con el tiempo se han desarrollado lo que se conoce como sistemas de bases de datos
relacionales, que permiten mantener entidades (Artículo, Ficha médica o Factura), sus
respectivas relaciones (Una ficha médica corresponde a un solo paciente) y sus atributos (Una
ficha médica contiene fecha de entrada, fecha de salida, síntomas… etc).

Estos sistemas poseen además una interfaz para acceder a ellos llamada SQL o Structured
Query Language (lenguaje de consultas estructurado) que permiten hacer peticiones de una
base de datos usando una notación muy similar a lenguaje natural, como muestra el siguiente
ejemplo:

1 select nombre,apellido from paciente where id_paciente = 1;

Este código tendría como objetivo hacer una petición a la base de datos pacientes, buscar el
identificador 1 y devolver la fila (o filas) resultante de la petición.

Estos sistemas permiten mantener cierta integridad de los datos, y usando ciertas reglas se
pueden definir tablas y restricciones como muestra el siguiente ejemplo:

1 create database paciente(


2 id_paciente int,
3 nombre varchar(80),
4 apellido varchar(120)
);
5

Entre los sistemas gestores de bases de datos más utilizados se encuentran:

• SQL Server de Microsoft: Es la solución por excelencia del stack Microsoft. Existen al
menos una docena de ediciones diferentes dirigidas a un público específico, desde la
versión Express, gratuita y con limitaciones (1 GB de consumo de memoria y 4 GB de
capacidad) hasta la Datacenter, que permite el uso de 256 núcleos (poca cosa…) y
dirigida a un mercado empresarial.

Página 2 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

• MySQL: Anteriormente propiedad de Sun Microsystems y con doble licencia (libre para
proyectos compatibles con la licencia GNU GPL y privativa para el resto de los proyectos,
que implica la compra de una licencia), actualmente propiedad de Oracle, es la base de
datos más empleada por la comunidad OpenSource (+6.000.000 de instalaciones).

• PosgreSQL: Empleada en ámbito docente aunque no por ello menos potente que la
anterior, libre (licencia BSD) y mantenida por la comunidad de desarrolladores.

• Oracle: Considerado por muchos uno de los sistemas de bases de datos más complejos,
usado fundamentalmente en el mercado de servidores empresariales donde su
hegemonía ha sido casi total hasta hace poco, por la competencia del resto de sistemas
antes mencionados. Posee también una versión Express (gratuita).

2. Sintaxis
Tablas
Una Base de Datos generalmente contiene una o más tablas. Cada tabla es identificada por un
nombre (e.g. "Cliente" o "Pedido"). Las tablas contienen registros (filas) con datos.

A continuación se muestra una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. 57 Berlin 12209 Alemania


Futterkiste

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

4 Around the Horn Thomas Hardy 120 Hanover Londres 1651 UK


Sq.

5 Berglunds Christina Berguvsvägen Luleå S-958 22 Suecia


snabbköp Berglund 8

Página 3 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

La tabla anterior contiene cinco registros (uno para cada cliente) y siete columnas (ClienteID,
NombreCliente, NombreContacto, Dirección, Ciudad, CodigoPostal y País).

Sentencias SQL
La mayor parte de las acciones que debe llevar a cabo en una base de datos se hacen con
sentencias SQL.
La siguiente sentencia SQL selecciona todos los registros de la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente;

• SQL no distingue entre mayúsculas y minúsculas: select es igual que SELECT

Punto y coma después de sentencias SQL?


Algunos sistemas de base de datos requieren un punto y coma al final de cada sentencia SQL.

Punto y coma es la forma estándar para separar cada instrucción SQL en sistemas de bases de
datos que permiten que más de una sentencia de SQL que se debe ejecutar en la misma llamada
al servidor.

Comandos SQL

• SELECT - extrae datos de una BD


• UPDATE - actualiza datos de una BD
• DELETE - elimina datos de una BD
• INSERT INTO - inserta nuevos datos en una BD
• CREATE DATABASE - crea una nueva BD
• ALTER DATABASE - modifica una BD
• CREATE TABLE - crea una nueva tabla
• ALTER TABLE - modifica una tabla
• DROP TABLE - elimina una tabla
• CREATE INDEX - crea un índice (clave de búsqueda)
• DROP INDEX - elimina un índice

3. SELECT
La sentencia SELECT se utiliza para seleccionar los datos de una base de datos.

El resultado se almacena en una tabla de resultados, se llama el conjunto de resultados (result-


set).

Sintaxis SQL SELECT


SELECT nombre_columna,nombre_columna
FROM nombre_tabla;

SELECT * FROM nombre_tabla;

Página 4 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

A continuación se muestra una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. 57 Berlin 12209 Alemania


Futterkiste

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

4 Around the Horn Thomas Hardy 120 Hanover London 1651 Argentina
Sq.

5 Berglunds Christina Berguvsvägen Luleå S-958 22 Suecia


snabbköp Berglund 8

Ejemplo SELECT
La siguiente sentencia SQL selecciona las columnas "NombreCliente" y las columnas "Ciudad" de
la tabla "Cliente":

Ejemplo
SELECT NombreCliente,Ciudad FROM Cliente;

Ejemplo SELECT *
La siguiente sentencia SQL selecciona todas las columnas de la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente;

4. DISTINCT
La instrucción SELECT DISTINCT se utiliza para devolver (diferentes) sólo valores distintos.

En una tabla, una columna puede contener muchos valores duplicados; y a veces sólo desea una
lista de los diferentes valores (distintos).

La palabra clave DISTINCT se puede utilizar para devolver (diferentes) sólo valores distintos.

Sintaxis SQL SELECT DISTINCT


SELECT DISTINCT nombre_columna,nombre_columna
FROM nombre_tabla;

Página 5 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Ejemplo SELECT DISTINCT


La siguiente sentencia SQL selecciona sólo los valores distintos de la columna "Ciudad" de la
tabla "Cliente":

Ejemplo
SELECT DISTINCT Ciudad FROM Cliente;

5. WHERE
La cláusula WHERE se utiliza para filtrar registros.

La cláusula WHERE se utiliza para extraer sólo aquellos registros que cumplen un criterio
especificado.

Sintaxis SQL WHERE


SELECT nombre_columna,nombre_columna
FROM nombre_tabla
WHERE nombre_columna operador valor;

Ejemplo WHERE Clause


La siguiente sentencia SQL selecciona todos los clientes del país "México", de la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente
WHERE Pais='Mexico';

Campos de Texto vs Campos Numéricos


SQL requiere comillas simples alrededor de valores de texto (la mayoría de los sistemas de
bases de datos también permitirán comillas dobles).

Sin embargo, los campos numéricos no deben ir entre comillas:

Ejemplo
SELECT * FROM Cliente
WHERE ClienteID=1;

Página 6 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Operadores en la cláusula WHERE


Los siguientes operadores se pueden utilizar en la cláusula WHERE:

Operador Descripción

= Igual

<> Distinto. Nota: En algunas versiones de SQL este operador se puede escribir
como !=

> Mayor que

< Menor que

>= Mayor o igual

<= Menor o igual

BETWEEN Entre un rango inclusivo

LIKE Búsqueda de un patrón

IN Para especificar varios valores posibles para una columna

6. AND & OR
Los operadores AND & OR se utilizan para filtrar registros en función de más de una condición.

El operador Y muestra un registro si tanto la primera condición y la segunda condición son


verdaderas.

El operador O muestra un registro, si bien la primera condición O la segunda condición es


verdadera.

Ejemplo Operador AND


La siguiente sentencia SQL selecciona todos los clientes del país "Alemania" y la ciudad "Berlin",
en la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente
WHERE Pais='Alemania'
AND Ciudad='Berlin';

Página 7 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Ejemplo Operador OR
La siguiente sentencia SQL selecciona todos los clientes de la ciudad "Berlin" OR "München", en
la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente
WHERE Ciudad='Berlin'
OR Ciudad='München';

Combinación AND & OR


También se pueden combinar AND y OR (uso de paréntesis para formar expresiones complejas).

La siguiente sentencia SQL selecciona todos los clientes del país "Alemania" Y la ciudad debe ser
igual a "Berlin" OR "München", en la tabla "Cliente":

Ejemplo
SELECT * FROM Cliente
WHERE Pais='Alemania'
AND (Ciudad='Berlin' OR Ciudad='München');

7. ORDER BY
La palabra clave ORDER BY se utiliza para ordenar el conjunto de resultados (result-set).

Se utiliza para ordenar el conjunto de resultados (result-set) de una o más columnas.

Ordena los registros en orden ascendente por defecto. Para ordenar los registros en orden
descendente, se puede utilizar la palabra clave DESC.

Sintaxis SQL ORDER BY


SELECT nombre_columna,nombre_columna
FROM nombre_tabla
ORDER BY nombre_columna,nombre_columna ASC|DESC;

Ejemplo ORDER BY
La siguiente sentencia SQL selecciona todos los clientes de la tabla "Cliente", ordenados por la
columna "País":

Ejemplo
SELECT * FROM Cliente
ORDER BY Pais;

Página 8 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Ejemplo ORDER BY DESC


La siguiente sentencia SQL selecciona todos los clientes de la tabla "Cliente", ordenados de
forma DESCENDIENTE por la columna "País":

Ejemplo
SELECT * FROM Cliente
ORDER BY Pais DESC;

Ejemplo ORDER BY Varias Columnas


La siguiente sentencia SQL selecciona todos los clientes de la tabla "Cliente", ordenados por la
columna "País" y "NombreCliente":

Ejemplo
SELECT * FROM Cliente
ORDER BY Pais,NombreCliente;

8. SELECT TOP
La cláusula SELECT TOP se utiliza para especificar el número de registros para volver.

Puede ser muy útil en tablas grandes con miles de registros. La devolución de un gran número
de registros puede tener un impacto en el rendimiento.

Nota: No todos los sistemas de bases de datos compatibles con la cláusula SELECT TOP.

Sintaxis SQL Server / MS Access


SELECT TOP numero|porcentaje nombre_columna(s)
FROM nombre_tabla;

Equivalente SQL SELECT TOP en MySQL y Oracle

Sintaxis MySQL
SELECT nombre_columna(s)
FROM nombre_tabla
LIMIT numero;

Ejemplo
SELECT *
FROM Persona
LIMIT 5;

Página 9 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Sintaxis Oracle
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE ROWNUM <= numero;

Ejemplo
SELECT *
FROM Persona
WHERE ROWNUM <=5;

Ejemplo SQL SELECT TOP


La siguiente sentencia SQL selecciona los dos primeros registros de la tabla "Cliente":

Ejemplo
SELECT TOP 2 * FROM Cliente;

Ejemplo SQL SELECT TOP PORCENTAJE


La siguiente sentencia SQL selecciona el primer 50% de los registros de la tabla "Cliente":

Ejemplo
SELECT TOP 50 PERCENT * FROM Cliente;

9. LIKE
El operador LIKE se utiliza en una cláusula WHERE para buscar un patrón específico en una
columna.

Sintaxis SQL LIKE


SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna LIKE patron;

Ejemplo Operador SQL LIKE

La siguiente sentencia SQL selecciona todos los clientes de una ciudad empezando por la letra
"s":

Ejemplo
SELECT * FROM Cliente
WHERE Ciudad LIKE 's%';

Página 10 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Consejo: El signo "%" se usa para definir comodines (letras faltantes), tanto antes como
después de que el patrón. Usted aprenderá más acerca de los comodines en el próximo capítulo.

La siguiente sentencia SQL selecciona todos los clientes con una ciudad que termina con la letra
"s":

Ejemplo
SELECT * FROM Cliente
WHERE Ciudad LIKE '%s';

La siguiente sentencia SQL selecciona todos los clientes con un país que contiene el patrón
"pais":

Ejemplo
SELECT * FROM Cliente
WHERE Pais LIKE '%pais%';

El uso de la palabra clave NOT permite seleccionar los registros que no coinciden con el patrón.

La siguiente sentencia SQL selecciona todos los clientes con un país que no contiene el patrón
"pais":

Ejemplo
SELECT * FROM Cliente
WHERE Ciudad NOT LIKE '%pais%';

10. IN
El operador IN le permite especificar varios valores en una cláusula WHERE.

Sintaxis SQL IN
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna IN (valor1,valor2,...);

Ejemplo Operador IN
La siguiente sentencia SQL selecciona todos los clientes con una Ciudad de "Paris" o "Londres":

Ejemplo
SELECT * FROM Cliente
WHERE Ciudad IN ('Paris','Londres');

Página 11 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

11. BETWEEN
El operador BETWEEN selecciona valores dentro de un rango. Los valores pueden ser números,
texto o fechas.

Sintaxis SQL BETWEEN


SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna BETWEEN valor1 AND valor2;

ProductoID NombreProducto ProveedorID CategoriaID Unidad Precio

1 Chais 1 1 10 boxes x 20 18
bags

2 Chang 1 1 24 - 12 oz 19
bottles

3 Aniseed Syrup 1 2 12 - 550 ml 10


bottles

4 Chef Anton's Cajun 1 2 48 - 6 oz jars 22


Seasoning

5 Chef Anton's Gumbo Mix 1 2 36 boxes 21.35

Ejemplo Operador BETWEEN


La siguiente sentencia SQL selecciona todos los productos con un precio de entre 10 y 20:

Ejemplo
SELECT * FROM Producto
WHERE Precio BETWEEN 10 AND 20;

Ejemplo Operador NOT BETWEEN


Para mostrar los productos fuera del alcance del ejemplo anterior, utilice NOT BETWEEN:

Ejemplo
SELECT * FROM Producto
WHERE Precio NOT BETWEEN 10 AND 20;

Página 12 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Ejemplo Operador BETWEEN con IN


La siguiente sentencia SQL selecciona todos los productos con un precio de entre 10 y 20, pero
los productos con una CategoriaID de 1,2 o 3 no se mostrarán:

Ejemplo
SELECT * FROM Producto
WHERE (Precio BETWEEN 10 AND 20)
AND NOT CategoriaID IN (1,2,3);

Ejemplo Operador BETWEEN con un Valor tipo Texto


La siguiente sentencia SQL selecciona todos los productos con un NombreProducto comenzado
con cualquiera de las letras ENTRE 'C' y 'M':

Ejemplo
SELECT * FROM Producto
WHERE NombreProducto BETWEEN 'C' AND 'M';

Ejemplo Operador NOT BETWEEN con un Valor tipo Texto


La siguiente sentencia SQL selecciona todos los productos con un NombreProducto comenzado
con cualquiera de las letras NO ENTRE 'C' y 'M':

Ejemplo
SELECT * FROM Producto
WHERE NombreProducto NOT BETWEEN 'C' AND 'M';

12. ALIAS
Los alias SQL se utilizan para cambiar el nombre temporal de una tabla o un encabezado de
columna.

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 SQL Alias para Columnas


SELECT nombre_columna AS nombre_alias
FROM nombre_tabla;

Sintaxis SQL Alias para Tablas


SELECT nombre_columna(s)
FROM nombre_tabla AS nombre_alias;

Página 13 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

4 Around the Horn Thomas Hardy 120 Hanover Londres 1651 UK


Sq.

And a selection from the "Orders" table:

PedidoID ClienteID EmpleadoID FechaPedido TransportistaID

10354 58 8 2014-11-14 3

10355 4 6 2014-11-15 1

10356 86 6 2014-11-18 2

Ejemplo Alias para Columnas de Tablas


La siguiente sentencia SQL especifica dos alias, uno para la columna NombreCliente y uno para
la columna NombreContacto. Consejo: Se requiere comillas dobles o corchetes si el nombre de
columna contiene espacios:

Ejemplo
SELECT NombreCliente AS Cliente, NombreContacto AS [Persona Contacto]
FROM Cliente;

En la siguiente sentencia SQL combinamos cuatro columnas (Direccion, Ciudad, CodigoPostal y


País) y creamos un alias llamado "Direccion":

Ejemplo
SELECT NombreCliente, Direccion+', '+Ciudad+', '+CodigoPostal+', '+Pais AS
Direccion
FROM Cliente;

Nota: La sentencia SQL anterior para trabajar con MySQL es la siguiente:

SELECT NombreCliente, CONCAT(Direccion,', ',Ciudad,', ',CodigoPostal,',


',Pais) AS Direccion
FROM Cliente;

Página 14 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Sintaxis Alias para Tablas


La siguiente sentencia SQL selecciona todos los pedidos de los clientes con ClienteID = 4
(Around the Horn). Utilizamos las tablas "Cliente" y "Pedido", y les damos los alias de tabla de la
"c" y "o", respectivamente (Aquí hemos utilizado alias para que el SQL sea más corto):

Ejemplo
SELECT o.PedidoID, o.FechaPedido, c.NombreCliente
FROM Cliente AS c, Pedido AS o
WHERE c.NombreCliente="Around the Horn" AND c.ClienteID=o.ClienteID;

La misma sentencia SQL sin alias:

Ejemplo
SELECT Pedido.PedidoID, Pedido.FechaPedido, Cliente.NombreCliente
FROM Cliente, Pedido
WHERE Cliente.NombreCliente="Around the Horn" AND
Cliente.ClienteID=Pedido.ClienteID;

Los Alias pueden ser útiles cuando:

• Hay más de una tabla involucrada en una consulta.

• Se utilizan funciones en la consulta.

• Los nombres de columna son grandes o no muy legibles.

• Dos o más columnas se combinan.

13. JOIN
Una cláusula SQL JOIN utiliza para combinar filas a partir de dos o más tablas, basándose en un
campo común entre ellas.

El tipo más común de unión es: SQL INNER JOIN. Un SQL INNER JOIN devuelve todas las filas
de varias tablas donde se cumpla la condición de unión.

Echemos un vistazo a una selección de la tabla "Pedido":

PedidoID ClienteID FechaPedido

10308 2 2014-09-18

10309 37 2014-09-19

10310 77 2014-09-20

Página 15 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

A continuación, echemos un vistazo a una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Pais

1 Alfreds Futterkiste Maria Anders Alemania

2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico

3 Antonio Moreno Taquería Antonio Moreno Mexico

Observe que la columna "ClienteID" de la tabla "Pedido" se refiere al cliente en la tabla "Cliente".
La relación entre las dos tablas anteriores es la columna "ClienteID".

Entonces, si nos encontramos con la siguiente instrucción SQL (que contiene un INNER JOIN):

Ejemplo
SELECT Pedido.PedidoID, Cliente.NombreCliente, Pedido.FechaPedido
FROM Pedido
INNER JOIN Cliente
ON Pedido.ClienteID=Cliente.ClienteID;

Va a producir algo como esto:

PedidoID NombreCliente FechaPedido

10308 Ana Trujillo Emparedados y helados 9/18/2014

10365 Antonio Moreno Taquería 11/27/2014

10383 Around the Horn 12/16/2014

10355 Around the Horn 11/15/2014

10278 Berglunds snabbköp 8/12/2014

Diferentes SQL JOINs

Antes de continuar con los ejemplos, haremos una lista de los tipos de las diferentes uniones
SQL que puede utilizar:

• INNER JOIN: Devuelve todas las filas cuando hay por lo menos un matcheo en ambas
tablas.
• LEFT JOIN: Devuelve todas las filas de la tabla izquierda y las filas coincidentes de la
tabla de la derecha.
• RIGHT JOIN: Devuelve todas las filas de la tabla derecha, y las filas coincidentes de la
tabla izquierda.
• FULL JOIN: Devuelve todas las filas cuando hay un matcheo en una de las tablas.

Página 16 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

14. INNER JOIN


La palabra clave INNER JOIN selecciona todas las filas de ambas tablas siempre que haya una
coincidencia entre las columnas de ambas tablas.

Sintaxis SQL INNER JOIN


SELECT nombre_columna(s)
FROM tabla1
INNER JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

o:

SELECT nombre_columna(s)
FROM tabla1
JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

Nota: INNER JOIN es lo mismo que JOIN.

Una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. Berlin 12209 Alemania


Futterkiste 57

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

Página 17 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Y una selección de la tabla "Pedido":

PedidoID ClienteID EmpleadoID FechaPedido TransportistaID

10308 2 7 2014-09-18 3

10309 37 3 2014-09-19 1

10310 77 8 2014-09-20 2

Ejemplo SQL INNER JOIN


La siguiente sentencia SQL devolverá todos los clientes con pedidos:

Ejemplo
SELECT Cliente.NombreCliente, Pedido.PedidoID
FROM Cliente
INNER JOIN Pedido
ON Cliente.ClienteID=Pedido.ClienteID
ORDER BY Cliente.NombreCliente;

Nota: La palabra clave INNER JOIN selecciona todas las filas de ambas tablas siempre que haya
una coincidencia entre las columnas. Si hay filas en la tabla "Cliente" que no tienen coincidencias
en "Pedido", no se listarán estos clientes.

15. LEFT JOIN


El LEFT JOIN devuelve la palabra clave todas las filas de la tabla izquierda (tabla 1), con las filas
coincidentes en la tabla de la derecha (tabla2). El resultado es NULL en el lado derecho cuando
no hay ninguna coincidencia.

Sintaxis SQL LEFT JOIN


SELECT nombre_columna(s)
FROM tabla1
LEFT JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

o:

SELECT nombre_columna(s)
FROM tabla1
LEFT OUTER JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

Nota: En algunas bases de datos el LEFT JOIN se llama LEFT OUTER JOIN.

Página 18 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. Berlin 12209 Alemania


Futterkiste 57

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

Y una selección de la tabla "Pedido":

PedidoID ClienteID EmpleadoID FechaPedido TransportistaID

10308 2 7 2014-09-18 3

10309 37 3 2014-09-19 1

10310 77 8 2014-09-20 2

Ejemplo SQL LEFT JOIN


La siguiente sentencia SQL devolverá todos los clientes, y cualquier pedido que puedan tener:

Ejemplo
SELECT Cliente.NombreCliente, Pedido.PedidoID
FROM Cliente
LEFT JOIN Pedido
ON Cliente.ClienteID=Pedido.ClienteID
ORDER BY Cliente.NombreCliente;

Nota: El LEFT JOIN devuelve la palabra clave todas las filas de la tabla izquierda (Cliente),
incluso si no hay coincidencias en la tabla derecha (Pedido).

Página 19 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

16. RIGHT JOIN


La palabra clave RIGHT JOIN devuelve todas las filas de la tabla derecha (tabla2), con las filas
coincidentes en la tabla de la izquierda (tabla 1). El resultado es NULL en el lado izquierdo
cuando no hay ninguna coincidencia.

Sintaxis SQL RIGHT JOIN


SELECT nombre_columna(s)
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

o:

SELECT nombre_columna(s)
FROM tabla1
RIGHT OUTER JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

Nota: En algunas bases de datos RIGHT JOIN se llama RIGHT OUTER JOIN.

Una selección de la tabla "Pedido":


PedidoID ClienteID EmpleadoID FechaPedido TransportistaID

10308 2 7 2014-09-18 3

10309 37 3 2014-09-19 1

10310 77 8 2014-09-20 2

Y una selección de la tabla "Empleado":

EmpleadoID Apellido Nombre FechaNacimiento Foto Nota

1 Davolio Nancy 12/8/1978 EmpID1.pic Education includes a BA in


psychology.....

2 Fuller Andrew 2/19/1982 EmpID2.pic Andrew received his BTS


commercial and....

3 Leverling Janet 8/30/1963 EmpID3.pic Janet has a BS degree in


chemistry....

Página 20 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Ejemplo SQL RIGHT JOIN

The following SQL statement will return all employees, and any orders they have placed:

Ejemplo
SELECT Pedido.PedidoID, Empleado.Nombre
FROM Pedido
RIGHT JOIN Empleado
ON Pedido.EmpleadoID=Empleado.EmpleadoID
ORDER BY Pedido.PedidoID;

Nota: La palabra clave RIGHT JOIN devuelve todas las filas de la tabla derecha (Empleado),
incluso si no hay coincidencias en la tabla izquierda (Pedido).

17. FULL JOIN


La palabra clave FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (tabla 1) y de la
tabla derecha (tabla2).

La palabra clave FULL OUTER JOIN combina el resultado tanto izquierdo como derecho.

Sintaxis SQL FULL OUTER JOIN


SELECT nombre_columna(s)
FROM tabla1
FULL OUTER JOIN tabla2
ON tabla1.nombre_columna=tabla2.nombre_columna;

Página 21 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. Berlin 12209 Alemania


Futterkiste 57

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

Y una selección de la tabla "Pedido":

PedidoID ClienteID EmpleadoID FechaPedido TransportistaID

10308 2 7 2014-09-18 3

10309 37 3 2014-09-19 1

10310 77 8 2014-09-20 2

Ejemplo SQL FULL OUTER JOIN

La siguiente sentencia SQL selecciona todos los clientes, y todos los pedidos:

SELECT Cliente.NombreCliente, Pedido.PedidoID


FROM Cliente
FULL OUTER JOIN Pedido
ON Cliente.ClienteID=Pedido.ClienteID
ORDER BY Cliente.NombreCliente;

Una selección del conjunto de resultados puede tener este aspecto:

NombreCliente PedidoID

Alfreds Futterkiste

Ana Trujillo Emparedados y helados 10308

Antonio Moreno Taquería 10365

10382

10351

Página 22 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Nota: La palabra clave FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (Cliente),
y todas las filas de la tabla derecha (Pedido). Si hay filas de "Cliente" que no tienen
coincidencias en "Pedido", o si hay filas en "Pedido" que no tienen coincidencias en "Cliente", las
filas se listan también.

18. UNION
El operador UNION de SQL combina el resultado de dos o más instrucciones SELECT.

El operador UNION se usa para combinar el conjunto de resultados de dos o más instrucciones
SELECT.

Observe que cada instrucción SELECT dentro de la Unión debe tener el mismo número de
columnas. Las columnas deben tener tipos de datos similares. También, las columnas de cada
instrucción SELECT deben estar en el mismo orden.

Sintaxis SQL UNION


SELECT nombre_columna(s) FROM tabla1
UNION
SELECT nombre_columna(s) FROM tabla2;

Nota: El operador UNION selecciona sólo valores distintos de forma predeterminada. Para
permitir valores duplicados, utilice la palabra clave ALL con UNION.

Sintaxis SQL UNION ALL


SELECT nombre_columna(s) FROM tabla1
UNION ALL
SELECT nombre_columna(s) FROM tabla2;

Nota: Los nombres de columna del conjunto de resultados de una UNION suelen ser iguales a
los nombres de columna en la primera instrucción SELECT de la UNION.

Una selección de la tabla "Cliente":

ClienteID NombreCliente NombreContacto Direccion Ciudad CodigoPostal Pais

1 Alfreds Maria Anders Obere Str. Berlin 12209 Alemania


Futterkiste 57

2 Ana Trujillo Ana Trujillo Avda. de la México 05021 Mexico


Emparedados y Constitución D.F.
helados 2222

3 Antonio Moreno Antonio Moreno Mataderos México 05023 Mexico


Taquería 2312 D.F.

Página 23 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

Y una selección de la tabla "Proveedor":

ProveedorID NombreProveedor NombreContacto Direccion Ciudad CodigoPostal Pais

1 Exotic Liquid Charlotte Cooper 49 Gilbert Londres 1651 UK


St.

2 New Orleans Cajun Shelley Burke P.O. Box New 70117 USA
Delights 78934 Orleans

3 Grandma Kelly's Regina Murphy 707 Ann 48104 USA


Homestead Oxford Arbor
Rd.

Ejemplo SQL UNION


La siguiente sentencia SQL selecciona todas las diferentes ciudades (sólo valores distintos) de
las tablas "Cliente" y "Proveedor":

Ejemplo
SELECT Ciudad FROM Cliente
UNION
SELECT Ciudad FROM Proveedor
ORDER BY Ciudad;

Nota: UNION no se puede utilizar para enumerar TODAS las ciudades de las dos tablas. Si
varios clientes y proveedores comparten la misma ciudad, cada ciudad sólo se mostrará una vez.
UNION selecciona sólo valores distintos. Utilice UNION ALL para seleccionar también los valores
duplicados.

Ejemplo SQL UNION ALL


La siguiente sentencia SQL utiliza UNION ALL para seleccionar todas las (valores duplicados
también) ciudades de las tablas "Cliente" y "Proveedore":

Ejemplo
SELECT Ciudad FROM Cliente
UNION ALL
SELECT Ciudad FROM Proveedor
ORDER BY Ciudad;

Página 24 de 25
6to Año - Electrónica Introducción SQL Ing. Juan Manuel Soto

SQL UNION ALL con WHERE


La siguiente sentencia SQL utiliza UNION ALL para seleccionar todas las (valores duplicados
también) ciudades alemanas de las tablas "Cliente" y "Proveedore":

Ejemplo
SELECT Ciudad, Pais FROM Cliente
WHERE Pais='Alemania'
UNION ALL
SELECT Ciudad, Pais FROM Proveedor
WHERE Pais='Alemania'
ORDER BY Ciudad;

Página 25 de 25

También podría gustarte