freeCodeCamp/guide/spanish/sql/sql-joins/index.md

7.3 KiB

title localeTitle
SQL Joins Uniones SQL

Uniones SQL

Ejemplo de uso

Para esta guía, analizaremos la sección ÚNETE de la declaración SQL.

Sintaxis SQL con enfoque en Join

SELECT col1, col2, col3, etc.... 
 FROM  tableNameOne AS a 
 JOIN tableNameTwo AS b ON a.primeKey = b.primeKey 
 etc... 

La declaración de JOIN podría ser solo JOIN o INNER JOIN, que son lo mismo, o IZQUIERDA UNIR (descrita a continuación).

Diferentes tipos de uniones

  • (UNIR INTERNAMENTE
  • Devolver registros que tienen valores coincidentes en ambas tablas
  • IZQUIERDA COMBINACIÓN EXTERNA
  • Devuelve todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha
  • DERECHO (EXTERIOR) UNIRSE
  • Devuelva todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda
  • UNIR COMPLETO (EXTERIOR)
  • Devuelve todos los registros cuando hay una coincidencia en la tabla izquierda o derecha

Unirse

La tabla de estudiantes estará en la cláusula FROM, por lo que será una tabla de inicio o IZQUIERDA.

Uniremos esto a la tabla de contacto del estudiante o a la mesa DERECHA.

Verás que aparecen todos los alumnos que también están en la tabla de contactos.

Como se muestra en las tablas a continuación, studentID 9 está en la tabla de estudiantes pero NO en la tabla de contactos, por lo que no aparecerá en una combinación.

Declaración SQL

SELECT a.studentID, a.FullName, a.programOfStudy, 
 b.`student-phone-cell`, b.`student-US-zipcode` 
 FROM student AS a 
 JOIN `student-contact-info` AS b ON a.studentID = b.studentID; 

Datos "unidos": `` `texto + ----------- + ------------------------ + ------------ ------ + -------------------- + -------------------- + | StudentID | Nombre completo | programa de estudio | estudiante-teléfono-celular | código postal de estudiante de Estados Unidos | + ----------- + ------------------------ + ------------ ------ + -------------------- + -------------------- + | 1 | Monique Davis | Literatura | 555-555-5551 | 97111 | | 2 | Teri Gutierrez | Programación | 555-555-5552 | 97112 | | 3 | Spencer Pautier | Programación | 555-555-5553 | 97113 | | 4 | Louis Ramsey | Programación | 555-555-5554 | 97114 | | 5 | Alvin Greene | Programación | 555-555-5555 | 97115 | | 6 | Sophie Freeman | Programación | 555-555-5556 | 97116 | | 7 | Edgar Frank "Ted" Codd | Ciencias de la Computación | 555-555-5557 | 97117 | | 8 | Donald D. Chamberlin | Ciencias de la Computación | 555-555-5558 | 97118 | + ----------- + ------------------------ + ------------ ------ + -------------------- + -------------------- +

### Left Join 
 Using the keyword LEFT before JOIN causes the system to start with the student (LEFT) table but will return NULL from the RIGHT table if there are no rows for the LEFT table student. 
 
 Note that studentID 9 appears here but the data from the contact table is just shown as NULL. 

sql SELECT a.studentID, a.FullName, a.programOfStudy, segundo. student-phone-cell , b. student-US-zipcode De estudiante como un AJUSTE IZQUIERDO student-contact-info AS b ON a.studentID = b.studentID;

``` text 
 +-----------+------------------------+------------------+--------------------+--------------------+ 
 | studentID | FullName               | programOfStudy   | student-phone-cell | student-US-zipcode | 
 +-----------+------------------------+------------------+--------------------+--------------------+ 
 |         1 | Monique Davis          | Literature       | 555-555-5551       |              97111 | 
 |         2 | Teri Gutierrez         | Programming      | 555-555-5552       |              97112 | 
 |         3 | Spencer Pautier        | Programming      | 555-555-5553       |              97113 | 
 |         4 | Louis Ramsey           | Programming      | 555-555-5554       |              97114 | 
 |         5 | Alvin Greene           | Programming      | 555-555-5555       |              97115 | 
 |         6 | Sophie Freeman         | Programming      | 555-555-5556       |              97116 | 
 |         7 | Edgar Frank "Ted" Codd | Computer Science | 555-555-5557       |              97117 | 
 |         8 | Donald D. Chamberlin   | Computer Science | 555-555-5558       |              97118 | 
 |         9 | Raymond F. Boyce       | Computer Science | NULL               |               NULL | 
 +-----------+------------------------+------------------+--------------------+--------------------+ 
 9 rows in set (0.00 sec) 

Lista completa de tablas para referencia

Listados de mesas de estudiantes

SELECT a.studentID, a.FullName, sat_score, a.programOfStudy, schoolEmailAdr 
 FROM student AS a; 

estudiante o mesa IZQUIERDA

+-----------+------------------------+-----------+------------------+------------------------+ 
 | studentID | FullName               | sat_score | programOfStudy   | schoolEmailAdr         | 
 +-----------+------------------------+-----------+------------------+------------------------+ 
 |         1 | Monique Davis          |       400 | Literature       | Monique@someSchool.edu | 
 |         2 | Teri Gutierrez         |       800 | Programming      | Teri@someSchool.edu    | 
 |         3 | Spencer Pautier        |      1000 | Programming      | Spencer@someSchool.edu | 
 |         4 | Louis Ramsey           |      1200 | Programming      | Louis@someSchool.edu   | 
 |         5 | Alvin Greene           |      1200 | Programming      | Alvin@someSchool.edu   | 
 |         6 | Sophie Freeman         |      1200 | Programming      | Sophie@someSchool.edu  | 
 |         7 | Edgar Frank "Ted" Codd |      2400 | Computer Science | Edgar@someSchool.edu   | 
 |         8 | Donald D. Chamberlin   |      2400 | Computer Science | Donald@someSchool.edu  | 
 |         9 | Raymond F. Boyce       |      2400 | Computer Science | Raymond@someSchool.edu | 
 +-----------+------------------------+-----------+------------------+------------------------+ 
 9 rows in set (0.00 sec) 

sql SELECCIONAR * desde student-contact-info del student-contact-info AS b;

student contact or RIGHT table 

texto + ----------- + ---------------------------------- + - ------------------ + -------------------- + | StudentID | estudianteEmailAddr | estudiante-teléfono-celular | código postal de estudiante de Estados Unidos | + ----------- + ---------------------------------- + - ------------------ + -------------------- + | 1 | Monique.Davis@freeCodeCamp.org | 555-555-5551 | 97111 | | 2 | Teri.Gutierrez@freeCodeCamp.org | 555-555-5552 | 97112 | | 3 | Spencer.Pautier@freeCodeCamp.org | 555-555-5553 | 97113 | | 4 | Louis.Ramsey@freeCodeCamp.org | 555-555-5554 | 97114 | | 5 | Alvin.Green@freeCodeCamp.org | 555-555-5555 | 97115 | | 6 | Sophie.Freeman@freeCodeCamp.org | 555-555-5556 | 97116 | | 7 | Maximo.Smith@freeCodeCamp.org | 555-555-5557 | 97117 | | 8 | Michael.Roach@freeCodeCamp.ort | 555-555-5558 | 97118 | + ----------- + ---------------------------------- + - ------------------ + -------------------- + 8 filas en conjunto (0,00 seg) `` `

Al igual que con todas estas cosas de SQL, hay MUCHO MÁS que lo que está en esta guía introductoria.

Espero que al menos esto te dé suficiente para empezar.

Consulte el manual de su administrador de base de datos y diviértase probando diferentes opciones usted mismo.