Filas de límite de PostgreSQL

Filas de límite de PostgreSQL
PostgreSQL trata con muchas características con respecto al almacenamiento de datos y mostrándolo al usuario. Mostrar datos limitados de la base de datos es necesario en el caso de problemas de seguridad si la autenticación del usuario es dudosa o en el caso de la pérdida de datos. Como sabemos, que los datos están presentes en forma de bultos. Entonces, para reducir la vista de las tablas al usuario, necesitamos limitar las filas especificándolas. La cláusula de PostgreSQL 'Limit' es una cláusula de opción de la declaración 'Seleccionar' que se puede usar con otras cláusulas como 'lazos', 'compensación', etc. Cada uno de ellos formará parte de nuestra discusión en este contenido. Comencemos con la sintaxis simple de la cláusula de límite. Seleccionar * de la fila de límite de nombre de nombre de la tabla

Y en el caso de 'compensación':

Seleccione * de la compensación de la fila de límite de nombre de tabla 'fila para omitir';

Cláusula de límite simple

Avanzar hacia ejemplos del tema en discusión. Considere una mesa llamada "platos". El contenido de la tabla hasta 3 filas desde el principio se mostrará como salida. Y esta selección se realiza clasificando los datos en filas de acuerdo con la columna de identificación. 'Limit' es la palabra clave utilizada para controlar la vista creada para el usuario en la tabla. En primer lugar, mostraremos todo el contenido de la tabla 'platos' utilizando un comando seleccionar

>> seleccionar * de platos;

Ahora aplicaremos la consulta para mostrar las filas de hasta 3rd identificación.

>> seleccionar * de los platos orden por límite de identificación 3;

A través del SNAP, puede ver la salida en la que se deducen las dos últimas líneas debido a la restricción límite que se aplica a la tabla.

Cláusula de límite con una cláusula de compensación

El segundo ejemplo implica el uso de 'compensación' junto con la palabra clave 'límite'. Esta cláusula salta/omita las filas del número de compensación 'en nth'. La diferencia entre el límite y la cláusula de desplazamiento es que el límite cuenta el número hasta el que queremos mostrar los datos, mientras que la compensación elimina esa fila o filas particulares de la tabla al proporcionar el número de desplazamiento en el comando. Ahora aplicaremos ambas cláusulas a la consulta, por lo que obtenemos la salida deseada.

>> seleccionar * de los platos orden por límite de identificación 3 desplazamiento 1;

El comando anterior muestra que se utiliza el límite "3", lo que significa que la tabla resultante contendrá solo 3 filas en la tabla, y compensación "1" significa que la primera fila se deducirá desde la salida. Por lo tanto, desde 5, solo se muestran tres filas debido al límite y desplazamiento.

Uso de la cláusula límite con la cláusula de orden

Además del límite, también podemos usar la cláusula de pedido para mostrar los datos de la tabla. Esto funcionará para que todo el contenido se organice en un pedido especificado en la consulta. Entonces la porción límite se considerará ejecutada. Echemos un vistazo.

>> Seleccionar * de los platos orden por tipo Desc Límite 4;

Esta consulta muestra que el resultado se organiza en primer lugar después de la columna especificada 'Tipo'. Entonces, una vez que las 5 filas están dispuestas frente al orden alfabético del 'tipo', se muestran las primeras 4 filas.

Límite como nulo

Si especificamos la cláusula de 'límite' como nula, no aplica ningún cambio en la tabla. Aquí hemos mostrado solo la columna de 'ID' solo para verificar la efectividad de la cláusula 'Límite'.

>> seleccione ID del límite de platos nulo;

TIES ... PRISA PRIMERO

Este ejemplo es el uso de "lazos" en la cláusula de límite. Esto ayuda a obtener todos los datos que incluso se usan repetidamente en cualquier columna de la tabla. Para ese propósito específico, primero crearemos una nueva tabla que tenga una sola columna de identificación

>> Crear tabla tbl1 (en int)

Luego inserte valores en él.

>> Insertar en los valores de TBL1 (1), (5), (4), (6);

Normalmente cuando presentamos todas las columnas en el momento de la creación de la tabla, pero aquí en el caso de números aleatorios. Se crea una columna llamada 'números'. Esta función es una función incorporada para generar los números aleatorios y cada número de la columna de identificación. Para este propósito, utilizamos una declaración específica, 'alter'. Que agregará una columna en la tabla como se muestra a continuación en la imagen tomada.

>> ALTER TABLA TBL1 Agregar números de columna Numérico predeterminado Random ();

Del mismo modo, agregamos algunas filas más a la mesa. La tabla resultante es la siguiente.

Ahora en esta tabla, aplicaremos la cláusula de 'lazos' con el factor "Fetch-First".

Si obtenemos las primeras filas de la tabla, lo que suele suceder es que PostgreSQL hace una pausa para trabajar en los números de fila fija cuando llegan los mismos números. Para superar el problema, además de "lazos", la cláusula "Orden por" también se necesita porque sin eso, el resultado será bastante aleatorio. Ahora aplique esta condición sobre la mesa con una consulta.

La parte 'Fetch First ”obtendrá todos los registros organizados en orden ascendente por la columna de identificación. Según el comando, se seleccionarán las primeras 5 filas.

Compensación con lazos

Considere otra tabla llamada "Tecnología". Aquí estamos interesados ​​en aplicar las cláusulas Fetch_First, lazos y Offset en un solo comando. Estos tres se combinaron y no prometieron devolver exactamente la misma cantidad de filas que ha especificado en la consulta.

>> seleccionar * de la tecnología;

Aquí queremos especificar 2 filas para Fetch-First con un desplazamiento de 3. Entonces, en primer lugar, todos los datos se organizan en orden descendente, luego se eliminan las primeras tres filas; Por lo tanto, obtenemos las dos últimas filas ordenadas por la columna de la tabla del modelo. La sintaxis simple es:

>> seleccionar * de la tabla ordenar el nombre de la columna nombre Desc Fetch First (n) Filas con compensación de lazos (n);

Límite con una subconsulta

Este es un ejemplo de limitar el número de filas mediante el uso de una subconsulta a la tabla llamada trabajador. Puede aplicar todos los comandos a una sola tabla. Pero para explicar diferentes restricciones, necesitamos tener una variedad en la creación de mesa, que aún no está disponible en una sola tabla. Entonces, la tabla de trabajadores tiene los siguientes atributos.

>> seleccionar * de los trabajadores;

Una cosa que debe tenerse en cuenta es usar el orden por cláusula solo con la cláusula de lazos cuando se adaptan entre sí; De lo contrario, debe usar un subcreidor si desea filas específicas con otra columna en la tabla.

>> Seleccione * de (Seleccione * de la orden de trabajadores por City Desc Retching de las primeras 4 filas con lazos) como orden subq por la ciudad Desc, fname

Primero, se resuelve la porción de subcontrol.

Conclusión

'PostgreSQL Limit Rows' es una solución para ocultar algunos datos del usuario debido a algunas razones especificadas. Mediante el uso de 'compensación', 'cláusula de orden' y 'lazos' con el concepto de Fetch-primero se discute para reducir la ambigüedad de combinarlos en una sola declaración. Espero que este contenido te ayude a manejar tablas con la cláusula de límite.