3.1 Mbandhingake nilai: <, >, =, <>

Salah sawijining tembung kunci sing paling umum digunakake nalika nulis pitakon SQL yaiku WHERE. Iku karo bantuan sing kita marang MySQL kang baris tabel kita arep kanggo nyaring (pilih).

Sawise tembung kunci, WHEREsampeyan bisa nulis kahanan sing rumit lan angel. Dadi, operasi apa sing bisa ngemot kahanan iki?

Operator Katrangan Tuladha
< Kurang gaji <40000
> liyane gaji > 100000
<= Kurang utawa padha umur <= 25
>= Luwih utawa padha umur >= 18
= padha karo pekerjaan = 'Programmer'
<>,!= Ora padha Taun(tanggal_gabungan) != 2015

Ora kaya basa Jawa, kanggo kesetaraan sing ketat, siji karakter padha digunakake ing kene, lan ora loro .

Yen sampeyan pengin mriksa manawa nilai kasebut ora padha, mula iki bisa ditindakake kanthi rong cara: pendekatan <>pisanan !=digunakake ing basa kayata Pascal, sing nomer loro khas kanggo basa kayata C ++ lan Jawa.

Kanggo assignment ing SQL, digunakake :=minangka ing Pascal, nanging assignment dhewe digunakake arang banget.

Ayo nulis pitakon ing ngendi kita nampilake kabeh karyawan sing ora direkrut ing 2015.


SELECT * FROM employee WHERE YEAR(join_date) != 2015
        

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
1 Iwan Iwan Programmer 100.000 25 30-06-2012
2 Petrov Petruk Programmer 80.000 23 2013-08-12
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01
6 Vaska kucing 1.000 3 2018-01-01

3.2 Operasi Logika AND, OR, NOT

Sampeyan uga bisa WHEREnggunakake operasi logis AND, ORlan NOT. Lan padha ditulis persis kaya aku diterangake kene. Ora ana &&, ||utawa!

Ayo nulis pitakon SQL ing ngendi kita milih karyawan sing umure luwih saka 20 taun lan entuk gaji kurang saka 50K.


SELECT * FROM employee WHERE age > 20 AND salary < 50000
        

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01
5 Kirienko Anastasia Kantor manager 40.000 25 10-10-2015

Gampang banget. Ayo nulis pitakon ing ngendi kita milih karyawan sing nampa luwih saka 100K lan ora dadi direktur:


SELECT * FROM employee WHERE salary >= 100000 AND NOT occupation = 'Director'
        

Ing kene kita khusus !=nggunakake operator tinimbang simbol NOT.

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
1 Iwan Iwan Programmer 100.000 25 30-06-2012

3.3 ANTARA: sawetara nilai

Uga ing SQL ana operator khusus BETWEENsing bisa mriksa apa variabel dumunung ing antarane rong nilai. Operator iki digunakake ing ekspresi boolean. Bentuk umum saka operator kasebut yaiku:


variable BETWEEN bottom line AND top_bound
        

Ing kasus iki, ora kaya basa Jawa, wates ngisor lan ndhuwur kalebu ing interval sing diidini.

Ayo nulis conto ing ngendi kita milih kabeh karyawan kanthi gaji saka 40K nganti 100K. Panjaluk kasebut bakal katon kaya:

SELECT * FROM employee WHERE salary BETWEEN 40000 AND 100000

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
1 Iwan Iwan Programmer 100.000 25 30-06-2012
2 Petrov Petruk Programmer 80.000 23 2013-08-12
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01
5 Kirienko Anastasia Kantor manager 40.000 25 10-10-2015

Operator BETWEENndhukung ora mung jinis numerik, nanging uga tanggal lan malah jinis senar . Ing kasus nggarap senar, urutan leksikografi digunakake: aaba sadurunge aabb

3.4 IN: dhaptar nilai

Kajaba iku, SQL duwe operator khusus INsing sampeyan bisa mriksa manawa ana variabel ing dhaptar kasebut. Operator iki digunakake ing ekspresi boolean. Bentuk umum saka operator kasebut yaiku:

variable IN (value 1 , value 2 , ... value N)

Ayo nulis pitakon ing ngendi kita milih karyawan sing umure 20, 25 utawa 30 taun. Panjaluk kasebut bakal katon kaya:

SELECT * FROM employee WHERE age IN (20, 25, 30)

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
1 Iwan Iwan Programmer 100.000 25 30-06-2012
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01
5 Kirienko Anastasia Kantor manager 40.000 25 10-10-2015

Lan saiki ayo nulis pitakon, ing ngendi, sebaliknya, kita milih karyawan sing umure not20, 25 utawa 30. Pitakonan bakal katon kaya:

SELECT * FROM employee WHERE age NOT IN (20, 25, 30)

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
2 Petrov Petruk Programmer 80.000 23 2013-08-12
4 Rabinovich Moisha direktur 200.000 35 2015-05-12
6 Vaska kucing 1.000 3 2018-01-01

Kabeh kerjane kaya sing dikarepake. Kaendahan.

3.5 LIKE: pola string

Lan pungkasanipun, operator penting liyane lan asring banget digunakake - LIKE. Iki digunakake nalika mbandhingake strings. Bisa digunakake kanggo nyetel pola senar. Operator iki digunakake ing ekspresi boolean. Bentuk umum saka operator kasebut yaiku:

variable LIKE 'sample'

Karakter khusus bisa digunakake ing pola: %lan _.

  • Underscore tegese karakter apa wae, mesthi 1 pc.
  • Persen tegese karakter apa wae lan kaping pirang-pirang (kalebu kaping 0).

Ayo nulis pitakon sing bakal milih kabeh wong sing jenenge diwiwiti kanthi huruf "I". Panjaluk kasebut bakal katon kaya:

SELECT * FROM employee WHERE name LIKE 'I%'

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
1 Iwan Iwan Programmer 100.000 25 30-06-2012
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01

Saiki ayo gawe rumit tugas - jeneng kudu ngemot "o" lan jeneng kasebut kudu diakhiri "a". Panjaluk kasebut bakal katon kaya:

SELECT * FROM employee WHERE name LIKE '%o%a'

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
4 Rabinovich Moisha direktur 200.000 35 2015-05-12

Oke, ayo dadi luwih angel. Ayo nyaring kabeh karyawan sing umure diwiwiti kanthi nomer "3". Panjaluk kasebut bakal katon kaya:

SELECT * FROM employee WHERE age LIKE '3%'

Lan kita entuk asil pitakon ing ngisor iki:

id jeneng pendhudhukan gaji umur join_date
3 Ivanov Sergey Tester 40.000 telung puluh 2014-01-01
4 Rabinovich Moisha direktur 200.000 35 2015-05-12
6 Vaska kucing 1.000 3 2018-01-01

Miturut cara, kolom umur kita jinis int, supaya LIKEora mung nganggo senar. Apa ora bisa nanging bungah.