SQLite: conectar

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 porque no hay una fila correspondiente en la tabla de ubicaciones.

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.