Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQLite: conectar
Este tutorial de SQLite explica cómo usar SQLite participar (interno y externo) con gramática, ilustraciones visuales y ejemplos.
describir
SQLite JOINS se utiliza para recuperar datos de varias tablas. Se realiza un SQLite JOIN cada vez que se unen dos o más tablas en una instrucción SQL.
Hay diferentes tipos de conexiones SQLite:
- UNIÓN INTERNA (o, a veces, llamada unión simple)
- Unión externa izquierda (o, a veces, llamada unión izquierda)
- conexión cruzada
propina: SQLite no es compatible con RIGHT OUTER JOIN y FULL OUTER JOIN.
Entonces, analicemos la sintaxis de SQLite JOIN, veamos una ilustración visual de SQLite JOIN y exploremos algunos ejemplos.
UNIÓN INTERNA (unión simple)
Lo más probable es que haya escrito una declaración que use SQLite INNER JOIN. Es el tipo de conexión más común. SQLite INNER JOINS devuelve todas las filas de varias tablas que cumplen la condición de combinación.
sintaxis
La sintaxis para INNER JOIN en SQLite es:
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
ilustración visual
En esta visualización, SQLite INNER JOIN devuelve el área sombreada:
SQLite INNER JOIN devolverá los registros donde se cruzan table1 y table2.
ejemplo
El siguiente es un ejemplo de SQLite INNER JOIN:
SELECT employees.employee_id, employees.last_name, positions.title FROM employees INNER JOIN positions ON employees.position_id = positions.position_id;
Este ejemplo de SQLite INNER JOIN devolverá todas las filas en las tablas de empleados y puestos donde haya un valor de position_id coincidente en las tablas de empleados y puestos.
Veamos algunos datos para explicar cómo funciona INNER JOINS:
Tenemos una tabla llamada empleados con cuatro campos (employee_id, last_name, first_name y position_id). Contiene los siguientes datos:
ID de empleado | apellido | nombre | posición_id |
---|---|---|---|
10000 | Herrero | John | 1 |
10001 | anderson | dave | 2 |
10002 | Departamento de Energía | John | 3 |
10003 | cazar | dylan |
Tenemos otra tabla llamada posiciones con dos campos (position_id y title). Contiene los siguientes datos:
posición_id | título |
---|---|
1 | gerente |
2 | planificador de proyectos |
3 | programador |
4 | Analista de datos |
Si ejecutamos la instrucción SQLite SELECT a continuación (con INNER JOIN):
SELECT employees.employee_id, employees.last_name, positions.title FROM employees INNER JOIN positions ON employees.position_id = positions.position_id;
Nuestro conjunto de resultados se ve así:
ID de empleado | apellido | título |
---|---|---|
10000 | Herrero | gerente |
10001 | anderson | planificador de proyectos |
10002 | Departamento de Energía | programador |
La fila para employee_id 10003 en la tabla de empleados se omitirá porque el position_id correspondiente no existe en la tabla de puestos. La fila con position_id 4 en la tabla de puestos se omitirá porque ese position_id no existe en la tabla de empleados.
sintaxis antigua
Como nota final, vale la pena mencionar que el ejemplo anterior de SQLite INNER JOIN se puede reescribir usando la sintaxis implícita anterior de la siguiente manera (pero aún recomendamos usar la sintaxis de palabra clave INNER JOIN):
SELECT employees.employee_id, employees.last_name, positions.title FROM employees, positions WHERE employees.position_id = positions.position_id;
izquierda combinación externa
Otro tipo de unión se llama SQLite LEFT OUTER JOIN.Este tipo de unión devuelve todas las filas en el reloj izquierdo especificado en la condición ON, y si solo Une esas filas de otras tablas donde los campos son iguales (se cumplen las condiciones de unión).
sintaxis
La sintaxis para SQLite LEFT OUTER JOIN es:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON table1.column = table2.column;
En algunas bases de datos, la palabra clave LEFT OUTER JOIN se reemplaza por LEFT JOIN.
ilustración visual
En esta visualización, SQLite LEFT OUTER JOIN devuelve el área sombreada:
SQLite LEFT OUTER JOIN devolverá todos los registros de la tabla 1 y solo los registros de la tabla 2 que se cruzan con la tabla 1.
ejemplo
Aquí hay un ejemplo de una combinación externa izquierda de SQLite:
SELECT employees.employee_id, employees.last_name, positions.title FROM employees LEFT OUTER JOIN positions ON employees.position_id = positions.position_id;
Este ejemplo de LEFT OUTER JOIN devolverá todas las filas en la tabla de empleados y solo aquellas filas en la tabla de posiciones donde los campos de combinación son iguales.
Si el valor position_id en la tabla de empleados no existe en la tabla de puestos, todos los campos de la tabla de puestos aparecerán en el conjunto de resultados como
Veamos algunos datos para explicar cómo funciona LEFT OUTER JOINS:
Tenemos una tabla llamada empleados con cuatro campos (employee_id, last_name, first_name y position_id). Contiene los siguientes datos:
ID de empleado | apellido | nombre | posición_id |
---|---|---|---|
10000 | Herrero | John | 1 |
10001 | anderson | dave | 2 |
10002 | Departamento de Energía | John | 3 |
10003 | cazar | dylan |
Tenemos una segunda tabla llamada position con dos campos (position_id y title). Contiene los siguientes datos:
posición_id | título |
---|---|
1 | gerente |
2 | planificador de proyectos |
3 | programador |
4 | Analista de datos |
Si ejecutamos la siguiente sentencia SELECT (incluyendo LEFT OUTER JOIN):
SELECT employees.employee_id, employees.last_name, positions.title FROM employees LEFT OUTER JOIN positions ON employees.position_id = positions.position_id;
Nuestro conjunto de resultados se ve así:
ID de empleado | apellido | título |
---|---|---|
10000 | Herrero | gerente |
10001 | anderson | planificador de proyectos |
10002 | Departamento de Energía | programador |
10003 | cazar |
La fila para employee_id 10003 se incluirá porque se utilizó LEFT OUTER JOIN.Sin embargo, notará que el campo de título para ese registro contiene
conexión cruzada
Otro tipo de unión se llama SQLite CROSS JOIN. Este tipo de combinación devuelve un conjunto de resultados combinados en el que cada fila de la primera tabla coincide con cada fila de la segunda tabla. Esto también se llama un producto cartesiano.
sintaxis
La sintaxis de SQLite CROSS JOIN es:
SELECT columns FROM table1 CROSS JOIN table2;
notas: A diferencia de las uniones INNER o OUTER, CROSS JOIN no tiene ninguna condición para unir 2 tablas.
ilustración visual
En esta visualización, SQLite CROSS JOIN devuelve que cada fila de la tabla 1 coincide con cada fila de la tabla 2.
ejemplo
Aquí hay un ejemplo de SQLite CROSS JOIN:
SELECT * FROM positions CROSS JOIN departments;
Este ejemplo de CROSS JOIN devolverá todas las filas de la tabla de empleados que coincidan con todas las filas de la tabla de ubicaciones.
Veamos algunos datos para explicar cómo funcionan CROSS JOINS:
Tenemos una tabla llamada Ubicaciones con los siguientes datos:
posición_id | título |
---|---|
1 | gerente |
2 | planificador de proyectos |
3 | programador |
4 | Analista de datos |
Tenemos una segunda tabla llamada Departamentos con los siguientes datos:
Número de departamento | Nombre de Departamento |
---|---|
30 | Recursos humanos |
999 | El volumen de ventas |
Si ejecutamos la siguiente instrucción SELECT (con CROSS JOIN):
SELECT * FROM positions CROSS JOIN departments;
Nuestro conjunto de resultados se ve así:
posición_id | título | Número de departamento | Nombre de Departamento |
---|---|---|---|
1 | gerente | 30 | Recursos humanos |
1 | gerente | 999 | El volumen de ventas |
2 | gerente de proyecto | 30 | Recursos humanos |
2 | gerente de proyecto | 999 | El volumen de ventas |
3 | programador | 30 | Recursos humanos |
3 | programador | 999 | El volumen de ventas |
4 | Analista de datos | 30 | Recursos humanos |
4 | Analista de datos | 999 | El volumen de ventas |
Dado que la tabla de trabajos tiene 4 filas y el departamento tiene 2 filas, la unión cruzada devolverá 8 filas (ya que 4×2=8). Cada fila de la tabla de trabajos coincide con cada fila de la tabla de departamentos.