Limitando o SELECT do SQL em diferentes Bancos de Dados
February 27th, 2009 | Published in Banco de Dados, Programação SQL | 1 Comment
Olá pessoal…
Atualmente tenho tido o privilégio de trabalhar com vários data bases, e com isso está dando para ver as diferenças de sintaxe, performance, ferramentas e demais coisas de um para outro.
Tenho mexido com Microsoft SQL, Postgres e Oracle.
Uma coisa que me chamou a atenção foi a maneira de limitar a consulta em cada um deles. Tenho feito bastante consultas limitadas pois ainda estou conhecendo a base de dados da empresa e não sei ao certo quantos registros tem certas tabelas. Para evitar que a coisa caia ou trave, faço consultas limitadas.
Repare as diferenças de um banco para outro abaixo:
SELECT * FROM tabela LIMIT 20
Essa é a sintaxe para o postgres, que acho que deve ser a mais conhecida por ser software livre e etc.
Basta adicionar o parâmetro LIMIT e passar o valor de máximo de registros que você quer.
SELECT TOP 20 * FROM tabela
Essa é a maneira como o Microsoft limita sua consulta.
Você adiciona o parâmetro TOP passando o valor do máximo de registros que você quer. Isso deve vir logo após o SELECT.
SELECT * FROM tabela WHERE ROWNUM < 20
E por último o Oracle.
Você deve usar o parâmetro ROWNUM junto a um operador (<, >, <=, >=, =) e em seguida o valor máximo de registros que você quer para sua consulta.
Traduzindo este exemplo acima ficaria mais ou menos assim:
Selecione tudo da tabela chamada ‘tabela’ onde o número de tuplas seja menor que 20
Por hoje é isso ai rapaziada. Valeu !
March 6th, 2009 at 19:01 (#)
Bacana cara, uma coisa que me ferrou bastante quando comecei a mexer em multíplos DBs, foi não só a forma que tu define o LIMIT, mas também a maneira que tu define o INIT, se tu quiser consultar a partir de um determinado registro.
No MySQL usa-se o
LIMIT inicio, limite, já no PGSQL ficaOFFSET inicio LIMIT limite.O DB2 então nem se fala, é uma confusão sem fim. Pra tu ter uma idéia, se tu quiser consultar a partir da primeira linha:
FETCH FIRST limite ROWS ONLY.Enfim, cada banco tem suas particularidades. Uma pena, poderiam todos seguir uma padrão, facilitaria um bocado.