Materi 3 Praktikum SMBD
I. SELECT
Statement
1.
Mengambil
data dengan SELECT
2.
Query
menggunakan parameter kondisi WHERE
3.
Query
menggunakan beberapa parameter kondisional
4.
Memberikan
alias hasil query pada SELECT
5.
Query
data bertipe teks dengan pattern matching
6.
Query
data unik menggunakan DISTINCT
7.
Membatasi
hasil query dengan LIMIT
II
SELECT
Statement
Sebelum
kita memulai pembahsan dengan SELECT terlebih dahulu kita siapkan tabel baru
bernama table pegawai.
mysql> create table pegawai(nip
varchar(8) primary key, nama_peg varchar(50), al
amat_peg varchar(50), jabatan
varchar(20), gaji int(7));
Query OK, 0 rows affected (0.70 sec)
mysql> desc pegawai;
+------------+-------------+------+-----+---------+-------+
| Field |
Type | Null | Key | Default |
Extra |
+------------+-------------+------+-----+---------+-------+
| nip |
varchar(8) | NO | PRI | NULL |
|
| nama_peg |
varchar(50) | YES | | NULL
| |
| alamat_peg | varchar(50) | YES | |
NULL | |
| jabatan |
varchar(20) | YES | | NULL
| |
| gaji |
int(7) | YES | |
NULL | |
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.13 sec)
Lalu
kita isikan dengan data yang dudah tersedia
mysql> load data local infile
'G://LAB4/BASISDATA/file.txt' into table pegawai;
Query OK, 15 rows affected (0.63 sec)
Records: 15 Deleted: 0
Skipped: 0 Warnings: 0
1. Mengambil
Data dengan SELECT
Perintah select untuk mengambil data
sudah sering kita pakai sebelumnya, untuk mengambil seluruh data yang ada di
dalam suatu tabel kita bisa menggunakan perintah SELECT *
FROM <nama_tabel>
CONTOH :
mysql> select * from pegawai;
+----------+-----------------------+-------------+----------------+---------+
| 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 |
| PEG-1007 | Bambang Pamungkas | Kudus | Staff Senior | 3000000 |
| PEG-1008 | Ely Oktafiani | Yogyakarta | Staff Senior | 3000000 |
| PEG-1009 | Rani Wijaya | Magelang | Staff Senior | 3000000 |
| PEG-1010 | Rano Karno | Solo
| Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta | Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun | Staff Junior | 2000000 |
| PEG-1014 | Donny Damara | Makasar | Tenaga Kontrak | 1000000 |
| PEG-1015 | Paijem | Yogyakarta | Tenaga Kontrak | 500000 |
+----------+-----------------------+-------------+----------------+---------+
15 rows in set (0.00 sec)
Perintah diatas menunjukan seluruh dara
dari table pegawai
Kita juga bisa mengambil seluruh data
tapi hanya kolom – kolom tertentu dengan perintah dasar : SELECT
<NAMA_KOLOM, NAMA_KOLOM > FROM <NAMA_TABEL>
CONTOH :
mysql> select nip, nama_peg from
pegawai;
+----------+-----------------------+
| nip |
nama_peg |
+----------+-----------------------+
| PEG-1001 | Soeharto Mangundirejo |
| PEG-1002 | Felix Nababan |
| PEG-1003 | Olga Syahputra |
| PEG-1004 | Chelsea Olivia |
| PEG-1005 | Tuti Wardani |
| PEG-1006 | Budi Drajat |
| PEG-1007 | Bambang Pamungkas |
| PEG-1008 | Ely Oktafiani |
| PEG-1009 | Rani Wijaya |
| PEG-1010 | Rano Karno |
| PEG-1011 | Rahmadi Sholeh |
| PEG-1012 | Ilham Ungara |
| PEG-1013 | Endang Melati |
| PEG-1014 | Donny Damara |
| PEG-1015 | Paijem |
+----------+-----------------------+
15 rows in set (0.00 sec)
2. Query menggunakan parameter kondisi
WHERE
Statement
WHERE disini akan digunakan untuk memfilter atau mengatur kolom dan baris mana
yang akan kita munculkan atau kita ambil.
PERINTAH DASAR :
SELECT
* FROM <nama_table> WHERE <kondisi>
CONTOH :
mysql>
select * from pegawai where jabatan='Staff Junior';
+----------+----------------+------------+--------------+---------+
| nip
| nama_peg | alamat_peg |
jabatan | gaji |
+----------+----------------+------------+--------------+---------+
| PEG-1010 | Rano Karno | Solo | Staff Junior | 2000000 |
| PEG-1011 | Rahmadi Sholeh | Yogyakarta | Staff
Junior | 2000000 |
| PEG-1012 | Ilham Ungara | Jakarta
| Staff Junior | 2000000 |
| PEG-1013 | Endang Melati | Madiun
| Staff Junior | 2000000 |
+----------+----------------+------------+--------------+---------+
4 rows in set (0.44 sec)
Perintah diatas menunjukkan data
pegawai yang difilter berdasarkan jabatan yg berisi staff junior
mysql>
select nip, nama_peg from pegawai where jabatan='Staff Junior';
+----------+----------------+
| nip
| nama_peg |
+----------+----------------+
| PEG-1010 | Rano Karno |
| PEG-1011 | Rahmadi Sholeh |
| PEG-1012 | Ilham Ungara |
| PEG-1013 | Endang Melati |
+----------+----------------+
4 rows in set (0.00 sec)
Untuk menampilkan tidak semua
data atau hanya data pada kolom – kolom tertentu yg telah dituliskan dan tetap
berdasarkan jabatan = junior staff
3. Query menggunakan beberapa parameter
kondisional
Perintah
yang digunakan disini menggunakan WHERE tapi yang membedakan perintah yang
digunakan lebih menunjukkan kondisi yang diinginkan, dengan bisa menggunakan
penggabungan beberapa parameter untuk menampilkan data. Penggabungan ini bisa
menggunakan perintah AND atau OR, untuk lebih jelasnya bisa dilihat contoh :
mysql> select * from
pegawai where alamat_peg ='Yogyakarta' AND gaji < 4000000;
+----------+----------------+------------+----------------+---------+
| nip | nama_peg | alamat_peg | jabatan |
gaji |
+----------+----------------+------------+----------------+---------+
| PEG-1008 |
Ely Oktafiani | Yogyakarta | Staff
Senior | 3000000 |
| PEG-1011 |
Rahmadi Sholeh | Yogyakarta | Staff Junior
| 2000000 |
| PEG-1015 |
Paijem | Yogyakarta | Tenaga
Kontrak | 500000 |
+----------+----------------+------------+----------------+---------+
3
rows in set (0.00 sec)
Perintah
diatas menunjukkan pemfilteran dengan 2 kondisi yaitu berdasarkan alamat_peg
dan gaji yang kurang dari 4jt
mysql> select nip,
nama_peg from pegawai where alamat_peg ='Yogyakarta' OR alamat_peg ='Jakarta';
+----------+-----------------------+
| nip | nama_peg |
+----------+-----------------------+
| PEG-1001 |
Soeharto Mangundirejo |
| PEG-1003 |
Olga Syahputra |
| PEG-1008 |
Ely Oktafiani |
| PEG-1011 |
Rahmadi Sholeh |
| PEG-1012 |
Ilham Ungara |
| PEG-1015 |
Paijem |
+----------+-----------------------+
6
rows in set (0.00 sec)
Jika
perintah diatas menunjukkan data yang mempunyai alamat di Yogyakarta atau di
Jakarta
4. Memberikan
alias hasil query pada SELECT
Kita
bisa menggunakan perintah SELECT untuk membuat alias pada suatu kolom dengan
perintah AS.
mysql>
select nama_peg AS nama_pegawai, alamat_peg AS asal from pegawai where
alamat_peg='Jakarta';
+----------------+---------+
| nama_pegawai
| asal |
+----------------+---------+
| Olga Syahputra | Jakarta |
| Ilham Ungara
| Jakarta |
+----------------+---------+
2 rows in set (0.00 sec)
Di sini pada saat menampilkan
hasil, nama kolom akan diganti dengan perintah AS
5. Query
data bertipe teks dengan pattern matching
Menampilkan data dengan
mencocokan (matching) dengan kondisi yang kita inginkan.
Dengan menggunakan perintah
‘LIKE’ untuk perintah ‘seperti’ dan ‘NOT LIKE’ untuk perintah ‘tidak seperti’
dan beberapa simbol matching yg ada di SQL yaitu ‘_’ dan ‘%’ untuk lebih
jelasnya bisa lihat di contoh :
mysql>
select nama_peg from pegawai where jabatan like 'M______';
+---------------+
| nama_peg
|
+---------------+
| Felix Nababan |
+---------------+
1 row in set (0.00 sec)
Pada perintah diatas menunjukkan
bahwa data yang diminta adalah data yang memuat Jabatan berawalan M dan
berjumlag 7 huruf.
mysql>
select nama_peg from pegawai where jabatan like 'M%';
+---------------+
| nama_peg
|
+---------------+
| Felix Nababan |
+---------------+
1 row in set (0.00 sec)
Perintah di atas menunjukkan
data yang diminta adalah data nama pegawai yang jabatannya berawalan huruf ‘M’
mysql>
select nama_peg from pegawai where alamat_peg like '%A';
+-----------------------+
| nama_peg |
+-----------------------+
| Soeharto Mangundirejo |
| Olga Syahputra |
| Ely Oktafiani |
| Rahmadi Sholeh |
| Ilham Ungara
|
| Paijem |
+-----------------------+
6 rows in set (0.00 sec)
Perintah di atas menunjukkan
data yang diminta adalah data nama pegawai yang alamatnya berakhiran huruf ‘A’
6. Query
data unik menggunakan DISTINCT
Perintah DISTINCT digunakan
untuk menampilkan data yang unik, jadi jika ada data yang sama tidak akan
ditampilkan.
mysql>
select alamat_peg from pegawai;
+-------------+
| alamat_peg
|
+-------------+
| Yogyakarta
|
| Medan
|
| Jakarta
|
| Bandung
|
| Jawa Tengah |
| Malang
|
| Kudus
|
| Yogyakarta
|
| Magelang
|
| Solo
|
| Yogyakarta
|
| Jakarta
|
| Madiun
|
| Makasar
|
| Yogyakarta
|
+-------------+
15 rows in set (0.00 sec)
mysql>
select distinct alamat_peg from pegawai;
+-------------+
| alamat_peg
|
+-------------+
| Yogyakarta
|
| Medan
|
| Jakarta
|
| Bandung
|
| Jawa Tengah |
| Malang
|
| Kudus
|
| Magelang
|
| Solo
|
| Madiun
|
| Makasar
|
+-------------+
11 rows in set (0.05 sec)
7. Membatasi
hasil query dengan LIMIT
Perintah LIMIT ini akan membatasi jumlah data yang akan kita
tampilkan.
mysql> select * from
pegawai LIMIT 5;
+----------+-----------------------+-------------+-------------+---------+
| 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 |
+----------+-----------------------+-------------+-------------+---------+
5 rows in set (0.00 sec)

0 komentar:
Posting Komentar