MODUL V
SQL
A.
TUJUAN
Mahasiswa
memahami pengertian dari Query,View, dan Join; cara untuk membuat Query untuk
mengambil data dari beberapa table; cara membuat view
B.
PRAKTIKUM
Dari
data bases yang telah kita buat kita dapat memodifikasi, menambah data, maupun
yang lainnya. Pada halnya dalam pelakasanaan praktikum dengan langkah sebagai
berikut :
a.
Menampilkan
seluruh data pada pada table-table dari data base yang telah kita buat dengan
menggunakan perintah select*from
nama_table;
Contoh;
mysql> select*from data_cabang;
+-----------+------------------+---------------+-------------+
| kd_cabang | nama | alamat | jml_nasabah |
+-----------+------------------+---------------+-------------+
| KC001
| KC AKAKOM | JANTI | 8 |
| KC002
| KC GEJAYAN | GEJAYAN | 5 |
| KC003
| KC WIROBRAJAN |
WIROBRAJAN | 8 |
| KC005
| KC GEDUNG KUNING | GEDUNG KUNING | 8 |
| KC004
| KC BABARSARI |
BABARSARI | 3 |
+-----------+------------------+---------------+-------------+
5 rows in set (0.00 sec)
Perintah select
dapat juga digunakan untuk melihat sebagaian dari data pada table dengan nama
kolom data, contoh,
mysql> select nama, alamat from data_cabang;
+------------------+---------------+
| nama
| alamat |
+------------------+---------------+
| KC AKAKOM
| JANTI |
| KC GEJAYAN
| GEJAYAN |
| KC WIROBRAJAN
| WIROBRAJAN |
| KC GEDUNG KUNING | GEDUNG KUNING |
| KC BABARSARI
| BABARSARI |
+------------------+---------------+
5
rows in set
(0.00 sec)
b. Menampilkan data menggunakan
sebuah operator relasional (=, <>, <, >, <=), dan operator
logika (AND, OR, XOR). Dengan struktur
kode select*from nama_table where nama_kolom. Contoh
mysql> select nama,alamat from nasabah where
saldo >2000000;
+---------------+-------------+
| nama
| alamat |
+---------------+-------------+
| Ruslan
| Janti |
| Ricky
| Gamping |
| Arifin | Banguntapan |
| Ayat
| Banguntapan |
| Awang Nurhadi | Wonogiri |
+---------------+-------------+
5
rows in set
(0.02 sec)
c.
Menampilkan
data pada kolom nama pada sebuah table dengan perintah distinct
mysql> select distinct nama from nasabah;
+---------------+
| nama
|
+---------------+
| Januar
|
| Ruslan
|
| Sutris
|
| Ricky
|
| Herman
|
| Arifin
|
| Ayat
|
| Wahyudi
|
| Awang Nurhadi |
+---------------+
9 rows in set (0.01 sec)
d.
Menampilkan
nama nasabah yang mempunyai hurup awalan, akhiran, dan yang tengah, dengan
perintah like.
mysql> select nama from nasabah where nama like
'R%';
+--------+
| nama |
+--------+
| Ruslan |
| Ricky |
+--------+
2 rows in set (0.00 sec)
mysql> select nama from nasabah where nama like
'%e%'
+--------+
| nama |
+--------+
| Herman |
+--------+
1 row in set (0.00 sec)
mysql> select nama from nasabah where nama like
'%r';
+--------+
| nama |
+--------+
| Januar |
+--------+
1 row in set (0.00 sec)
e. Menampilkan jumlah nasabah dengan
perintah select count (nip) from
nama_table;
mysql> select nama count from nasabah;
mysql> select count(nama) from nasabah;
+-------------+
| count(nama) |
+-------------+
|
9 |
+-------------+
1 row in set (0.03 sec)
f.
Menamilkan
semua karyawan dan alamat serta saldonya
mysql> select nama,alamat, saldo from nasabah ;
+---------------+---------------+---------+
| nama
| alamat | saldo |
+---------------+---------------+---------+
| Januar
| Condong Catur | 1500000 |
| Ruslan
| Janti | 2500000 |
| Sutris
| Gejayan | 1400000 |
| Ricky
| Gamping | 7000000 |
| Herman
| Gamping | 1200000 |
| Arifin
| Banguntapan | 3200000 |
| Ayat
| Banguntapan | 3300000 |
| Wahyudi
| Karang Jambe | 1500000 |
| Awang Nurhadi | Wonogiri | 3000000 |
+---------------+---------------+---------+
9 rows in set (0.00 sec)
PEMBAHASAN
Dari
pelaksanaan praktikum di atas dapat kita ketahui, printah select dapat
digunakan untuk menampilkan data dari table database dengan kriteria tertentu.
Select*from nama_table merupakan perintah untuk menampilkan semua data yang ada
pada table. Namun select nama_kolom from nama_table; merupakan perintah untuk
menampilkan sebuah kolom yang ada pada table yang kita inginkan.
Perintah-perintah yang ada pada modul seperti like, distinct, select, maupun
order by, merupakan perintah untuk menampilkan data pada table dengan kentuan
dan kruteria tertentu.
Perintah
select nama_kolom from nama_table where nama_kolom <2000000; merupakan
perintah untuk menmpilkan sebuah kolom pada table dengan kondisi kurang dari
2000000, where merupkan kondisi dan tanda < menjadi operasionalnya. Seprti
contohnya.
mysql> select nama,alamat from nasabah where
saldo >2000000;
+---------------+-------------+
| nama
| alamat |
+---------------+-------------+
| Ruslan
| Janti |
| Ricky
| Gamping |
| Arifin
| Banguntapan |
| Ayat
| Banguntapan |
| Awang Nurhadi | Wonogiri |
+---------------+-------------+
5 rows in set (0.00 sec)
Adapun perintah-perintah seperti
count, max, min, avg maunpun sum merupakan operator yang berfungsi untuk
mengoperasikan data pada table yang berupa integer kecuali count, karena count
untuk menghitung jumlah data.
Contoh operasional diatas.
mysql> select max(saldo) from nasabah;
+------------+
| max(saldo) |
+------------+
| 7000000
|
+------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk
menampilkan nilai maksimal/terbesar dari kolom saldo.
mysql> select min(saldo) from nasabah;
+------------+
| min(saldo) |
+------------+
| 1200000
|
+------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk
menampilkan nilai minimal/terkecil dari kolom saldo.
mysql> select sum(saldo) from nasabah;
+------------+
| sum(saldo) |
+------------+
| 24600000
|
+------------+
1 row in set (0.05 sec)
Perintah di atas berfungsi untuk
menampilkan jumlah nilai yang ada pada kolom saldo.
mysql> select avg(saldo) from nasabah;
+--------------+
| avg(saldo)
|
+--------------+
| 2733333.3333 |
+--------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk
menampilkan jumlah nilai rata-rata yang ada pada kolom saldo. Sedangakan fungsi
perintah-perintah yang lainnya dapat dilihan pada listing dan pelaksanaan
praktikum di atas.
LATIHAN
Membuat data bases baru dengan data sesuai pada
modul praktikum data bases yang ada.
mysql>
create table Datacabang(
-> Kd_cbng varhar(9)primaray key,
-> Nama varchar(25)not null,
-> Alamat varchar(15)not null,
-> Jmlnsb varchar(2));
Query
OK, 0 rows affected (0.08 sec)
mysql> select * from Datacabang;
+---------+------------------+---------------+--------+
| Kd_cbng | Nama | Alamat | Jmlnsb |
+---------+------------------+---------------+--------+
| KC001
| KC AKAKOM | JANTI | 8 |
| KC002
| KC GEJAYAN | GEJAYAN | 5
|
| KC003
| KC WIROBRAJAN |
WIROBRAJAN | 8 |
| KC004
| KC GEDUNG KUNING | GEDUNG KUNING | 7 |
| KC005
| KC BABARSARI |
BABARSARI | 3 |
+---------+------------------+---------------+--------+
5 rows in set (0.01 sec)
mysql>
create table Datanasabah(
-> Kd_Nsb varhar(9)primaray key,
-> Nama varchar(25)not null,
-> Alamat varchar(25)not null,
-> Rekening varchar(15)not null,
->Kd_cbng varchar(7)not null,
-> saldo varchar(22));
Query
OK, 0 rows affected (0.08 sec)
mysql> select * from Datanasabah;
+--------+----------+---------------+----------+---------+---------+
| Kd_Nsb | Nama | Alamat | Rekening | Kd_cbng | saldo |
+--------+----------+---------------+----------+---------+---------+
| N001
| Januar | Condong Catur |
12340001 | KC002 | 1500000 |
| N002
| Febri | Gejayan | 12340002 | KC004 | 2500000 |
| N003
| Marina | Gamping | 12340003 | KC005 | 1400000 |
| N004
| Aprilia | Janti | 12340004 | KC001 | 7000000 |
| N005
| Memey | Kotabaru |
12340005 | KC003 | 2000000 |
| N006
| Junita | Kalasan | 12340006 | KC001 | 1200000 |
| N007
| Juliana | Terban | 12340007 | KC002 | 1300000 |
| N008
| Agusto | Sleman | 12340008 | KC005 | 2800000 |
| N009
| Septiana | Terban |
12340009 | KC004 | 9000000 |
| N010
| Oktavia | Segan | 12340010 | KC003 | 4500000 |
| N011
| Novia | Monjali | 12340011 | KC001 | 750000
|
| N012
| Desia | Timoho | 12340012 | KC005 | 1200000 |
+--------+----------+---------------+----------+---------+---------+
12 rows in set (0.00 sec)
No.
2
a. Menampilkan semua nasabah, alamat dan
saldonya.
mysql> select Alamat, saldo
from Datanasabah;
+---------------+---------+
| Alamat | saldo |
+---------------+---------+
| Condong Catur | 1500000 |
| Gejayan | 2500000 |
| Gamping | 1400000 |
| Janti | 7000000 |
| Kotabaru | 2000000 |
| Kalasan | 1200000 |
| Terban | 1300000 |
| Sleman | 2800000 |
| Terban | 9000000 |
| Segan | 4500000 |
| Monjali | 750000
|
| Timoho | 1200000 |
+---------------+---------+
12 rows in set (0.00 sec)
b. Menampilkan nama dengan saldo > 2000000
mysql> select * from
Datanasabah where saldo > 2000000;
+--------+----------+---------+----------+---------+---------+
| Kd_Nsb | Nama | Alamat
| Rekening | Kd_cbng | saldo |
+--------+----------+---------+----------+---------+---------+
| N002 | Febri
| Gejayan | 12340002 | KC004 |
2500000 |
| N004 | Aprilia
| Janti | 12340004 | KC001 | 7000000 |
| N008 | Agusto
| Sleman | 12340008 | KC005 | 2800000 |
| N009 | Septiana | Terban | 12340009 | KC004 | 9000000 |
| N010 | Oktavia
| Segan | 12340010 | KC003 | 4500000 |
+--------+----------+---------+----------+---------+---------+
5 rows in set (0.00 sec)
c. Menampilkan nasabah dengan alamat Gejayan.
mysql> select * from
Datacabang where Alamat like'%Gejayan%';
+---------+------------+---------+--------+
| Kd_cbng | Nama | Alamat
| Jmlnsb |
+---------+------------+---------+--------+
| KC002 | KC GEJAYAN | GEJAYAN | 5 |
+---------+------------+---------+--------+
1 row in set (0.00 sec)
d. Menampilkan nama nasabah dengan kode cabang
KC003.
mysql> select * from
Datacabang where Kd_cbng like'%KC003%';
+---------+---------------+------------+--------+
| Kd_cbng | Nama | Alamat | Jmlnsb |
+---------+---------------+------------+--------+
| KC003 | KC WIROBRAJAN | WIROBRAJAN | 8 |
+---------+---------------+------------+--------+
1 row in set (0.00 sec)
e. Menampilkan semua data kantor cabang (nama
dan alamat)
mysql> select Nama,Alamat from
Datacabang;
+------------------+---------------+
| Nama | Alamat |
+------------------+---------------+
| KC AKAKOM | JANTI |
| KC GEJAYAN | GEJAYAN |
| KC WIROBRAJAN | WIROBRAJAN |
| KC GEDUNG KUNING | GEDUNG
KUNING |
| KC BABARSARI | BABARSARI |
+------------------+---------------+
5 rows in set (0.00 sec)
f. Menampilkan nama kantor cabang dengan alamat
janti.
mysql> select * from
Datanasabah where Alamat like'%JANTI%';
+--------+---------+--------+----------+---------+---------+
| Kd_Nsb | Nama | Alamat | Rekening | Kd_cbng | saldo |
+--------+---------+--------+----------+---------+---------+
| N004 | Aprilia | Janti | 12340004 | KC001 | 7000000 |
+--------+---------+--------+----------+---------+---------+
1 row in set (0.02 sec)
g. Manampilkan nama kantor cabang dengan jumlah
nasabah > 5 orang.
mysql> select * from
Datacabang where Jmlnsb >5;
+---------+------------------+---------------+--------+
| Kd_cbng | Nama | Alamat | Jmlnsb |
+---------+------------------+---------------+--------+
| KC001 | KC AKAKOM | JANTI | 8 |
| KC003 | KC WIROBRAJAN | WIROBRAJAN | 8
|
| KC004 | KC GEDUNG KUNING | GEDUNG KUNING | 7 |
+---------+------------------+---------------+--------+
3 rows in set (0.00 sec
C.
TUGAS
Mengupdate
data kantor cabang dengan kode KC002 menjadi:
Nama : KC AMBARUKMO
Alamat : AMBARUKMO
Jumlah Nasabah : 15
mysql>
update datacabang
-> set nama = 'KC AMBARUKMO', alamat =
'AMBARUKMO', jml_nasabah = '15'
-> where Kd_Cabang = 'KC002';
Query
OK, 1 row affected (0.00 sec)
Rows
matched: 1 Changed: 1 Warnings: 0
mysql>
select nama, alamat, jml_nasabah from datacabang where kd_cabang='KC002';
+--------------+-----------+-------------+
|
nama | alamat | jml_nasabah |
+--------------+-----------+-------------+
|
KC AMBARUKMO | AMBARUKMO | 15 |
+--------------+-----------+-------------+
1
row in set (0.00 sec)
Menghapus
data semua kantor cabang dengan jumlah nasabah kurang dari 5.
mysql>
delete from datacabang where jml_nasabah<'5';
Query
OK, 1 row affected (0.00 sec)
mysql>
select * from datacabang;
+-----------+------------------+---------------+-------------+
|
Kd_Cabang | Nama |
Alamat | Jml_Nasabah |
+-----------+------------------+---------------+-------------+
|
KC001 | KC AKAKOM | JANTI | 8 |
|
KC002 | KC AMBARUKMO | AMBARUKMO |
15 |
|
KC003 | KC WIROBRAJAN | WIROBRAJAN |
8 |
|
KC004 | KC GEDUNG KUNING | GEDUNG
KUNING | 7 |
+-----------+------------------+---------------+-------------+
4
rows in set (0.00 sec)
Mengupdate
data nasabah dengan kode N0010 menjadi:
Alamat : Monjali
Saldo : 9000000
mysql>
update datanasabah
-> set alamat = 'Monjali',
saldo='9000000'
-> where kd_nasabah='N0010';
Query
OK, 1 row affected (0.00 sec)
Rows
matched: 1 Changed: 1 Warnings: 0
mysql>
select * from datanasabah where kd_nasabah='N0010';
+------------+---------+---------+----------+-----------+---------+
|
Kd_Nasabah | Nama | Alamat | Rekening | Kd_Cabang | Saldo |
+------------+---------+---------+----------+-----------+---------+
|
N0010 | Oktavia | Monjali | 12340010
| KC003 | 9000000 |
+------------+---------+---------+----------+-----------+---------+
1
row in set (0.00 sec)
Menghapus
semua nasabah dengan alamat Terban.
mysql> delete from datanasabah
where alamat='Terban';
Query OK, 2 rows affected (0.00
sec)
Untuk melihat apakah datanya
sudah dihapus, kita coba panggil nasabah dengan alamat Terban.
mysql> select * from
datanasabah where alamat='Terban';
Empty set (0.00 sec)
Data tidak ditemukan, berarti
data sudah benar terhapus.
Menampilkan
saldo maksimal.
mysql> select max(saldo) from
datanasabah;
+------------+
| max(saldo) |
+------------+
| 9000000 |
+------------+
1
row in
set (0.36 sec)
Menampilkan
rata-rata saldo nasabah.
mysql> select avg(saldo)from
datanasabah;
+--------------+
| avg(saldo) |
+--------------+
| 2935000.0000 |
+--------------+
1
row in
set (0.00 sec)
Menampilkan
jumlah nasabah.
mysql>
select count(kd_nasabah)from datanasabah;
+-------------------+
|
count(kd_nasabah) |
+-------------------+
| 10 |
+-------------------+
1 row in set (0.00 sec)
No comments:
Post a Comment