3.1 Membandingkan nilai: <, >, =, <>
Salah satu kata kunci paling umum yang digunakan saat menulis kueri SQL adalah WHERE
. Dengan bantuannya kami memberi tahu MySQL baris tabel mana yang ingin kami filter (pilih).
Setelah kata kunci, WHERE
Anda dapat menulis kondisi yang sangat rumit dan rumit. Jadi, operasi apa yang dapat dikandung oleh kondisi ini?
Operator | Keterangan | Contoh |
---|---|---|
< | Lebih sedikit | gaji <40000 |
> | Lagi | gaji > 100000 |
<= | Kurang atau sama | usia <= 25 |
>= | Lebih atau sama | usia >= 18 |
= | Sama dengan | pekerjaan = 'Programmer' |
<>, != | Tidak sama | Tahun(join_date) != 2015 |
Berbeda dengan bahasa Jawa, untuk kesetaraan yang ketat, satu karakter yang sama digunakan di sini, dan bukan dua .
Jika Anda ingin memeriksa apakah nilainya tidak sama, maka ini dapat dilakukan dengan dua cara: <>
baik !=
Pendekatan pertama digunakan dalam bahasa seperti Pascal, yang kedua tipikal untuk bahasa seperti C ++ dan Jawa.
Untuk penugasan di SQL, digunakan :=
seperti di Pascal, tetapi penugasan itu sendiri sangat jarang digunakan.
Mari tulis kueri tempat kami menampilkan semua karyawan yang tidak dipekerjakan pada tahun 2015.
SELECT * FROM employee WHERE YEAR(join_date) != 2015
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmer | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | Programmer | 80.000 | 23 | 12-08-2013 |
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
6 | Vaska | kucing | 1.000 | 3 | 01-01-2018 |
3.2 Operasi logis DAN, ATAU, BUKAN
Anda juga dapat WHERE
menggunakan operasi logis AND
, OR
dan NOT
. Dan mereka ditulis persis seperti yang saya jelaskan di sini. Tidak ada &&
, ||
atau!
Mari kita tulis kueri SQL di mana kita memilih karyawan yang berusia di atas 20 tahun dan menerima gaji kurang dari 50 ribu.
SELECT * FROM employee WHERE age > 20 AND salary < 50000
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
5 | Kirienko Anastasia | Manajer kantor | 40.000 | 25 | 10-10-2015 |
Terlalu mudah. Mari tulis kueri di mana kami memilih karyawan yang menerima lebih dari 100 ribu dan tidak bekerja sebagai direktur:
SELECT * FROM employee WHERE salary >= 100000 AND NOT occupation = 'Director'
Di sini kami secara khusus !=
menggunakan operator alih-alih simbol NOT
.
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmer | 100.000 | 25 | 30-06-2012 |
3.3 ANTARA: rentang nilai
Juga di SQL ada operator khusus BETWEEN
yang dapat digunakan untuk memeriksa apakah suatu variabel terletak di antara dua nilai. Operator ini digunakan di dalam ekspresi boolean. Bentuk umum dari operator tersebut adalah:
variable BETWEEN bottom line AND top_bound
Dalam hal ini, tidak seperti bahasa Jawa, batas bawah dan atas termasuk dalam interval yang diizinkan.
Mari tulis contoh di mana kita memilih semua karyawan dengan gaji dari 40K hingga 100K. Permintaan akan terlihat seperti:
SELECT * FROM employee WHERE salary BETWEEN 40000 AND 100000
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmer | 100.000 | 25 | 30-06-2012 |
2 | Petrov Petr | Programmer | 80.000 | 23 | 12-08-2013 |
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
5 | Kirienko Anastasia | Manajer kantor | 40.000 | 25 | 10-10-2015 |
Operator BETWEEN
tidak hanya mendukung tipe numerik, tetapi juga tipe tanggal dan bahkan string . Dalam hal bekerja dengan string, urutan leksikografis digunakan: aaba datang sebelum aabb
3.4 DI: daftar nilai
Selain itu, SQL memiliki operator khusus IN
yang dapat digunakan untuk memeriksa apakah suatu variabel terdapat dalam daftar yang ditentukan. Operator ini digunakan di dalam ekspresi boolean. Bentuk umum dari operator tersebut adalah:
variable IN (value 1 , value 2 , ... value N)
Mari tulis kueri di mana kami memilih karyawan yang berusia 20, 25, atau 30 tahun. Permintaan akan terlihat seperti:
SELECT * FROM employee WHERE age IN (20, 25, 30)
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmer | 100.000 | 25 | 30-06-2012 |
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
5 | Kirienko Anastasia | Manajer kantor | 40.000 | 25 | 10-10-2015 |
Dan sekarang mari kita tulis kueri, di mana, sebaliknya, kita memilih karyawan yang usianya not
20, 25, atau 30 tahun. Kueri tersebut akan terlihat seperti:
SELECT * FROM employee WHERE age NOT IN (20, 25, 30)
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
2 | Petrov Petr | Programmer | 80.000 | 23 | 12-08-2013 |
4 | Rabinovich Moisha | Direktur | 200.000 | 35 | 12-05-2015 |
6 | Vaska | kucing | 1.000 | 3 | 01-01-2018 |
Semuanya bekerja seperti yang diharapkan. Kecantikan.
3.5 SEPERTI: pola string
Dan akhirnya, operator lain yang penting dan sangat sering digunakan - LIKE
. Ini digunakan saat membandingkan string. Ini dapat digunakan untuk mengatur pola string. Operator ini digunakan di dalam ekspresi boolean. Bentuk umum dari operator tersebut adalah:
variable LIKE 'sample'
Karakter khusus dapat digunakan dalam pola: %
dan _
.
- Garis bawah berarti karakter apa saja, selalu 1 pc.
- Persen berarti karakter apa saja dan berapa kali (termasuk 0 kali).
Mari tulis kueri yang akan memilih semua orang yang nama belakangnya dimulai dengan huruf "I". Permintaan akan terlihat seperti:
SELECT * FROM employee WHERE name LIKE 'I%'
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
1 | Ivanov Ivan | Programmer | 100.000 | 25 | 30-06-2012 |
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
Sekarang mari kita perumit tugas - nama harus mengandung "o" dan nama harus diakhiri dengan "a". Permintaan akan terlihat seperti:
SELECT * FROM employee WHERE name LIKE '%o%a'
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
4 | Rabinovich Moisha | Direktur | 200.000 | 35 | 12-05-2015 |
Oke, mari kita membuatnya sedikit lebih sulit. Mari kita saring semua karyawan yang usianya dimulai dengan angka "3". Permintaan akan terlihat seperti:
SELECT * FROM employee WHERE age LIKE '3%'
Dan kami mendapatkan hasil kueri berikut:
pengenal | nama | pekerjaan | gaji | usia | join_date |
---|---|---|---|---|---|
3 | Ivanov Sergey | Penguji | 40.000 | tigapuluh | 01-01-2014 |
4 | Rabinovich Moisha | Direktur | 200.000 | 35 | 12-05-2015 |
6 | Vaska | kucing | 1.000 | 3 | 01-01-2018 |
Ngomong-ngomong, kolom umur kita bertipe int
, jadi LIKE
tidak hanya berfungsi dengan string. Apa yang tidak bisa tidak bersukacita.
GO TO FULL VERSION