SQL ORDER BY
SQL ORDER BY 句は、データベースのテーブルに保存されているデータを並べ替えるために使用されます。 。並べ替えは、昇順、降順、またはテーブルの複数の列に基づいて行うことができます 。
通常、デフォルトの並べ替え順序は昇順です。
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
以下は、一般的なORDERBY句の構文です。
例:
次の顧客について考えてみましょう。 テーブル。
ID | 名前 | 年齢 | アドレス | 給与 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
上記のクエリは、NAME列とSALARY列に基づいてすべてのレコードを昇順で並べ替えます。
出力:
ID | 名前 | 年齢 | アドレス | 給与 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
上記のクエリは、NAME列に基づいて、テーブル内のすべてのレコードを降順で並べ替えます。
出力:
ID | 名前 | 年齢 | アドレス | 給与 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
SQLORDERBY句にはさまざまなトピックがあります。つまり、次のとおりです。
- ASCによるSQLの注文 –データを昇順で並べ替えます
- SQL ORDER BY DESC –データを降順で並べ替えます
- ランダムによるSQLの順序 –ランダムデータを並べ替えます
- SQL ORDER BY LIMIT –データベースから限られたデータを選択します
- 複数の列によるSQLの順序– 複数の列に基づいてデータを並べ替えます。
それぞれについて詳しく説明しましょう。
SQL ORDER BY ASC
ASCによるSQLORDER 句は、いくつかの列に基づいてデータを昇順で並べ替えます。通常、デフォルトの並べ替え順序は昇順です。
例:
次の顧客について考えてみましょう。 テーブル。
ID | 名前 | 年齢 | アドレス | 給与 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
上記のクエリは、NAME列とSALARY列に基づいてすべてのレコードを昇順で並べ替えます。
出力:
ID | 名前 | 年齢 | アドレス | 給与 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
SQL ORDER BY DESC
SQL ORDER BY DESC句は、いくつかの列に基づいてデータを降順で並べ替えます。
例:
次の顧客について考えてみましょう。 テーブル。
ID | 名前 | 年齢 | アドレス | 給与 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
上記のクエリは、NAME列に基づいて、テーブル内のすべてのレコードを降順で並べ替えます。
出力:
ID | 名前 | 年齢 | アドレス | 給与 |
2 | シヴァティワリ | 22 | ボパール | 21000 |
4 | Ritesh yadav | 36 | アザンガル | 26000 |
6 | マヘーシュシャルマ | 26 | マトゥラ | 22000 |
1 | ヒマニグプタ | 21 | モディナガー | 22000 |
5 | Balwant singh | 45 | バラナシ | 36000 |
3 | Ajeet bhargav | 45 | メーラト | 65000 |
SQL ORDER BY LIMIT
SQL ORDER BY LIMIT句は、データベーステーブルから特定の数のレコードを取得するのに役立ちます。これは通常、特定の条件を満たすタプルが多数ある状況で使用されます。取得するレコード数の上限を設定します。
SQLでLIMIT句を使用するには、 ROWNUMを使用する必要があります 条項付き。
注:LIMIT句はすべてのSQLバージョンでサポートされているわけではないことに注意してください。
この句は、 SQL 2008 OFFSETを使用して指定できます。 またはFETCHFIRST句 。
例:
次の学生について考えてみましょう。 テーブル。
RollNo | 名前 | グレード |
12001 | Aditya | 9 |
12002 | サヒル | 6 |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
12006 | アン | 10 |
12007 | ユスフ | 7 |
12008 | アレックス | 5 |
SELECT * FROM Student LIMIT 5;
上記のクエリは、Studentテーブルから上位5人の学生のみを返します。
出力:
12001 | Aditya | 9 |
12002 | サヒル | 6 |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
LIMIT句はORDERBY句と一緒に使用することもできます。
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
上記のクエリは、成績が最も高い上位3人の生徒を降順で返します。
出力:
12006 | アン | 10 |
12001 | Aditya | 9 |
12004 | ロビン | 9 |
LIMIT演算子は、条件ステートメントを使用せずに制限されたデータを取得する必要がある状況で特に役立ちます。
LIMIT演算子はOFFSET演算子と一緒に使用することもできます。
OFFSET値はゼロより大きい必要があることに注意してください 、および負の値にすることはできません。負の値を指定すると、エラーが返されます。
例:
同じStudentテーブルについて考えてみましょう。
RollNo | 名前 | グレード |
12001 | Aditya | 9 |
12002 | サヒル | 6 |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
12006 | アン | 10 |
12007 | ユスフ | 7 |
12008 | アレックス | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
このクエリは、上位2つのエントリを除くStudentテーブルの上位5つのレコードを返します。
出力:
RollNo | 名前 | グレード |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
12006 | アン | 10 |
12007 | ユスフ | 7 |
すべて制限
LIMIT ALLとして知られるLIMITに似た別の句があります 。 LIMIT ALL句は制限を設けず、テーブルのすべてのエントリを返します。
例:
同じStudentテーブルをもう一度考えてみましょう。
RollNo | 名前 | グレード |
12001 | Aditya | 9 |
12002 | サヒル | 6 |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
12006 | アン | 10 |
12007 | ユスフ | 7 |
12008 | アレックス | 5 |
クエリ:
SELECT * FROM Student LIMIT ALL;
RollNo | 名前 | グレード |
12001 | Aditya | 9 |
12002 | サヒル | 6 |
12003 | ヘマ | 8 |
12004 | ロビン | 9 |
12005 | シタ | 7 |
12006 | アン | 10 |
12007 | ユスフ | 7 |
12008 | アレックス | 5 |
SQLORDERBY複数の列
複数の列によるSQLORDER クエリで指定された複数の列を使用して並べ替えることにより、列のデータエントリを返します。
ORDERBY句の後に指定された列名の順序に基づいてデータをソートします。列の名前は、ユーザーが並べ替えを実行したい対応する順序で追加する必要があります。
複数の列名は、コンマ(、)を使用して区切ることで追加できます。また、ASCまたはDESCキーワードを使用して、並べ替えの順序を指定できます。
例:
次の従業員について考えてみましょう id、first_name、last_name、salaryの4つの列を持つテーブル。
id | first_name | last_name | 給与 |
1 | リサ | ウルマン | 3000 |
2 | エイダ | ミュラー | 2400 |
3 | トーマス | 緑 | 2400 |
4 | マイケル | ミュラー | 3000 |
5 | メアリー | 緑 | 2400 |
クエリ:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
出力:
id | first_name | last_name | 給与 |
4 | マイケル | M uller | 3000 |
1 | リサ | U lman | 3000 |
3 | トーマス | G reen | 2400 |
5 | メアリー | G reen | 2400 |
2 | エイダ | M uller | 2400 |
したがって、最初に、出力は給与の降順でソートされ、次に姓の昇順でソートされています。 ASCまたはDESCが言及されていない場合、デフォルトでは、両方の列が昇順で並べ替えられることに注意してください。
結論
したがって、上記は、データベースに対して特定の操作を実行し、データを取得するために開発者が毎日使用する、最も重要で頻繁に使用されるORDERBY句の一部です。これらの句は、個別に使用することも、データベース操作を実行するために組み合わせて使用することもできます。