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, WHEREAnda 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 WHEREmenggunakan operasi logis AND, ORdan 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 BETWEENyang 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 BETWEENtidak 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 INyang 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 not20, 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 LIKEtidak hanya berfungsi dengan string. Apa yang tidak bisa tidak bersukacita.