Mengurutkan hasil query
menggunakan ORDER BY
Perintah
ORDER BY adalah perintah untuk mengurutkan tabel secara ASC atau
DESC,
CONTOH
:
mysql>
select * from pegawai ORDER BY nama_peg;
+----------+-----------------------+-------------+----------------+---------+
|
nip | nama_peg | alamat_peg | jabatan |
gaji |
+----------+-----------------------+-------------+----------------+---------+
|
PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior |
3000000 |
|
PEG-1006 | Budi Drajat | Malang | Supervisor |
4500000 |
|
PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit |
6000000 |
|
PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak |
1000000 |
|
PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior |
3000000 |
|
PEG-1013 | Endang Melati | Madiun | Staff Junior |
2000000 |
|
PEG-1002 | Felix Nababan | Medan | Manager |
8000000 |
|
PEG-1012 | Ilham Ungara | Jakarta | Staff Junior |
2000000 |
|
PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit |
6000000 |
|
PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak |
500000 |
|
PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior |
2000000 |
|
PEG-1009 | Rani Wijaya | Magelang | Staff Senior |
3000000 |
|
PEG-1010 | Rano Karno | Solo | Staff Junior |
2000000 |
|
PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O |
9000000 |
|
PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor |
4500000 |
+----------+-----------------------+-------------+----------------+---------+
15
rows in set (0.42 sec)
Jika
dilihat dari perintah diatas menunjukkan bahwa perintah ORDER
BY
akan diurutkan secara ASC
secara default.
Untuk
perintah ORDER BY
secara
DESC
maka perintahnya sbb :
mysql>
select * from pegawai ORDER BY nama_peg DESC;
+----------+-----------------------+-------------+----------------+---------+
|
nip | nama_peg | alamat_peg | jabatan |
gaji |
+----------+-----------------------+-------------+----------------+---------+
|
PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor |
4500000 |
|
PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O |
9000000 |
|
PEG-1010 | Rano Karno | Solo | Staff Junior |
2000000 |
|
PEG-1009 | Rani Wijaya | Magelang | Staff Senior |
3000000 |
|
PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior |
2000000 |
|
PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak |
500000 |
|
PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit |
6000000 |
|
PEG-1012 | Ilham Ungara | Jakarta | Staff Junior |
2000000 |
|
PEG-1002 | Felix Nababan | Medan | Manager |
8000000 |
|
PEG-1013 | Endang Melati | Madiun | Staff Junior |
2000000 |
|
PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior |
3000000 |
|
PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak |
1000000 |
|
PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit |
6000000 |
|
PEG-1006 | Budi Drajat | Malang | Supervisor |
4500000 |
|
PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior |
3000000 |
+----------+-----------------------+-------------+----------------+---------+
15
rows in set (0.00 sec)
Mengurutkan hasil query
berdasarkan lebih dari satu kolom
Pada
perintah ini pengurutan data dilakukan tidak hanya berdasar 1 kolom,
tetapi berdasar 2 kolom atau lebihpun bisa.
Agar
data bisa terlihat jelas maka coba buat tabel pegawai2 dengan rincian
sbb :
mysql>
create table pegawai2(nama varchar(20), alamat varchar(20));
Query
OK, 0 rows affected (0.47 sec)
mysql>
desc pegawai2;
+--------+-------------+------+-----+---------+-------+
|
Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
|
nama | varchar(20) | YES | | NULL | |
|
alamat | varchar(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
2
rows in set (0.11 sec)
mysql>
select*from pegawai2;
+------+------------+
|
nama | alamat |
+------+------------+
|
Zeze | Yogyakarta |
|
Zeze | Jakarta |
|
Riza | Bandung |
|
Riza | Aceh |
|
Amir | Demak |
|
Amir | Cilacap |
+------+------------+
6
rows in set (0.00 sec)
Kita
sudah punya tabel baru yang menunjukkan data pada kolom nama ada yang
sama, tapi di kolom alamat berbeda maka bisa diurutkan sbb :
mysql>
select nama, alamat from pegawai2 ORDER BY nama, alamat;
+------+------------+
|
nama | alamat |
+------+------------+
|
Amir | Cilacap |
|
Amir | Demak |
|
Riza | Aceh |
|
Riza | Bandung |
|
Zeze | Jakarta |
|
Zeze | Yogyakarta |
+------+------------+
6
rows in set (0.00 sec)
mysql>
select * from pegawai2 ORDER BY nama, alamat desc;
+------+------------+
|
nama | alamat |
+------+------------+
|
Amir | Demak |
|
Amir | Cilacap |
|
Riza | Bandung |
|
Riza | Aceh |
|
Zeze | Yogyakarta |
|
Zeze | Jakarta |
+------+------------+
6
rows in set (0.00 sec)
Pada
tabel ini telah diurutkan nama terlebih dahulu seteleh itu baru
mengurutkan berdasarkan alamat.
Kombinasi ORDER BY dengan
LIMIT
Perintah
ORDER BY juga bisa dikombinasikan dengan perintah LIMIT, contohnya
mysql>
select * from pegawai ORDER BY gaji LIMIT 5;
+----------+----------------+------------+----------------+---------+
|
nip | nama_peg | alamat_peg | jabatan | gaji |
+----------+----------------+------------+----------------+---------+
|
PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
|
PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
|
PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
|
PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
|
PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
+----------+----------------+------------+----------------+---------+
5
rows in set (0.00 sec)
Contoh
diatas menunjukkan 5 gaji terendah di table pegawai.
Operator BETWEEN
Perintah
BETWEEN digunakan untuk memfilter data diantara dua nilai yang
dispesifikkan
mysql>
select * from pegawai WHERE gaji BETWEEN 4000000 AND 9000000;
+----------+-----------------------+-------------+-------------+---------+
|
nip | nama_peg | alamat_peg | jabatan | gaji
|
+----------+-----------------------+-------------+-------------+---------+
|
PEG-1001 | Soeharto Mangundirejo | Yogyakarta | C.E.O |
9000000 |
|
PEG-1002 | Felix Nababan | Medan | Manager |
8000000 |
|
PEG-1003 | Olga Syahputra | Jakarta | Kepala Unit |
6000000 |
|
PEG-1004 | Chelsea Olivia | Bandung | Kepala Unit |
6000000 |
|
PEG-1005 | Tuti Wardani | Jawa Tengah | Supervisor |
4500000 |
|
PEG-1006 | Budi Drajat | Malang | Supervisor |
4500000 |
+----------+-----------------------+-------------+-------------+---------+
6
rows in set (0.00 sec)
Perintah
diatas menunjukkan penampilan gaji diantara 4jt dan 9jt .
Jika
perintah BETWEEN dilakukan untuk mencara data dalam range, ada juga
NOT BETWEEN untuk mencarai data diluar range yang kita tentukan.
CATATAN
: penginputan range diwalai dengan urutan yang lebih kecil, contoh
4jt – 9jt, atau Ely O – Olga S
mysql>
select nama_peg, gaji from pegawai WHERE nama_peg NOT BETWEEN "Ely
Oktafi
ani"
AND "Olga Syahputra";
+-----------------------+---------+
|
nama_peg | gaji |
+-----------------------+---------+
|
Soeharto Mangundirejo | 9000000 |
|
Chelsea Olivia | 6000000 |
|
Tuti Wardani | 4500000 |
|
Budi Drajat | 4500000 |
|
Bambang Pamungkas | 3000000 |
|
Rani Wijaya | 3000000 |
|
Rano Karno | 2000000 |
|
Rahmadi Sholeh | 2000000 |
|
Donny Damara | 1000000 |
|
Paijem | 500000 |
+-----------------------+---------+
10
rows in set (0.00 sec)
Menunjukkan
hasil dari NOT BETWEEN dalam menampilkan data yang bukan antara Ely
Oktafiani dan Olga Syahputra
MAX, MIN, AVERAGE data dari
tabel
Perintah
untuk menunjukkan nilai maksimal atau minimal ataupun nilai rata –
rata juga bisa kita lakukan di MySQL, dengan perintah SELECT diikuti
oleh MIN, MAX, atau AVERAGE, untuk lebih jelasnya kita lihat contoh :
Mencari
nilai MINIMAL MIN
mysql>
select MIN(gaji) from pegawai;
+-----------+
|
MIN(gaji) |
+-----------+
|
500000 |
+-----------+
1
row in set (1.05 sec)
Mencari
nilai MAKSIMAL MAX
mysql>
select MAX(gaji) from pegawai;
+-----------+
|
MAX(gaji) |
+-----------+
|
9000000 |
+-----------+
1
row in set (0.00 sec)
Mencari
nilai RATA - RATA AVG
mysql>
select AVG(gaji) from pegawai;
+--------------+
|
AVG(gaji) |
+--------------+
|
3766666.6667 |
+--------------+
1
row in set (0.41 sec)
Menghitung
Nilai Total SUM
mysql>
select SUM(gaji) from pegawai;
+-----------+
|
SUM(gaji) |
+-----------+
|
56500000 |
+-----------+
1
row in set (0.39 sec)
Belum ada tanggapan untuk "Perintah SQL part 6"
Post a Comment