PostgreSQL Limite linhas

PostgreSQL Limite linhas
PostgreSQL lida com muitos recursos em relação ao armazenamento de dados e exibi -los para o usuário. Exibir dados limitados do banco de dados é necessário no caso de problemas de segurança se a autenticação do usuário for duvidosa ou no caso de perda de dados. Como sabemos que os dados estão presentes na forma de volumos. Portanto, para reduzir a visão das tabelas para o usuário, precisamos limitar as linhas especificando -as. A cláusula 'Limit' PostGresql é uma cláusula de opção da instrução 'select' que pode ser usada com outras cláusulas como 'laços', 'deslocamento', etc. Cada um deles fará parte de nossa discussão neste conteúdo. Vamos começar com a simples sintaxe da cláusula limite. Selecione * FROM ORDEM DE TABLE NOME POR LIMITE DE LIMITE

E no caso de 'deslocamento':

Selecione * da linha Limite de tabela Limpa Offset 'Linha para pular';

Cláusula de limite simples

Movendo -se em direção a exemplos do tópico em discussão. Considere uma tabela chamada "pratos". O conteúdo da tabela de até 3 linhas desde o início deve ser exibido como saída. E essa seleção é feita classificando os dados em linhas de acordo com a coluna de identificação. 'Limit' é a palavra -chave usada para controlar a visualização criada para o usuário na tabela. Em primeiro lugar, exibiremos todo o conteúdo da tabela 'pratos' usando um comando select

>> selecione * de pratos;

Agora aplicaremos a consulta para exibir as linhas até 3rd eu ia.

>> Selecione * a partir da ordem dos pratos por limite de identificação 3;

Através do snap, você pode ver a saída em que as duas últimas linhas são deduzidas devido à restrição limite que é aplicada à tabela.

Cláusula de limite com uma cláusula de deslocamento

O segundo exemplo envolve o uso de 'deslocamento' junto com a palavra -chave 'limite'. Esta cláusula pula/pula as fileiras do número de deslocamento 'nd'. A diferença entre o limite e a cláusula de deslocamento é que o limite conta o número até o qual queremos exibir os dados, enquanto o deslocamento remove essa linha ou linhas específicas da tabela, fornecendo o número de deslocamento no comando. Agora aplicaremos as duas cláusulas na consulta, por isso obtemos a saída desejada.

>> Selecione * a partir da ordem dos pratos por limite de identificação 3 deslocamento 1;

O comando acima mostra que o limite “3” é usado, o que significa que a tabela resultante conterá apenas 3 linhas na tabela e compensar “1” significa que a primeira linha será deduzida da saída. Portanto, de 5, apenas três linhas são exibidas devido ao limite e deslocamento.

Uso da cláusula limite com a cláusula de ordem

Além do limite, também podemos usar a cláusula de ordem para exibir dados da tabela. Isso funcionará para que todo o conteúdo seja organizado em uma ordem especificada na consulta. Então a parte do limite será considerada executada. Vamos dar uma olhada.

>> Selecione * a partir de pratos Order by Type Desc Limit 4;

Esta consulta descreve que o resultado é organizado em primeiro lugar após a coluna especificada 'Type'. Então, uma vez que as 5 linhas estiverem dispostas em frente à ordem alfabética do 'tipo', as 4 primeiras linhas são exibidas.

Limite como nulo

Se especificarmos a cláusula 'limite' como nula, ela não aplicará nenhuma alteração na tabela. Aqui exibimos apenas a coluna 'ID' apenas para verificar a eficácia da cláusula 'Limit'.

>> Selecione ID de pratos Limite NULL;

Laços… buscar primeiro

Este exemplo é o uso de "laços" na cláusula de limite. Isso ajuda a obter todos os dados que são usados ​​repetidamente em qualquer coluna da tabela. Para esse propósito específico, criaremos uma nova tabela primeiro que tenha uma única coluna de id

>> Crie a Tabela Tbl1 (em Int)

Em seguida, insira valores nele.

>> Insira nos valores de Tbl1 (1), (5), (4), (6);

Normalmente, quando introduzimos todas as colunas no momento da criação da tabela, mas aqui no caso de números aleatórios. Uma coluna chamada 'Numbers' é criada. Esta função é uma função interna para gerar os números aleatórios e cada número da coluna de identificação. Para esse fim, usamos uma declaração específica, 'alter'. Que adicionará uma coluna na tabela, como mostrado abaixo na imagem tirada.

>> ALTER TABELA TBL1 Adicionar números de coluna Numérico padrão aleatório ();

Da mesma forma, adicionamos mais algumas linhas à tabela. A tabela resultante é a seguinte.

Agora nesta tabela, aplicaremos a cláusula 'laços' com o fator “Fetch-primeiro”.

Se buscarmos as primeiras fileiras da tabela, o que geralmente acontece é que o PostGresql pausa trabalhando nos números de linha fixa quando chegarem os mesmos números. Para superar o problema, além de "laços", a cláusula "Ordem por" também é necessária porque, sem isso, o resultado será bastante aleatório. Agora aplique esta condição na mesa com uma consulta.

A parte 'Fetch First ”receberá todos os registros organizados em ordem crescente pela coluna de identificação. De acordo com o comando, as 5 primeiras linhas serão selecionadas.

Deslocamento com laços

Considere outra tabela chamada "Tecnologia". Aqui estamos interessados ​​em aplicar cláusulas Fetch_first, laços e compensação em um único comando. Esses três combinaram e não prometeram retornar exatamente o mesmo número de linhas que você especificou na consulta.

>> selecione * da tecnologia;

Aqui queremos especificar 2 linhas para buscar primeiro com um deslocamento de 3. Então, em primeiro lugar, todos os dados são organizados em ordem decrescente, então as três primeiras linhas são removidas; Portanto, recebemos as duas últimas linhas encomendadas pela coluna da tabela do modelo. A sintaxe simples é:

>> Selecione * FROM Nome da tabela Ordem por nome da coluna Desct Fetch First (n) linhas com deslocamento de laços (n);

Limite com uma subconeração

Este é um exemplo de limitar o número de linhas usando um sub-quadro à tabela denominada trabalhador. Você pode aplicar todos os comandos a uma única tabela. Mas, para explicar restrições diferentes, precisamos ter uma variedade de criação de tabela, que ainda não está disponível em uma única tabela. Então, a tabela de trabalhador tem os seguintes atributos.

>> selecione * dos trabalhadores;

Uma coisa que deve ser mantida em mente é usar a cláusula da Ordem por Somente com a Cláusula de Ties quando eles se combinam; Caso contrário, você precisar.

>> Selecione * de (Selecione * da Ordem do Trabalhador por City Desc Fetch das 4 primeiras linhas com laços) como Subq Order by City Desc, fname

Primeiro, a porção da subestoria é resolvida.

Conclusão

'PostGresql Limit lines' é uma solução para ocultar alguns dados do usuário devido a alguns motivos especificados. Usando 'Offset', 'Order Cláusula' e 'laços' com o conceito Fetch-primeiro é discutido para reduzir a ambiguidade de combinar todos eles em uma única declaração. Espero que este conteúdo o ajude a manusear mesas com a cláusula de limite.