CTE en PostgreSQL significa expresión de tabla común. Es una forma de mantener temporalmente los resultados de una consulta PostgreSQL. A veces, escribimos consultas extremadamente complejas que son muy difíciles de interpretar. En tales casos, el uso de CTE hace que nuestras consultas se vean más simples y legibles. Con la ayuda de este artículo, tenemos la intención de enseñarle el uso de CTE en PostgreSQL en Windows 10.
Ejemplo: Uso de CTE en PostgreSQL:
Usaremos CTE en PostgreSQL en Windows 10 en el siguiente ejemplo:
Paso # 1: Creación de tablas PostgreSQL:
En primer lugar, crearemos dos tablas PostgreSQL para usar CTE más tarde para extraer los resultados deseados de estas tablas. En esta ilustración, deseamos trabajar con una relación entre médicos y pacientes. Por lo tanto, crearemos una tabla llamada "Doctor" y la otra llamada "Paciente".
Para crear la tabla "Doctor", ejecutaremos la siguiente consulta PostgreSQL:
# Crear Tabla Doctor (Doc_id Serial Key primario, DOC_NAME VARCHAR (255) no nulo);Esta consulta creará la tabla "Doctor" con dos atributos, yo.mi. Doc_id y doc_name. También puede ver el proceso de creación de la tabla completa desde la imagen que se muestra a continuación:
Ahora, para crear la tabla "paciente", ejecutaremos la siguiente consulta PostgreSQL:
# Crear paciente de tabla (tecla primaria Pat_id Serial, Pat_name Varchar (255) No NULL, PAT_Temp INT NO NULL, DOC_ID INT NO NULL);Esta consulta creará la tabla "paciente" con cuatro atributos, yo.mi. Pat_id, Pat_name, Pat_temperature (esto representa la temperatura corporal del paciente) y DOC_ID (este es el mismo DOC_ID que hemos declarado en la tabla "Doctor". Aquí, se está utilizando como clave extranjera para especificar qué médicos trataron a cada paciente). También puede ver el proceso de creación de la tabla completa desde la imagen que se muestra a continuación:
Paso # 2: Inserción de registros en tablas PostgreSQL:
Después de crear estas tablas, tenemos que insertar una cantidad suficiente de registros en ellas para usar estos registros para demostrar el uso de CTE en PostgreSQL más adelante. Para insertar registros en la tabla "Doctor", ejecutaremos la siguiente consulta PostgreSQL:
# Insertar en los valores del médico (1, 'Sarah'), (2, 'Affan'), (3, 'irtiza'), (4, 'Hina'), (5, 'Naila');Esta consulta simplemente insertará los registros de cinco médicos diferentes en la tabla "Doctor" como se muestra en la imagen a continuación:
Ahora, para insertar registros en la tabla "paciente", ejecutaremos la siguiente consulta PostgreSQL:
# Inserte en valores del paciente (1, 'Saba', 99, 1), (2, 'Sidra', 100, 1), (3, 'Hamza', 100, 2), (4, 'Aslam', 98, 2), (5, 'Fizza', 101, 3), (6, 'Iqra', 102, 3), (7, 'Sadia', 100, 4), (8, 'Sobia', 99, 4) , (9, 'Salman', 100, 5), (10, 'Jawad', 103, 5);Esta consulta insertará los registros de 10 pacientes diferentes en la tabla "paciente" como se muestra en la imagen a continuación:
Nota: Es posible que se pregunte por qué mantuvimos la cantidad de registros de la tabla "paciente" más que la "doctora". Bueno, un solo médico puede atender a varios pacientes a la vez. Sin embargo, esto es solo para la demostración. Puede mantener la cantidad de registros de estas dos tablas iguales si lo desea.
Paso # 3: Vea los registros recién insertados en las tablas PostgreSQL:
Antes de continuar, veremos rápidamente los registros insertados en nuestras dos tablas PostgreSQL. Para la tabla "Doctor", ejecutaremos la siguiente consulta PostgreSQL:
# Seleccionar * del médico;Puede ver todos los registros de la tabla "Doctor" desde la imagen que se muestra a continuación:
Ahora, para la tabla "paciente", ejecutaremos la siguiente consulta PostgreSQL:
# Seleccionar * del paciente;Puede ver todos los registros de la tabla "paciente" desde la imagen que se muestra a continuación:
Paso # 4: Use CTE para mostrar todos los registros de una tabla PostgreSQL:
Este paso demostrará un uso relativamente simple de CTE en PostgreSQL. Queremos almacenar todos los registros de una de nuestras tablas en una expresión de tabla común y luego simplemente mostrarlo en la consola. La consulta que vamos a ejecutar para este propósito se cita a continuación:
# Con cte_patient como (seleccione Pat_id, Pat_name, Pat_temp, DOC_ID del paciente) Seleccione * de CTE_Patient;Ahora, le explicaremos toda esta consulta mientras discutimos todos sus componentes. El nombre de la expresión de la tabla común siempre está precedido por la palabra clave "con" y procediendo por la palabra clave "as". Significa que el nombre de nuestro CTE en este caso particular es "CTE_Patient". Después de la palabra clave "as", especificamos toda la consulta cuyos resultados deseamos almacenar en nuestra expresión de la tabla común. En este ejemplo, simplemente queremos elegir todos los registros que comprenden todos los atributos de la tabla "paciente" y luego almacenarlos en nuestro CTE. Después de eso, utilizamos la instrucción "Seleccionar" para mostrar el contenido de este CTE en nuestra consola. Esta consulta tomará todos los diez registros de nuestra tabla "paciente", los almacenará temporalmente en CTE_Patient y luego mostrará el contenido de CTE_Patient en la consola como se muestra en la imagen a continuación:
Paso # 5: Use CTE con la cláusula "Where" en PostgreSQL:
Ahora, pasaremos a un uso relativamente complejo de CTE en PostgreSQL, yo.mi. Usaremos CTE con la cláusula "Where" en PostgreSQL. En este ejemplo modificado, nuestro objetivo es verificar la temperatura de todos los pacientes y luego mostrar los nombres e ID de solo aquellos pacientes que tienen fiebre. La consulta que servirá a este propósito es el siguiente:
# Con cte_patient como (seleccione Pat_id, Pat_name, (Case cuando Pat_temp 100 luego 'Fever' End) Temperatura del paciente) Seleccione Pat_id, Pat_Name, Temperatura de CTE_Patient Where temperatura = 'fiebre' orden por pat_name;En esta consulta, hemos utilizado la instrucción "Case" sobre la variable de temperatura. La condición principal para esta declaración es que si la temperatura del paciente es menor o igual a 100, se considerará normal, mientras que si es más de 100, entonces el paciente tendrá fiebre. Después de eso, simplemente utilizamos la instrucción "Seleccionar" para mostrar el PAT_ID, PAT_NAME y la temperatura de todos esos pacientes de nuestra expresión de tabla común que tienen fiebre. Además, también hemos ordenado nuestros resultados alfabéticamente de acuerdo con el nombre del paciente, como se muestra en la imagen a continuación:
De la misma manera, si desea mostrar los nombres e ID de todos esos pacientes en la consola cuya temperatura corporal es normal, entonces debe modificar la consulta mencionada anteriormente de la siguiente manera:
# Con cte_patient como (seleccione Pat_id, Pat_name, (Case cuando Pat_temp 100 luego 'Fever' End) Temperatura del paciente) Seleccione Pat_id, Pat_Name, Temperatura de CTE_Patient Where temperation = 'Normal' orden por pat_name;Todos los pacientes de nuestra tabla "paciente" cuya temperatura corporal es normal se muestran en la imagen a continuación:
Conclusión:
Esta guía habló sobre el uso de CTE en PostgreSQL en Windows 10. Para dar más detalles sobre este uso, primero creamos un ejemplo simple y luego introdujimos cierta complejidad para que los lectores puedan comprender mejor cómo funciona CTE con las tablas PostgreSQL. Una vez que realice este ejemplo completo, podrá aprender la sintaxis básica de los CTE en PostgreSQL junto con algunos otros detalles técnicos, y luego, podrá usar las CTE de manera efectiva para que sus consultas se vean más simples y legibles.