Para recuperar datos de una sola tabla usamos operaciones SELECT y PROJECTION pero para recuperar datos de varias tablas usamos JOINS en SQL . Hay diferentes tipos de JOINS en SQL . En este artículo, solo se analizan las operaciones en combinaciones internas en MSSQL .
Inner Join es el método de recuperación de datos de varias tablas en función de una condición requerida y las condiciones necesarias son que debe haber columnas comunes o columnas coincidentes entre las dos tablas de la base de datos y los tipos de datos de las columnas deben ser los mismos.
Veamos cómo unir dos tablas y tres tablas usando Inner Join en MSSQL paso a paso.
Creando una base de datos:
Creando una base de datos GeeksForGeeks usando la siguiente consulta SQL de la siguiente manera.
CREATE DATABASE GeeksForGeeks;
Usando la base de datos:
Usando la base de datos del estudiante usando la siguiente consulta SQL de la siguiente manera.
USE GeeksForGeeks;
Crear tres tablas estudiante, curso y profesor con consulta SQL de la siguiente manera:
CREATE TABLE student ( stu_id varchar(10), stu_name varchar(20), course_id varchar(10), branch varchar(20), lecturer_id varchar(10) );
CREATE TABLE course ( course_id varchar(10), course_name varchar(20) );
CREATE TABLE lecturer ( lecturer_id varchar(10), lecturer_name varchar(20) );
Verificando la base de datos:
Para ver la descripción de las tres tablas en la base de datos GeeksForGeeks, use la siguiente consulta SQL de la siguiente manera.
EXEC sp_columns student; EXEC sp_columns course; EXEC sp_columns lecturer;
Insertando datos en las tres tablas:
Insertar filas en la tabla de estudiantes usando la siguiente consulta SQL de la siguiente manera:
INSERT INTO student VALUES ('1901401','DEVA','CS1003','C.S', 'P4002'), ('1901402','HARSH','CS1001','C.S', 'P4001'), ('1901403','ABHISHEK','CS1001','C.S', 'P4001'), ('1901404','GARVIT','CS1002','C.S', 'P4003'), ('1901405','SAMPATH','CS1003','C.S', 'P4002'), ('1901406','SATWIK','CS1002','C.S', 'P4003'), ('1901407','GUPTA','CS1001','C.S', 'P4001'), ('1901408','DAS','CS1003','C.S', 'P4002');
Insertar filas en la tabla del curso usando la siguiente consulta SQL de la siguiente manera:
INSERT INTO course VALUES ('CS1001', 'DBMS'), ('CS1002', 'O.S'), ('CS1003', 'C.N'), ('CS1004', 'M.L'), ('CS1005', 'A.I');
Insertar filas en la tabla del profesor usando la siguiente consulta SQL de la siguiente manera:
INSERT INTO lecturer VALUES ('P4001', 'RAMESH'), ('P4002', 'RAVINDER'), ('P4003', 'RAHUL SHARMA'), ('P4004', 'PRADEEP KUMAR'), ('P4005', 'SRINIVASA RAO');
Verificando los datos insertados:
Ver las tres tablas después de insertar filas utilizando la siguiente consulta SQL de la siguiente manera.
SELECT* FROM student; SELECT* FROM course; SELECT* FROM lecturer;
Aplicando uniones internas:
La sintaxis para combinaciones múltiples:
SELECT column_name1,column_name2,.. FROM table_name1 INNER JOIN table_name2 ON condition_1 INNER JOIN table_name3 ON condition_2 INNER JOIN table_name4 ON condition_3 . . .
Nota: Al seleccionar solo columnas particulares, use table_name . column_name cuando hay los mismos nombres de columna en las dos tablas; de lo contrario, obtendrá un error ambiguo .
Consultas:
Unión interna en dos tablas estudiante y curso:
SELECT * FROM student INNER JOIN course ON student.course_id = course.course_id;
Inner Join en tres tablas estudiante, curso y profesor:
SELECT * FROM student INNER JOIN course ON student.course_id = course.course_id INNER JOIN lecturer ON student.lecturer_id = lecturer.lecturer_id;
Unión interna en tres tablas estudiante, curso, profesor pero seleccionando columnas particulares de una tabla en particular.
SELECT stu_id, stu_name,course.course_id,course.course_name, lecturer.lecturer_name FROM student INNER JOIN course ON student.course_id = course.course_id INNER JOIN lecturer ON student.lecturer_id = lecturer.lecturer_id;
Publicación traducida automáticamente
Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA