sql >> Database teknologi >  >> RDS >> Mysql

ROW_NUMBER i SQL – Vælg Top Eksempel i SQL og SQL Server

SQL, eller struktureret forespørgselssprog, lader os indsamle data fra en database gennem forespørgsler. Det giver os også mulighed for at indsætte, opdatere og slette disse data.

I dette blogindlæg vil vi fokusere på, hvordan man henter data og begrænser resultaterne ved hjælp af SQL.

Hvorfor skal du begrænse SQL-forespørgselsresultater?

En database er normalt en enorm samling af data. Nogle gange behøver vi ikke at hente alle resultaterne. For at begrænse resultaterne kan vi optimere forespørgslen.

Begrænsning af forespørgselsresultater er vigtig for DB-ydeevne. At hente et stort resultat, når det ikke er påkrævet, medfører ekstra belastning af databasen og påvirker brugeroplevelsen.

Sådan begrænser du forespørgselsresultater i SQL

Syntaksen er anderledes for SQL Server, Oracle og MySQL for at begrænse dataene.

  • MySQL bruger LIMIT .
  • ORACLE bruger FETCH FIRST .
  • MS Access og SQL Server bruger TOP .

Vi vil se eksempler på, hvordan hver enkelt fungerer i detaljer nedenfor.

Demodatabase

Vi har følgende tabel med navnet students med deres detaljer, som du kan se nedenfor:

ID Navn Køn
1 Ryan M
2 Joanna F
3 Miranda Andersen F
4 Dalia Mata F
5 Lilianna Boyd F
6 Lexie Sharp M
7 Jazlene Cordova F
8 Brycen Werner M
9 Karissa Turner F
10 Aisha Dodson F
11 Aydin Reeves M

Sådan begrænser du en forespørgsel i MySQL

Nedenfor er syntaksen for MySQL.

SELECT  (expression)
FROM 
    table_name
LIMIT 5;

Som et eksempel vil vi vælge de første 5 poster fra tabellen.

Lad os bruge vores tabel students til denne demonstration.

-- fetch top 5 values from table

SELECT * FROM students
LIMIT 5;

Output:

Sådan kombinerer du LIMIT med ORDER BY

Når du kombinerer LIMIT med ORDER BY, kan du få mere meningsfulde resultater. For eksempel kan vi bruge dette til at finde de 5 bedste studerende, der scorede mere end 70 % på deres eksamen.

Lad os bestille vores bord students med kolonnen name og vælg top 5 fra resultatet. Du kan gøre det sådan her:

SELECT * FROM students
order by name
LIMIT 5;

Output:

Sådan begrænser du resultater – Oracle-syntaks

Nedenfor er den tilsvarende syntaks for vores første eksempel i Oracle.

SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;

I ældre versioner af Oracle kan du bruge ROWNUM til at begrænse antallet af rækker, der returneres af en forespørgsel.

Eksempel:

SELECT * FROM 
students 
WHERE ROWNUM < 5;

Sådan begrænser du resultater i SQL – MS Access-syntaks

Nedenfor er den tilsvarende syntaks for vores første eksempel i MS Access.

SELECT TOP 5 * FROM students;

Afslutning

LIMIT-funktionaliteten kan være meget effektiv til forespørgselsoptimering, når den kombineres med sortering. Effektive forespørgsler er lettere på systemet og hurtige for brugeren. Det anbefales altid at BEGRÆNSE resultaterne, hvor det er relevant.



  1. Kan jeg bruge ADFS 2.0 til at godkende visse brugere mod SQL Server?

  2. SQL Server 2012 kolonneidentitetsstigning springer fra 6 til 1000+ på 7. indtastning

  3. PyInstaller, spec fil, ImportError:Intet modul med navnet 'blah'

  4. Skal en MAMP returnere ::1 som IP på localhost?