Tutorial SQL

SQL INÍCIO Introdução SQL Sintaxe SQL Seleção SQL SQL Select Distinto SQL Onde SQL E, Ou, Não Ordem SQL por SQL Inserir em Valores Nulos SQL Atualização SQL Excluir SQL SQL Select Top SQL Mínimo e Máximo Contagem SQL, Média, Soma Como SQL Curingas SQL Entrada SQL SQL entre Alias ​​SQL Junções SQL SQL Inner Join SQL Left Join Associação à direita do SQL Associação completa SQL Auto-junção SQL União SQL SQL Agrupar por SQL tendo SQL existe SQL Qualquer, Todos SQL Selecionar em SQL Inserir na seleção Caso SQL Funções Nulas SQL Procedimentos armazenados SQL Comentários SQL Operadores SQL

Banco de dados SQL

SQL Criar banco de dados SQL Drop DB Banco de dados de backup SQL SQL Criar Tabela Tabela de descarte de SQL Tabela de alteração SQL Restrições SQL SQL não nulo SQL exclusivo Chave Primária SQL Chave estrangeira SQL Verificação SQL Padrão SQL Índice SQL Incremento automático de SQL Datas SQL Visualizações SQL Injeção SQL Hospedagem SQL Tipos de dados SQL

Referências SQL

Palavras-chave SQL Funções do MySQL Funções do SQL Server Funções de acesso MS Referência Rápida SQL

Exemplos SQL

Exemplos SQL Teste SQL Exercícios de SQL Certificado SQL

Cláusula SQL TOP, LIMIT, FETCH FIRST ou ROWNUM


A cláusula SQL SELECT TOP

A SELECT TOPcláusula é usada para especificar o número de registros a serem retornados.

A SELECT TOPcláusula é útil em tabelas grandes com milhares de registros. Retornar um grande número de registros pode afetar o desempenho.

Nota: Nem todos os sistemas de banco de dados suportam a SELECT TOPcláusula. O MySQL suporta a LIMITcláusula para selecionar um número limitado de registros, enquanto o Oracle usa e . FETCH FIRST n ROWS ONLYROWNUM

SQL Server / Sintaxe do MS Access:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

Sintaxe do MySQL:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Sintaxe do Oracle 12:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

Sintaxe Oracle mais antiga:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Sintaxe Oracle mais antiga (com ORDER BY):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;

Banco de dados de demonstração

Abaixo está uma seleção da tabela "Clientes" no banco de dados de exemplo Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


Exemplos SQL TOP, LIMIT e FETCH FIRST

A seguinte instrução SQL seleciona os três primeiros registros da tabela "Clientes" (para SQL Server/MS Access):

Exemplo

SELECT TOP 3 * FROM Customers;

A seguinte instrução SQL mostra o exemplo equivalente para MySQL:

Exemplo

SELECT * FROM Customers
LIMIT 3;

A seguinte instrução SQL mostra o exemplo equivalente para Oracle:

Exemplo

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

Exemplo SQL TOP PERCENT

A seguinte instrução SQL seleciona os primeiros 50% dos registros da tabela "Clientes" (para SQL Server/MS Access):

Exemplo

SELECT TOP 50 PERCENT * FROM Customers;

A seguinte instrução SQL mostra o exemplo equivalente para Oracle:

Exemplo

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

ADICIONAR UMA CLÁUSULA WHERE

A seguinte instrução SQL seleciona os três primeiros registros da tabela "Clientes", onde o país é "Alemanha" (para SQL Server/MS Access):

Exemplo

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

A seguinte instrução SQL mostra o exemplo equivalente para MySQL:

Exemplo

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

A seguinte instrução SQL mostra o exemplo equivalente para Oracle:

Exemplo

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;