Tutoriel SQL

ACCUEIL SQL Introduction SQL Syntaxe SQL Sélection SQL SQL Select Distinct SQL Où SQL et, ou, pas Tri SQL par Insertion SQL dans Valeurs nulles SQL Mise à jour SQL Supprimer SQL SQL Sélectionner Haut Min et Max SQL Nombre SQL, Moy, Somme J'aime SQL Caractères génériques SQL Entrée SQL SQL Entre Alias ​​SQL Jointures SQL Jointure interne SQL Jointure gauche SQL Jointure droite SQL Jointure complète SQL Auto-jointure SQL Union SQL Regrouper SQL par SQL ayant SQL existe SQL Tout, Tout SQL Sélectionner dans Insertion SQL dans la sélection Cas SQL Fonctions nulles SQL Procédures stockées SQL Commentaires SQL Opérateurs SQL

Base de données SQL

SQL Créer une base de données BD de suppression SQL Base de données de sauvegarde SQL Créer une table SQL Table de dépôt SQL Table de modification SQL Contraintes SQL SQL non nul SQL unique Clé primaire SQL Clé étrangère SQL Vérification SQL SQL par défaut Index SQL Incrément automatique SQL Dates SQL Vues SQL Injection SQL Hébergement SQL Types de données SQL

Références SQL

Mots clés SQL Fonctions MySQL Fonctions SQL Server Fonctions MS Access Référence rapide SQL

Exemples SQL

Exemples SQL Questionnaire SQL Exercices SQL Certificat SQL

Clause SQL TOP, LIMIT, FETCH FIRST ou ROWNUM


La clause SQL SELECT TOP

La SELECT TOPclause est utilisée pour spécifier le nombre d'enregistrements à retourner.

La SELECT TOPclause est utile sur les grandes tables avec des milliers d'enregistrements. Le renvoi d'un grand nombre d'enregistrements peut avoir un impact sur les performances.

Remarque : Tous les systèmes de base de données ne prennent pas en charge la SELECT TOPclause. MySQL prend en charge la LIMITclause permettant de sélectionner un nombre limité d'enregistrements, tandis qu'Oracle utilise and . FETCH FIRST n ROWS ONLYROWNUM

Syntaxe SQL Server/MS Access :

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

Syntaxe MySQL :

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

Syntaxe Oracle 12 :

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

Ancienne syntaxe Oracle :

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

Ancienne syntaxe Oracle (avec ORDER BY) :

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

Base de données de démonstration

Vous trouverez ci-dessous une sélection de la table "Clients" dans l'exemple de base de données 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


SQL TOP, LIMIT et FETCH FIRST Exemples

L'instruction SQL suivante sélectionne les trois premiers enregistrements de la table "Clients" (pour SQL Server/MS Access) :

Exemple

SELECT TOP 3 * FROM Customers;

L'instruction SQL suivante montre l'exemple équivalent pour MySQL :

Exemple

SELECT * FROM Customers
LIMIT 3;

L'instruction SQL suivante montre l'exemple équivalent pour Oracle :

Exemple

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

SQL TOP PERCENT Exemple

L'instruction SQL suivante sélectionne les 50 premiers % des enregistrements de la table "Clients" (pour SQL Server/MS Access) :

Exemple

SELECT TOP 50 PERCENT * FROM Customers;

L'instruction SQL suivante montre l'exemple équivalent pour Oracle :

Exemple

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

AJOUTER une CLAUSE WHERE

L'instruction SQL suivante sélectionne les trois premiers enregistrements de la table "Clients", où le pays est "Allemagne" (pour SQL Server/MS Access) :

Exemple

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

L'instruction SQL suivante montre l'exemple équivalent pour MySQL :

Exemple

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

L'instruction SQL suivante montre l'exemple équivalent pour Oracle :

Exemple

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