SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite Dipesan Oleh

Ringkasan :dalam tutorial ini, Anda akan mempelajari cara mengurutkan kumpulan hasil kueri menggunakan SQLite ORDER BY klausa.

Pengantar SQLite ORDER BY klausa

SQLite menyimpan data dalam tabel dalam urutan yang tidak ditentukan. Ini berarti bahwa baris dalam tabel mungkin atau mungkin tidak dalam urutan yang dimasukkan.

Jika Anda menggunakan SELECT pernyataan untuk meminta data dari tabel, urutan baris dalam kumpulan hasil tidak ditentukan.

Untuk mengurutkan kumpulan hasil, tambahkan ORDER BY klausa ke SELECT pernyataan sebagai berikut:

SELECT
   select_list
FROM
   table
ORDER BY
    column_1 ASC,
    column_2 DESC;Code language: SQL (Structured Query Language) (sql)

ORDER BY klausa muncul setelah FROM ayat. Ini memungkinkan Anda untuk mengurutkan kumpulan hasil berdasarkan satu atau beberapa kolom dalam urutan menaik atau menurun.

Dalam sintaks ini, Anda menempatkan nama kolom yang ingin Anda urutkan setelah ORDER BY klausa diikuti oleh ASC atau DESC kata kunci.

  • ASC kata kunci berarti naik.
  • Dan DESC kata kunci berarti turun.

Jika Anda tidak menentukan ASC atau DESC kata kunci, SQLite mengurutkan kumpulan hasil menggunakan ASC pilihan. Dengan kata lain, ini mengurutkan hasil yang diatur dalam urutan menaik secara default.

Jika Anda ingin mengurutkan hasil yang ditetapkan oleh beberapa kolom, Anda menggunakan koma (,) untuk memisahkan dua kolom. ORDER BY klausa mengurutkan baris menggunakan kolom atau ekspresi dari kiri ke kanan. Dengan kata lain, ORDER BY klausa mengurutkan baris menggunakan kolom pertama dalam daftar. Kemudian, ia mengurutkan baris yang diurutkan menggunakan kolom kedua, dan seterusnya.

Anda dapat mengurutkan kumpulan hasil menggunakan kolom yang tidak muncul dalam daftar pilih SELECT klausa.

SQLite ORDER BY contoh klausa

Mari kita ambil tracks tabel dalam database sampel untuk demonstrasi.

Misalkan, Anda ingin mendapatkan data dari kolom nama, milidetik, dan id album, Anda menggunakan pernyataan berikut:

SELECT
	name,
	milliseconds, 
        albumid
FROM
	tracks;Code language: SQL (Structured Query Language) (sql)

Cobalah

SELECT pernyataan yang tidak menggunakan ORDER BY klausa mengembalikan kumpulan hasil yang tidak dalam urutan apa pun.

Misalkan Anda ingin mengurutkan kumpulan hasil berdasarkan AlbumId kolom dalam urutan menaik, Anda menggunakan pernyataan berikut:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid ASC;Code language: SQL (Structured Query Language) (sql)

Cobalah

Kumpulan hasil sekarang diurutkan berdasarkan AlbumId kolom dalam urutan menaik seperti yang ditunjukkan pada tangkapan layar.

SQLite menggunakan ASC secara default sehingga Anda dapat menghilangkannya dalam pernyataan di atas sebagai berikut:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid;

Cobalah

Misalkan Anda ingin mengurutkan hasil yang diurutkan (berdasarkan AlbumId ) di atas dengan Milliseconds kolom dalam urutan menurun. Dalam hal ini, Anda perlu menambahkan Milliseconds kolom ke ORDER BY klausa sebagai berikut:

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	albumid ASC,
        milliseconds DESC;Code language: SQL (Structured Query Language) (sql)

Cobalah

SQLite mengurutkan baris berdasarkan AlbumId kolom dalam urutan menaik terlebih dahulu. Kemudian, itu mengurutkan hasil yang diurutkan yang ditetapkan oleh Milliseconds kolom dalam urutan menurun.

Jika Anda melihat trek album dengan AlbumId 1, Anda menemukan bahwa urutan trek berubah di antara dua pernyataan.

SQLite ORDER BY dengan posisi kolom

Alih-alih menentukan nama kolom, Anda dapat menggunakan posisi kolom di ORDER BY klausa.

Misalnya, pernyataan berikut mengurutkan trek berdasarkan albumid (kolom ke-3) dan milliseconds (kolom ke-2) dalam urutan menaik.

SELECT
	name,
	milliseconds, 
	albumid
FROM
	tracks
ORDER BY
	 3,2;Code language: SQL (Structured Query Language) (sql)

Cobalah

Angka 3 dan 2 mengacu pada AlbumId dan Milliseconds dalam daftar kolom yang muncul di SELECT klausa.

Mengurutkan NULL

Di dunia database, NULL itu spesial. Ini menunjukkan bahwa informasi yang hilang atau data tidak berlaku.

Misalkan Anda ingin menyimpan ulang tahun seorang artis dalam sebuah tabel. Pada saat menyimpan rekaman artis, Anda tidak memiliki informasi ulang tahun.

Untuk mewakili informasi ulang tahun yang tidak diketahui dalam database, Anda dapat menggunakan tanggal khusus seperti 01.01.1900 atau '' string kosong. Namun, kedua nilai ini tidak secara jelas menunjukkan bahwa tanggal lahir tidak diketahui.

NULL diciptakan untuk mengatasi masalah ini. Alih-alih menggunakan nilai khusus untuk menunjukkan bahwa informasi tersebut hilang, NULL digunakan.

NULL istimewa karena Anda tidak dapat membandingkannya dengan nilai lain. Sederhananya, jika kedua informasi tersebut tidak diketahui, Anda tidak dapat membandingkannya.

NULL bahkan tidak bisa dibandingkan dengan dirinya sendiri; NULL tidak sama dengan dirinya sendiri jadi NULL = NULL selalu menghasilkan false.

Saat menyortir, SQLite menganggap NULL lebih kecil dari nilai lainnya.

Artinya NULL akan muncul di awal kumpulan hasil jika Anda menggunakan ASC atau di akhir kumpulan hasil saat Anda menggunakan DESC.

SQLite 3.30.0 menambahkan NULLS FIRST dan NULLS LAST pilihan ke ORDER BY ayat. NULLS FIRST opsi menentukan bahwa NULL akan muncul di awal set hasil sementara NULLS LAST pilihan tempatkan NULL di akhir kumpulan hasil.

Contoh berikut menggunakan ORDER BY klausa untuk mengurutkan trek berdasarkan komposer:

SELECT 
    TrackId, 
    Name, 
    Composer 
FROM 
   tracks
ORDER BY 
   Composer;Code language: SQL (Structured Query Language) (sql)

Pertama, Anda melihat bahwa NULL muncul di awal kumpulan hasil karena SQLite memperlakukannya sebagai nilai terendah. Saat Anda menggulir ke bawah hasilnya, Anda akan melihat nilai lain:

Contoh berikut menggunakan NULLS LAST opsi untuk menempatkan NULL setelah nilai lain:

SELECT 
    TrackId, 
    Name, 
    Composer 
FROM 
    tracks
ORDER BY 
    Composer NULLS LAST;Code language: SQL (Structured Query Language) (sql)

Jika Anda menggulir ke bawah output, Anda akan melihat bahwa NULL ditempatkan di akhir kumpulan hasil:

Dalam tutorial ini, Anda telah belajar bagaimana menggunakan SQLite ORDER BY klausa untuk mengurutkan kumpulan hasil menggunakan satu kolom, beberapa kolom dalam urutan menaik dan menurun.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.util.MissingFormatArgumentException:Penentu format:s

  2. data yang dimuat dari database SQLitE tidak disimpan di kelas model ArrayList android

  3. Tambahkan Kolom yang Dihasilkan ke Tabel di SQLite

  4. Cara membaca nomor versi dari file database di Android yang ditempatkan di folder aset

  5. Android- Haruskah saya memeriksa apakah tabel ada di SqliteHelper.onCreate()?