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

118 lines
7.3 KiB
Markdown

---
title: SQL Joins
localeTitle: 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
```sql
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
```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
```sql
SELECT a.studentID, a.FullName, sat_score, a.programOfStudy, schoolEmailAdr
FROM student AS a;
```
estudiante o mesa IZQUIERDA
```text
+-----------+------------------------+-----------+------------------+------------------------+
| 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.