5.1 Lack pinunjul
Basa SQL, kaya basa Jawa, nduweni tembung kunci khusus kanggo nuduhake ora ana nilai - iku null. Utawa kaya sing asring ditulis - NULL
.
Panggunaan NULL
ing SQL meh padha karo panggunaan null ing Jawa. Ing Jawa, bisa uga ana obyek sing kolom ngemot nilai null. Ing SQL, bisa uga ana tabel sing baris ngemot nilai NULL.
Ayo kula nambahake sawetara produk tanpa merek menyang tabel produk kanthi sengaja. Yen merek produk ora dingerteni, regane bakal dadi NULL
.
Kanggo nampilake produk kasebut, ayo urutake tabel produk kanthi id kanthi urutan mbalikke lan njupuk 10 cathetan. Panjaluk kasebut bakal katon kaya iki:
SELECT * FROM product
ORDER BY id DESC
LIMIT 10
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
15 | keling | NULL | 0.01 | 1000 |
14 | meneng | NULL | 0.10 | 1000 |
13 | Ngadeg | IKEA | 100.00 | 10 |
12 | pot kembang | Kembang pinter | 99.00 | 9 |
sewelas | Kursi | Bosch | 44.00 | 8 |
10 | piring | Bosch | 199.00 | 10 |
9 | Tukang rias | IKEA | 99.00 | 10 |
8 | lampu | LG | 15.00 | 100 |
7 | TV | LG | 350,00 | 4 |
6 | rak | Bosch | 25.00 | 114 |
Ya, aku nambahake rivet lan sekrup ing meja. Dheweke duwe rega lan jumlah, nanging ora ana merek.
5.2 Perbandingan karo NULL
Apa sampeyan kelingan yen kadhangkala sampeyan nesu ing basa Jawa nalika nggunakake null? Sampeyan ora bisa mbandhingake variabel sing bisa ngrujuk marang nilai null liwat padha (). Tuladha:
Product product1 = new Product();
Product product2 = null;
if (product2.equals(product1) { //an exception will be raised here
…
}
Sampeyan ora bakal pracaya, nanging ing basa SQL sampeyan uga nunggu nuansa nalika nggarap nilai NULL. Lan muni kaya iki:ora ana sing NULL.
Yen sampeyan nyoba nyaring kabeh produk sing merek null
:
SELECT * FROM product
WHERE brand = NULL
Sampeyan bakal entuk meja kosong:
id | jeneng | merek | regane | ngetang |
---|
Nanging yen sampeyan nulis ing pitakon manawa merek ora padha karo NULL
, sampeyan bakal entuk asil sing padha:
SELECT * FROM product
WHERE brand != NULL
Sampeyan bakal entuk meja kosong maneh:
id | jeneng | merek | regane | ngetang |
---|
Sembarang perbandingan / tumindak karo NULL bakal ngasilake NULL:
Ekspresi | asil |
---|---|
merek = NULL | NULL |
merek!= NULL | NULL |
NULL = NULL | NULL |
NULL!= NULL | NULL |
iya,malah yen sampeyan mbandhingaké NULL karo NULL, banjur jawaban bakal NULL.
5.3 IS NULL lan IS NOT NULL
Dadi, kepiye kita mriksa manawa sawetara kolom (utawa sawetara kolom) duweni nilai NULL
? Lan kanggo iki, SQL duwe ekspresi khusus - IS NULL
. Iku katon kaya iki.
variable IS NULL
Yen sampeyan pengin mriksa yen kolom tabel sampeyan ora padha karo NULL
, sampeyan kudu nulis IS NOT NULL
:
variable IS NOT NULL
Ayo nulis pitakon sing bakal milih kabeh produk saka tabel produk sing merek padha karo NULL
. Panjaluk kasebut bakal katon kaya iki:
SELECT * FROM product
WHERE brand IS NULL
Lan kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
14 | meneng | NULL | 0.10 | 1000 |
15 | keling | NULL | 0.01 | 1000 |
Saiki ayo nampilake kabeh produk sing regane kurang saka $20:
SELECT * FROM product
WHERE price < 20
Lan kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
2 | Kursi | IKEA | 5.00 | 45 |
8 | lampu | LG | 15.00 | 100 |
14 | meneng | NULL | 0.10 | 1000 |
15 | keling | NULL | 0.01 | 1000 |
Saiki kita nemtokake manawa rega kudu kurang saka $20 lan merek ora NULL
.
SELECT * FROM product
WHERE price < 20 AND brand IS NOT NULL
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
2 | Kursi | IKEA | 5.00 | 45 |
8 | lampu | LG | 15.00 | 100 |
Apik, rong baris pungkasan wis ilang. Mangkene cara kerjane. A sethitik mboten umum, nanging isih ana logika tartamtu ing iki.
GO TO FULL VERSION