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 OFFSETsing 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 LIMITlan OFFSET. Yen sampeyan nulis ORDER BYsawise 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 digunakakeASC

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 BYngidini 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).