Comando de intersección de Postgres

Comando de intersección de Postgres
La característica de intersectos de PostgreSQL combina los valores resultantes de dos o más declaraciones selectas. Esta opción se utiliza para obtener las entidades comunes en dos o más tablas. Entonces se obtiene un solo valor resultante. Se obtiene un conjunto de filas que está presente en ambas tablas. Esta característica es muy útil para obtener todos los registros comunes en una sola consulta utilizando más.

Sintaxis

Seleccione column_name1, column_name2 de la tabla1
INTERSECARSE
Seleccione column_name1, column_name2 de la tabla2

Esta es una sintaxis básica de la función de intersección. Esto se puede cambiar agregando un asterisco para todos los datos al no especificar los nombres de la columna. El comando funciona de manera que ambas declaraciones selectas funcionarán y obtendrán el registro y luego la función Intersect elegirá los datos comunes y eliminará el poco común.

Trabajo de la función Intersect en PostgreSQL

  • Esta característica solo se usa cuando tenemos datos comunes o datos duplicados en ambas columnas especificadas.
  • Ayuda a lidiar con más de una mesa que busca las mismas entidades de las tablas.

Para implementar el comando intersectar, necesitamos crear tres tablas aquí. Podemos usar cualquier tabla, por ejemplo, pero para comprender el concepto de intersección, necesitamos heredar algunos atributos y crear una articulación. El primero contendrá toda la información sobre el estudiante. Mientras que la segunda y tercera tablas contendrán una parte de la información agregada en la primera. Entonces crearemos la primera tabla llamada estudiante.

>> Crear estudiante de tabla (
Estudiante_id clave de serie en serie,
student_name varchar (255) no nulo
);

La tabla contiene dos columnas, identificación del estudiante y el nombre del estudiante. Ahora, crearemos más dos tablas llamadas sujeto y práctica. Ambas tablas se originan desde el estudiante de la tabla de padres. Entonces, para conectarlos, ambas tablas contendrán la clave principal de la tabla de estudiantes como una restricción de clave extranjera para crear una junta entre todas las tablas. Ambas tablas mencionadas a continuación tienen un atributo propio y un atributo como una clave principal exportada desde la tabla de estudiantes.

Crear sujeto de tabla (
student_id int primaria clave,
fecha de date no nulo,
REFERENCIAS DE LA CLAVE EXTRANJERO (Student_ID) Estudiante (Student_ID)
);
Crear tabla práctica (
student_id int primaria clave,
fecha de date no nulo,
REFERENCIAS DE LA CLAVE EXTRANJERO (Student_ID) Estudiante (Student_ID)
);

Después de la creación de todas las tablas, utilizaremos una instrucción de inserción para ingresar datos en ella. Cada tabla obtendrá datos después de la ejecución del comando.

>> Insertar en los valores de Student (Student_Name) ('Thomas'), ('Bay Hikel'), ('Jason Sily'), ('Robert Hunt'), ('Arjit Suba'), ('Micky Angel'), ('Shweta Singh'), ('Tom Ridle'), ('Sabana'), ('Timmy Honad');

Puede ver que los datos se insertan solo en la columna de nombre; La columna de identificación se llena automáticamente como el número de serie. Y los valores en la columna ID del sujeto y las tablas prácticas se llenarán de la tabla de sujetos. Pero la inserción en el sujeto y la tabla práctica serán de tal manera que algunas ID en ambas tablas deberían ser similares a las situaciones que habíamos aplicado.

Del mismo modo, el sujeto y las tablas prácticas se insertan mediante datos.

Insertar en los valores de los sujetos (1, '2000-02-01'), (2, '2001-06-01'), (5, '2002-01-01'), (7, '2005-06-01' );
>> Insertar en valores prácticos (9, '2000-01-01'), (2, '2002-06-01'), (5, '2006-06-01'), (10, '2005-06- 01 ');

Tabla de sujetos:

Tabla práctica:

Ahora, utilizaremos una instrucción SELECT para ver los datos insertados en la tabla del estudiante.

>> seleccionar * del estudiante;

Ejemplo 1

Este ejemplo mostrará el registro de aquellos estudiantes que se han unido tanto a las materias como a la práctica de la mesa de los estudiantes. Esto se hará mediante el uso de una declaración intersecta aplicada tanto en el sujeto como en la tabla práctica. Este comando funcionará de tal manera que considerará las identificaciones de los estudiantes tanto en la asignatura como en la clase práctica. Aquellas ID que son comunes en ambas tablas se obtendrán por separado.

>> seleccione Student_id de la asignación intersect Seleccione Student_id de práctica;

Esto buscará dos filas, ya que solo dos estudiantes se han inscrito tanto en las materias como en las prácticas. Ambas ID tienen fechas de unión separadas, por eso no hemos obtenido esa columna.

Ahora considere un escenario en el que queremos obtener el registro de la columna ID y la columna de Date Join_Date de una tabla que se cruzan los datos en la columna ID de la tabla práctica, y luego adivine qué sucederá?

>> seleccione Student_id, Join_Date de la asignatura Intersect Select Student_id de práctica;

Se producirá un error porque para aplicar la función de intersección, debemos haber mencionado el mismo número de columnas en ambas tablas. De lo contrario, la consulta no funcionará.

Entonces, para superar este error, ahora tomaremos ambas columnas para que ambas tablas se apliquen a Intersect, pero desafortunadamente no hay una sola fila que coincida con el Join_Date. Si alguna fecha de unión en ambas tablas es la misma, entonces el valor resultante debe tener dos columnas con una fila común de ambas tablas afectadas.

>> seleccione Student_id, Join_Date de la asignatura Intersect Select student_id, Join_date de práctica;

Ejemplo 2

Este ejemplo incluye el mismo comando intersecto, pero ahora se agregan algunas características adicionales en el comando que se ordena por cláusula. Esta característica se utiliza para organizar el resultado recuperado. Pero como mencionamos 'descifrar' con esta cláusula, entonces el resultado se organiza en orden descendente.

>> Seleccione Student_id de la asignatura Intersect Seleccione Student_id del orden práctico por student_id Desc;

Desde la salida, puede ver que los valores se organizaron primero en orden ascendente, pero Desc los ha convertido reversamente.

Ejemplo 3

En este ejemplo, aplicaremos el comando Intersect en la columna Student_ID de la asignatura y la tabla de estudiantes. Entonces esas identificaciones que hemos ingresado solo en la tabla de sujetos serán obtenidas.

>> seleccione Student_id de la asignatura Intersect Seleccione Student_id de Student;

Ejemplo 4

Si aplica una función de intersección en la misma tabla que ha seleccionado, obtendrá todos los registros de la tabla al igual que el valor resultante obtenido de la instrucción SELECT. Puede ver que hemos aplicado el comando Intersect en la tabla práctica sin especificar la columna, por lo que todos los datos junto con la fecha de unión se obtienen.

>> seleccionar * de la práctica intersectada select * de práctico;

Comando de intersección de Postgres a través de PGADmin

Ahora, verificaremos el comando intersectar en el tablero de pgadmin al igual que PSQL. Después de abrir la interfaz, vaya a las tablas en la base de datos Postgres y las opciones de secuencia. Siga expandiéndose hasta que obtenga la opción de tablas ahora seleccione el estudiante de tabla y luego continúe con la herramienta de consulta para usar un comando.

>> seleccione Student_ID de práctico Intersect Seleccione Student_id de Student;

Hemos alterado la consulta anterior en la que se aplica la característica de intersección en la práctica y la tabla de estudiantes.

Después de aplicar la consulta, ejecutarla seleccionando la opción. Verá que todas las ID comunes se obtienen de ambas tablas especificadas en el comando.

Conclusión

El artículo 'Postgres Intersect Command' describe el funcionamiento de este operador en el sistema de base de datos PostgreSQL. Algunos ejemplos elementales se usan aquí para describir su trabajo en detalle. Cada datos comunes se puede obtener fácilmente utilizando esta función de intersección en los comandos para evitar cualquier redundancia y acoplamiento de datos en una base de datos.