Memperkenalkan klausa WHERE dan kondisi BETWEEN
The Structured Query Language (SQL) menyediakan pengguna basis data dengan kemampuan untuk membuat kueri yang disesuaikan untuk mengekstrak informasi dari basis data. Dalam artikel sebelumnya, kami menjelajahi penggalian informasi dari database menggunakan SQL SELECT queries . Mari kita memperluas diskusi itu dan menjelajahi bagaimana Anda dapat melakukan kueri lanjutan untuk mengambil data yang cocok dengan kondisi tertentu.
Mari kita pertimbangkan contoh berdasarkan database Northwind yang umum digunakan, yang sering dikirimkan dengan produk basis data sebagai tutorial.
Berikut adalah kutipan dari tabel Produk database:
ID Produk | Nama Produk | SupplierID | QuantityPerUnit | Patokan harga | UnitsInStock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 kotak x 20 tas | 18,00 | 39 |
2 | Chang | 1 | 24 - 12 oz botol | 19,00 | 17 |
3 | Syrup adas manis | 1 | 12 - 550 botol ml | 10,00 | 13 |
4 | Bumbu Cajun Chef Anton | 2 | 48 - 6 ons botol | 22,00 | 53 |
5 | Campuran Gumbo Chef Anton | 2 | 36 kotak | 21,35 | 0 |
6 | Penyebaran Boysenberry Nenek | 3 | 12 - 8 oz botol | 25,00 | 120 |
7 | Pir Kering Organik Paman Bob | 3 | 12 - 1 pon pkgs. | 30,00 | 15 |
Kondisi Batas Sederhana
Pembatasan pertama yang akan kami tempatkan pada permintaan kami melibatkan kondisi batas sederhana. Kita dapat menentukan ini di klausa WHERE dari query SELECT, menggunakan pernyataan kondisi sederhana yang dibangun dengan operator standar, seperti <,>,> =, dan <=.
Pertama, mari kita coba query sederhana yang memungkinkan kita untuk mengekstrak daftar semua produk dalam database yang memiliki UnitHarga lebih dari 20,00:
Ini menghasilkan daftar empat produk, seperti yang ditunjukkan di bawah ini:
ProductName UnitHarga ------- -------- Gumbo Mix Chef Anton 21.35 Bumbu Cajun Chef Anton 22.00 Nenek Boysenberry Menyebar 25.00 Paman Bob Organik Kering 30.00Kita juga dapat menggunakan klausa WHERE dengan nilai string. Ini pada dasarnya menyamakan karakter ke angka, dengan A mewakili nilai 1 dan Z yang mewakili nilai 26. Misalnya, kita bisa menampilkan semua produk dengan nama yang dimulai dengan U, V, W, X, Y atau Z dengan kueri berikut:
PILIH ProductName FROM produk WHERE ProductName> = 'T'Yang menghasilkan hasilnya:
ProductName ------- Pir Pisang Organik Uncle BobMengekspresikan Rentang menggunakan Boundary
Klausa WHERE juga memungkinkan kita untuk menerapkan kondisi jangkauan pada suatu nilai dengan menggunakan beberapa kondisi. Misalnya, jika kami ingin mengambil kueri kami di atas dan membatasi hasil untuk produk dengan harga antara 15.00 dan 20.00, kami dapat menggunakan kueri berikut:
SELECT ProductName, UnitPrice FROM products WHERE UnitHarga> 15.00 DAN UnitHarga <20,00Ini menghasilkan hasil yang ditunjukkan di bawah ini:
ProductName UnitHarga ------- -------- Chai 18.00 Chang 19.00Mengekspresikan Berkisar dengan ANTARA
SQL juga menyediakan sintaks antara sintaks yang mengurangi jumlah kondisi yang perlu kita sertakan dan membuat permintaan lebih mudah dibaca. Misalnya, alih-alih menggunakan dua kondisi WHERE di atas, kami dapat mengungkapkan kueri yang sama seperti:
PILIH Nama Produk, UnitHarga DARI produk DI MANA UnitHarga ANTARA 15.00 DAN 20.00Seperti halnya klausul kondisi lainnya, ANTARA bekerja dengan nilai string juga. Jika kami ingin membuat daftar semua negara yang dimulai dengan V, W atau X, kami dapat menggunakan kueri:
PILIH ProductName FROM produk WHERE ProductName ANTARA "A" dan "D"Yang menghasilkan hasilnya:
ProductName ------- Aniseed Syrup Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun SeasoningKlausa WHERE adalah bagian kuat dari bahasa SQL yang memungkinkan Anda untuk membatasi hasil ke nilai yang jatuh dalam rentang yang ditentukan. Ini sangat umum digunakan untuk membantu mengekspresikan logika bisnis dan harus menjadi bagian dari setiap toolkit database profesional.
Ini sering membantu untuk memasukkan klausul umum ke dalam prosedur yang tersimpan untuk membuatnya dapat diakses oleh mereka yang tidak memiliki pengetahuan SQL.