sql >> Databáze >  >> RDS >> Mysql

ROW_NUMBER v SQL – Vyberte Nejlepší příklad v SQL a SQL Server

SQL, neboli strukturovaný dotazovací jazyk, nám umožňuje shromažďovat data z databáze prostřednictvím dotazů. Umožňuje nám také vkládat, aktualizovat a mazat tato data.

V tomto blogovém příspěvku se zaměříme na to, jak získat data a omezit výsledky pomocí SQL.

Proč byste měli omezit výsledky dotazů SQL?

Databáze je obvykle obrovská sbírka dat. Někdy nepotřebujeme získat všechny výsledky. Pro omezení výsledků můžeme dotaz optimalizovat.

Omezení výsledků dotazů je důležité pro výkon DB. Načítání velkého výsledku, když to není vyžadováno, způsobuje dodatečné zatížení databáze a má dopad na uživatelskou zkušenost.

Jak omezit výsledky dotazů v SQL

Syntaxe je odlišná pro SQL Server, Oracle a MySQL pro omezení dat.

  • MySQL používá LIMIT .
  • ORACLE používá FETCH FIRST .
  • MS Access a SQL Server používají TOP .

Níže se podíváme na podrobné příklady, jak každý z nich funguje.

Ukázková databáze

Máme následující tabulku s názvem students s jejich podrobnostmi, jak můžete vidět níže:

ID Jméno Pohlaví
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

Jak omezit dotaz v MySQL

Níže je syntaxe pro MySQL.

SELECT  (expression)
FROM 
    table_name
LIMIT 5;

Jako příklad vybereme prvních 5 záznamů z tabulky.

Použijme naši tabulku students pro tuto ukázku.

-- fetch top 5 values from table

SELECT * FROM students
LIMIT 5;

Výstup:

Jak zkombinovat LIMIT s ORDER BY

Když zkombinujete LIMIT s ORDER BY, můžete získat smysluplnější výsledky. Můžeme to například použít k nalezení 5 nejlepších studentů, kteří dosáhli u zkoušky více než 70 %.

Pojďme si objednat náš stůl students se sloupcem name a z výsledku vyberte 5 nejlepších. Můžete to udělat takto:

SELECT * FROM students
order by name
LIMIT 5;

Výstup:

Jak omezit výsledky – syntaxe Oracle

Níže je uvedena ekvivalentní syntaxe pro náš první příklad v Oracle.

SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;

Ve starších verzích Oracle můžete použít ROWNUM k omezení počtu řádků vrácených dotazem.

Příklad:

SELECT * FROM 
students 
WHERE ROWNUM < 5;

Jak omezit výsledky v SQL – syntaxe MS Access

Níže je uvedena ekvivalentní syntaxe pro náš první příklad v MS Access.

SELECT TOP 5 * FROM students;

Zabalení

Funkce LIMIT může být velmi výkonná pro optimalizaci dotazů v kombinaci s řazením. Efektivní dotazy jsou v systému lehčí a pro uživatele rychlejší. Vždy se doporučuje OMEZIT výsledky tam, kde je to možné.



  1. Neo4j - Pusťte index pomocí Cypher

  2. Jak nastavit aktuální jazyk v SQL Server (T-SQL)

  3. Jak používat referenční kurzor Oracle z C# ODP.NET jako parametr ReturnValue bez použití uložené funkce nebo procedury?

  4. Jak převést případ řetězce v PostgreSQL