Esercitazione SQL

SQL HOME Introduzione SQL Sintassi SQL Seleziona SQL SQL Seleziona distinto SQL dove SQL e, o, no Ordina SQL per Inserisci SQL in Valori nulli SQL Aggiornamento SQL Elimina SQL SQL Seleziona in alto SQL Min e Max Conteggio SQL, media, somma Mi piace SQL Caratteri jolly SQL SQL In SQL tra Alias ​​SQL Join SQL Join interno SQL Join sinistro SQL SQL Right Join SQL Full Join SQL Self Join Unione SQL Raggruppamento SQL per SQL Avere SQL esiste SQL Qualsiasi, Tutti SQL Seleziona in Inserisci SQL in Seleziona Caso SQL Funzioni SQL Null Stored procedure SQL Commenti SQL Operatori SQL

Database SQL

SQL Crea DB SQL Drop DB DB di backup SQL SQL Crea tabella Tabella di rilascio SQL SQL Alter tabella Vincoli SQL SQL non nullo SQL unico Chiave primaria SQL Chiave esterna SQL Controllo SQL SQL predefinito Indice SQL Incremento automatico SQL Date SQL Viste SQL SQL Injection Hosting SQL Tipi di dati SQL

Riferimenti SQL

Parole chiave SQL Funzioni MySQL Funzioni di SQL Server Funzioni di accesso MS Riferimento rapido SQL

Esempi SQL

Esempi SQL Quiz SQL Esercizi SQL Certificato SQL

Clausola SQL TOP, LIMIT, FETCH FIRST o ROWNUM


La clausola SQL SELECT TOP

La SELECT TOPclausola viene utilizzata per specificare il numero di record da restituire.

La SELECT TOPclausola è utile su tabelle di grandi dimensioni con migliaia di record. La restituzione di un numero elevato di record può influire sulle prestazioni.

Nota: non tutti i sistemi di database supportano la SELECT TOPclausola. MySQL supporta la LIMITclausola per selezionare un numero limitato di record, mentre Oracle utilizza e . FETCH FIRST n ROWS ONLYROWNUM

Sintassi di SQL Server/MS Access:

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

Sintassi MySQL:

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

Sintassi di Oracle 12:

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

Sintassi Oracle precedente:

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

Sintassi Oracle precedente (con ORDER BY):

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

Database dimostrativo

Di seguito è riportata una selezione dalla tabella "Clienti" nel database di esempio 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


Esempi SQL TOP, LIMIT e FETCH FIRST

La seguente istruzione SQL seleziona i primi tre record dalla tabella "Clienti" (per SQL Server/MS Access):

Esempio

SELECT TOP 3 * FROM Customers;

La seguente istruzione SQL mostra l'esempio equivalente per MySQL:

Esempio

SELECT * FROM Customers
LIMIT 3;

La seguente istruzione SQL mostra l'esempio equivalente per Oracle:

Esempio

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

Esempio di PERCENTUALE SUPERIORE SQL

La seguente istruzione SQL seleziona il primo 50% dei record dalla tabella "Clienti" (per SQL Server/MS Access):

Esempio

SELECT TOP 50 PERCENT * FROM Customers;

La seguente istruzione SQL mostra l'esempio equivalente per Oracle:

Esempio

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

AGGIUNGERE una CLAUSOLA WHERE

La seguente istruzione SQL seleziona i primi tre record dalla tabella "Clienti", dove il paese è "Germania" (per SQL Server/MS Access):

Esempio

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

La seguente istruzione SQL mostra l'esempio equivalente per MySQL:

Esempio

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

La seguente istruzione SQL mostra l'esempio equivalente per Oracle:

Esempio

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