En SQL , también podemos recuperar datos de varias tablas usando SELECT con varias tablas, lo que en realidad da como resultado CROSS JOIN de todas las tablas. La tabla resultante de CROSS JOIN de dos contiene todas las combinaciones de filas de la segunda tabla, que es un producto cartesiano de tablas. Si consideramos que la tabla 1 contiene m filas y la tabla 2 contiene n filas, la tabla resultante después de seleccionar dos tablas, es decir, la combinación cruzada de dos tablas, contiene m * n filas .
Veamos cómo seleccionar varias tablas usando el servidor MSSQL :
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;
Creación de tablas:
Crear tres tablas estudiante, detalles_sucursal , detalles_crédito con consulta SQL de la siguiente manera:
CREATE TABLE student ( stu_id varchar(10), stu_name varchar(20), branch varchar(20) );
CREATE TABLE branch_details ( branch_name varchar(10), subjects INT );
CREATE TABLE credit_details ( branch varchar(20), max_credits INT, min_credits_required INT );
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 branch_details; EXEC sp_columns credit_details;
Insertando datos en las tres tablas:
Insertar filas en tablas usando la siguiente consulta SQL de la siguiente manera:
INSERT INTO student VALUES ('1901401','DEVA','C.S'), ('1901402','HARSH','C.S'), ('1901403','DAVID','E.C'), ('1901404','GAURAV','E.C'); INSERT INTO branch_details VALUES ('C.S',8), ('E.C',7), ('M.E',7), ('I.C.E',9), ('E.E.E',8); INSERT INTO credit_details VALUES ('C.S',24, 12), ('E.C',21, 11), ('M.E',21, 11), ('I.C.E',27,14), ('E.E.E',24,12);
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 branch_details; SELECT * FROM credit_details;
Usando la instrucción SELECT para n tablas:
SYNTAX: SELECT columns FROM table_1, table_2,...table_n WHERE condition;
Usando sentencias SELECT para 2 tablas estudiante, branch_details:
SELECT * FROM student, branch_details;
Esta tabla contiene 4*5 = 20 filas.
Usando sentencias SELECT para 3 tablas estudiante, detalles_sucursal, detalles_crédito:
SELECT * FROM student, branch_details, credit_details;
La tabla resultante contiene 5*4*5 = 100 filas.
Podemos obtener otros tipos de combinación seleccionando varias tablas y mencionando la condición adecuada en la cláusula WHERE , pero en lugar de usar SELECCIONAR con varias tablas y agregar condiciones, es más óptimo usar las palabras clave de las combinaciones.
Ejemplo:
Consulta para mostrar los alumnos que se han matriculado en un curso y sus datos.
SELECT student.stu_id, student.stu_name, student.branch, subjects, max_credits FROM student, branch_details, credit_details WHERE student.branch = branch_details.branch_name AND branch_details.branch_name = credit_details.branch;
Nota: Cuando hay columnas con el mismo nombre en diferentes tablas, es bueno usar el operador de puntos para señalar los datos de las tablas en particular.
Publicación traducida automáticamente
Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA