4.1 WATES
Yen sampeyan ngarepake pitakon SQL sampeyan bakal ngasilake data sing akeh banget, sampeyan bisa mbatesi jumlah maksimal sadurunge. Sawise kabeh, tabel bisa ngemot ewonan utawa malah mayuta-yuta larik.
SQL nggawe gampang banget kanggo matesi jumlah baris ing asil pitakonan nggunakake LIMIT
. Tembung kunci iki digunakake ing pungkasan query SQL lan katon kaya iki:
LIMIT quantity
Ayo nulis pitakon marang tabel produk, sing ngemot dhaptar produk toko. Nanging amarga kita duwe toko sing sukses banget lan adol akeh produk, kita mung pengin entuk jawaban 10 baris pisanan. Mangkene panjaluk kasebut:
SELECT * FROM product
LIMIT 10
Lan kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
1 | Tabel | IKEA | 20.00 | 15 |
2 | Kursi | IKEA | 5.00 | 45 |
3 | Sofa | IKEA | 80.00 | 10 |
4 | Amben | IKEA | 75.00 | 10 |
5 | lemari | Bosch | 125.00 | 15 |
6 | rak | rak | 25.00 | 114 |
7 | TV | LG | 350,00 | 4 |
8 | lampu | LG | 15.00 | 100 |
9 | Tukang rias | IKEA | 99.00 | 10 |
10 | piring | Bosch | 199.00 | 10 |
Saiki kita bakal njaluk mung 5 baris pisanan. Mangkene panjaluk kasebut:
SELECT * FROM product
LIMIT 5
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
1 | Tabel | IKEA | 20.00 | 15 |
2 | Kursi | IKEA | 5.00 | 45 |
3 | Sofa | IKEA | 80.00 | 10 |
4 | Amben | IKEA | 75.00 | 10 |
5 | lemari | Bosch | 125.00 | 15 |
4.2 OFFSET
Pungkasan, kita sinau babagan mbatesi jumlah baris ing respon server. Lan saiki, tinimbang ewonan larik saka tabel produk, kita bisa entuk 10 baris pisanan lan nampilake menyang pangguna. Iku sampurna. Nanging kepiye carane nampilake 10 baris kapindho? Lan katelu?
Yen kita nulis LIMIT 20
, utawa LIMIT 30
, server ora bakal bali 20 lan 30 larik mungguh?
Kanggo kasus iki, SQL duwe tembung kunci khusus OFFSET
sing sampeyan bisa njaluk server kanggo ngliwati garis N minangka respon. Tembung kunci iki digunakake ing pungkasan query SQL (sawise LIMIT
) lan katon kaya:
OFFSET quantity
Ayo nulis pitakon ing tabel produk lan nyoba entuk cathetan 11 nganti 15. Ing tembung liyane, kita njaluk server bali 5 baris, nanging skip 10 baris pisanan saka respon. Mangkene panjaluk kasebut:
SELECT * FROM product
LIMIT 5
OFFSET 10
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
sewelas | Kursi | Bosch | 44.00 | 8 |
12 | pot kembang | Kembang pinter | 99.00 | 9 |
13 | Ngadeg | IKEA | 100.00 | 10 |
Server ngasilake mung 3 larik, tegese ana total 13 larik ing meja kita. Server ngliwati 10 pisanan lan bali 5 sabanjure.
4.3 PILIH DISTINCT
Tembung kunci liyane sing migunani yaiku DISTINCT
. Iki digunakake nalika ana duplikat cathetan ing meja lan kita pengin mbusak duplikat kasebut.
Ngendi duplikat teka saka tabel kita? Bisa uga ora ana duplikat ing tabel, nanging minangka asil saka pitakonan, iku gampang. Ayo nulis pitakon sing bakal ngasilake merek kabeh produk sing adol. Mangkene panjaluk kasebut:
SELECT brand FROM product
Kita entuk asil pitakon ing ngisor iki:
merek |
---|
IKEA |
IKEA |
IKEA |
IKEA |
Bosch |
Bosch |
LG |
LG |
IKEA |
Bosch |
Bosch |
Kembang pinter |
IKEA |
Iku gampang kanggo ndeleng sing ana duplikat larik ing tabel iki. Iki kanggo mesthekake yen ora ana duplikat lan sampeyan kudu nggunakake tembung kunci DISTINCT
. Mangkene apa panjaluk sing wis didandani:
SELECT DISTINCT brand
FROM product
Kita entuk asil pitakon ing ngisor iki:
merek |
---|
IKEA |
Bosch |
LG |
Kembang pinter |
Dadi luwih apik. Dudu kuwi? ;)
4.4 ORDER BY
Lan pungkasane kita kudu ngurutake . Kanggo ngurutake asil pitakon, sampeyan kudu nggunakake tembung kunci ORDER BY
. Secara teknis, iki rong tembung, nanging intine ora penting. Loro tembung, siji operator.
Iki kudu ditulis sawise tembung kunci WHERE
, nanging sadurunge LIMIT
lan OFFSET
. Yen sampeyan nulis ORDER BY
sawise LIMIT
, banjur server SQL mung bakal ngasilake kesalahan kanggo sampeyan.
Umumé, operator iki katon kaya iki:
ORDER BY column order
Ing ngendi kolom iku jeneng kolom ing asil tabel / ngurutake. Lan urutan iku urutan urutan.
Urutan urut bisa dadi telung jinis:
ASC
(saka Ascending) - munggah;DESC
(saka mudhun) - mudhun;- Ora ditemtokake - bakal digunakake
ASC
Ayo nulis pitakon sing bakal ngasilake dhaptar produk sing diurutake miturut rega kanthi urutan munggah. Mangkene panjaluk kasebut:
SELECT * FROM product
ORDER BY price ASC
LIMIT 10
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
2 | Kursi | IKEA | 5.00 | 45 |
8 | lampu | LG | 15.00 | 100 |
1 | Tabel | IKEA | 20.00 | 15 |
6 | rak | Bosch | 25.00 | 114 |
sewelas | Kursi | Bosch | 44.00 | 8 |
4 | Amben | IKEA | 75.00 | 10 |
3 | Sofa | IKEA | 80.00 | 10 |
12 | pot kembang | Kembang pinter | 99.00 | 9 |
9 | Tukang rias | IKEA | 99.00 | 10 |
13 | Ngadeg | IKEA | 100.00 | 10 |
Kita bakal entuk asil sing padha yen ora nemtokake urutan urutan - kita bakal ngliwati tembung kasebut ASC
.
4.5 ORDER BY liwat sawetara kolom
Operator ORDER BY
ngidini sampeyan ngurutake asil kanthi sawetara kolom. Iki bisa migunani banget nalika kolom pisanan akeh unsur duplikat. Bentuk umum operator iki kaya ing ngisor iki:
ORDER BY column 1 order 1, column 2 order 2, column 3 order 3
Ing tembung liya, yen sawise ngurutake kolom pisanan sampeyan duwe sawetara nilai sing padha ing cedhak, banjur diurutake miturut kolom kapindho, lan sateruse.
Ayo nulis pitakon sing bakal ngurutake produk kita miturut merek, lan kanggo produk kanthi merek sing padha - kanthi urutan mudhun saka jumlahe. Mangkene panjaluk kasebut:
SELECT * FROM product
ORDER BY brand ASC, count
DESC
Kita entuk asil pitakon ing ngisor iki:
id | jeneng | merek | regane | ngetang |
---|---|---|---|---|
6 | rak | Bosch | 25.00 | 114 |
5 | lemari | Bosch | 125.00 | 15 |
10 | piring | Bosch | 199.00 | 10 |
sewelas | Kursi | Bosch | 44.00 | 8 |
2 | Kursi | IKEA | 5.00 | 45 |
1 | Tabel | IKEA | 20.00 | 15 |
9 | Tukang rias | IKEA | 99.00 | 10 |
13 | Ngadeg | IKEA | 100.00 | 10 |
4 | Amben | IKEA | 75.00 | 10 |
3 | Sofa | IKEA | 80.00 | 10 |
8 | lampu | LG | 15.00 | 100 |
7 | TV | LG | 350,00 | 4 |
12 | pot kembang | Kembang pinter | 99.00 | 9 |
Deleng kanthi teliti ing tabel - larik kasebut diurutake miturut jeneng merek (urutan alfabet), lan baris kanthi jeneng merek sing padha diurutake miturut nomer produk kanthi urutan mudhun (kolom pungkasan).