MODUL 9
SQL (OPERASI PADA TABEL TUNGGAL)
A.MAKSUD DAN TUJUAN
Agar mahasiswa memahami tentang perintah-perintah yang digunakan untuk melakukan operasi dan melakukan modifikasi pada tabel tunggal.
B.PEMBAHASAN
ALL : kata kunci dasar untuk pernyataan select. Kondisi denagn ALL menghasilkan nilai benar jika perbandingan dihasilkan niali benar untuk setiap nilai dalam subquery. Tetapi kita hampir tidak pernah menemukan kata kunci tersebut karena hasil dari select<nama tabel> dan select all<nama tabel> adalah identik.
Pelaksanaan praktikum :
//untuk menampilkan table dari dbproyek1.
mysql> select * from divisi;
+---------+------------+-------------+---------------------------+
| kodediv | lokasi | kodemanager | namadiv |
+---------+------------+-------------+---------------------------+
| D101 | Bandung | 13235500 | Construction Management |
| D102 | Yogyakarta | 13235539 | Marketing Management |
| D501 | Yogyakarta | 13235540 | Management Information Sy |
| D535 | Jakarta | 13235552 | Production Management |
+---------+------------+-------------+---------------------------+
4 rows in set (0.00 sec)
//digunakan untuk menampilkan data dari divisi yang berisi kodediv, lokasi, kodemanager, namadiv.
mysql> select kodediv, namadiv from divisi order by namadiv;
+---------+---------------------------+
| kodediv | namadiv |
+---------+---------------------------+
| D101 | Construction Management |
| D501 | Management Information Sy |
| D102 | Marketing Management |
| D535 | Production Management |
+---------+---------------------------+
4 rows in set (0.00 sec)
//untuk menampilkan kodediv, namadiv dari table divisi mengurutkan namadiv berdasar nama secara urut naik.
mysql> select kodediv, namadiv from divisi order by namadiv desc;
+---------+---------------------------+
| kodediv | namadiv |
+---------+---------------------------+
| D535 | Production Management |
| D102 | Marketing Management |
| D501 | Management Information Sy |
| D101 | Construction Management |
+---------+---------------------------+
4 rows in set (0.00 sec)
//digunakan untuk menampilkan data kodediv, namadiv, dari table divisi dan mengurutkan secara urut turun.
mysql> select kodediv, namadiv from divisi order by kodediv;
+---------+---------------------------+
| kodediv | namadiv |
+---------+---------------------------+
| D101 | Construction Management |
| D102 | Marketing Management |
| D501 | Management Information Sy |
| D535 | Production Management |
+---------+---------------------------+
4 rows in set (0.00 sec)
// untuk mengurutkan berdasarkan nama kodediv secara urut naik.
mysql> select kodediv, namadiv, lokasi from divisi order by namadiv desc, lokasi
;
+---------+---------------------------+------------+
| kodediv | namadiv | lokasi |
+---------+---------------------------+------------+
| D535 | Production Management | Jakarta |
| D102 | Marketing Management | Yogyakarta |
| D501 | Management Information Sy | Yogyakarta |
| D101 | Construction Management | Bandung |
+---------+---------------------------+------------+
4 rows in set (0.00 sec)
//untuk mengurutkan divisi menurut jenis dan nama. Pada kodediv, namadiv, lokasi untuk table divisi.
mysql> select kodediv, namadiv from divisi order by 2;
+---------+---------------------------+
| kodediv | namadiv |
+---------+---------------------------+
| D101 | Construction Management |
| D501 | Management Information Sy |
| D102 | Marketing Management |
| D535 | Production Management |
+---------+---------------------------+
4 rows in set (0.00 sec)
mysql> select kodediv, namadiv from divisi order by 2;
+---------+---------------------------+
| kodediv | namadiv |
+---------+---------------------------+
| D101 | Construction Management |
| D501 | Management Information Sy |
| D102 | Marketing Management |
| D535 | Production Management |
+---------+---------------------------+
4 rows in set (0.00 sec)
//untuk mengurutkan divisi menurut kolom 2 (jenis).
mysql> select kodediv, namadiv, lokasi, avg(kodemanager) from divisi group by l
kasi;
+---------+-------------------------+------------+------------------+
| kodediv | namadiv | lokasi | avg(kodemanager) |
+---------+-------------------------+------------+------------------+
| D101 | Construction Management | Bandung | 13235500 |
| D535 | Production Management | Jakarta | 13235552 |
| D102 | Marketing Management | Yogyakarta | 13235539.5 |
+---------+-------------------------+------------+------------------+
3 rows in set (0.03 sec)
mysql> select count(kodediv) from divisi;
+----------------+
| count(kodediv) |
+----------------+
| 4 |
+----------------+
1 row in set (0.00 sec)
//untuk menghasilkan cacah baris dari tabel kodediv kolom kodediv dalam count dapat diganti apa saja (hanya 1 field) cukup ditulis * (sembarang).
mysql> select * from divisi LIMIT 3;
+---------+------------+-------------+---------------------------+
| kodediv | lokasi | kodemanager | namadiv |
+---------+------------+-------------+---------------------------+
| D101 | Bandung | 13235500 | Construction Management |
| D102 | Yogyakarta | 13235539 | Marketing Management |
| D501 | Yogyakarta | 13235540 | Management Information Sy |
+---------+------------+-------------+---------------------------+
3 rows in set (0.00 sec)
//untuk membatasi jumlah baris yang ditampilkan hanya menampilkan 3 record dari atas.
mysql> select lokasi,count(*) as cacah from divisi group by lokasi;
+------------+-------+
| lokasi | cacah |
+------------+-------+
| Bandung | 1 |
| Jakarta | 1 |
| Yogyakarta | 2 |
+------------+-------+
3 rows in set (0.00 sec)
//menghitung jumlah acount dari divisi perjenis, khusus untuk yang dari lokasi.
LATIHAN
mysql> use perpustakaan;
Database changed
// digunakan untuk koneksi ke database sebelu menggunakan program mysql, kita harus mengakses basis data nya terlebih dahulu. Maka tanggapan mysql database changed.
mysql> show tables;
+------------------------+
| Tables_in_perpustakaan |
+------------------------+
| anggota |
| buku |
| jenisbk |
| pegawai |
| pengarang |
| pinjam |
+------------------------+
6 rows in set (0.00 sec)
// untuk menampilkan table pada perpustakaan. Yang hasil seperti table diatas.
mysql> select * from anggota;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0001 | Titik Hartati | 093110001 | 2.50 | AK | 5 |
| MHS0002 | Yani | 093110002 | 3.50 | AK | NULL |
mysql> select * from anggota order by nama_angt;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0010 | Arief | 093110010 | 3.90 | MI | NULL |
| MHS0009 | Arman | 093110009 | 3.01 | MI | NULL |
// untuk menampilkan data dari anggota dan mengurutkan data dengan menggunakan ORDER BY. Dengan nama urutan naik.
mysql> select * from anggota order by nama_angt, ipk desc;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0010 | Arief | 093110010 | 3.90 | MI | NULL |
| MHS0009 | Arman | 093110009 | 3.01 | MI | NULL |
// untuk menampilkan nama dan ipk semua anggota
mysql> select * from anggota order by ipk desc, jurusan;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0010 | Arief | 093110010 | 3.90 | MI | NULL |
| MHS0003 | Bernedictus Cico | 093110003 | 3.75 | AK | 3 |
| MHS0002 | Yani | 093110002 | 3.50 | AK | NULL |
// untuk menampilkan data anggota dengan mengurutkan ipkdengan jurusan.
mysql> select count(jurusan) from anggota;
+----------------+
| count(jurusan) |
+----------------+
| 21 |
// menampilkan jurusan dari anggota
mysql> select count(jurusan) from anggota group by jurusan;
+----------------+
| count(jurusan) |
+----------------+
| 3 |
| 8 |
// untuk menampilkan jurusan daria anggota.
mysql> select jurusan, count(jurusan) as 'banyak mahasiswa' from anggota group b
y jurusan;
+---------+------------------+
| jurusan | banyak mahasiswa |
+---------+------------------+
| AK | 3 |
| MI | 8 |
// pada perintah ini untuk menampilkan jurusan, acount dari banyak mahasiswa dari group anggota nya dari jurusan. Pad jurusan AK ada 3 jumlah mahasiswa, sedangkan pada MI ada 8 mahasiswa.
mysql> select jurusan, avg(ipk) as 'Rerata IPK' from anggota group by jurusan;
+---------+------------+
| jurusan | Rerata IPK |
+---------+------------+
| AK | 3.250000 |
| MI | 2.696250 |
// untuk menampilkan data pada table jurusan dengan menghitung rata-rata ipk,
mysql> select jurusan, max(ipk) as 'Rerata IPK' from anggota group by jurusan;
+---------+------------+
| jurusan | Rerata IPK |
+---------+------------+
| AK | 3.75 |
| MI | 3.90 |
// untuk menampilkan data bedasarkan ipk terbesar pada rata-rata ipk darijurusan.
mysql> select jurusan, min(ipk) as 'Rerata IPK' from anggota group by jurusan;
+---------+------------+
| jurusan | Rerata IPK |
+---------+------------+
| AK | 2.50 |
// menampilkan jurusan untuk memperoleh nilai ipk yang terkecil dari rerata ipk dari anggota jurusan.
mysql> select * from anggota limit 6;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0001 | Titik Hartati | 093110001 | 2.50 | AK | 5 |
// untuk menampilkan data dari anggota dan membatasi jumlah baris yang ditampilkan. Hanya menampilkan 6 record dari atas.
mysql> select * from anggota order by nama_angt limit 6;
+---------+------------------+-----------+------+---------+--------------+
| id_angt | nama_angt | nip_nim | ipk | jurusan | hari_nunggak |
+---------+------------------+-----------+------+---------+--------------+
| MHS0010 | Arief | 093110010 | 3.90 | MI | NULL |
| MHS0009 | Arman | 093110009 | 3.01 | MI
| NULL |
// untuk menampilkan data anggota yang diurutkan dari anggota dan ditampilkan 6 record dari atas.
C.TUGAS
mysql> show tables;
+----------------------+
| Tables_in_tokoonline |
+----------------------+
| barang |
| detailbeli |
mysql> select * from barang;
+-------------+--------------------+--------------+
| kode_barang | nama_barang | harga_barang |
+-------------+--------------------+--------------+
| PRHP001 | HP LASER 4L | 1250000.00 |
| PRHP002 | HP LASER 5L | 1450000.00 |
mysql> select * from barang order by harga_barang;
+-------------+--------------------+--------------+
| kode_barang | nama_barang | harga_barang |
+-------------+--------------------+--------------+
| PRCN001 | CANON DESKJET 1000 | 650000.00 |
| PRCN002 | CANON DESKJET 1200 | 750000.00 |
mysql> select * from barang order by harga_barang desc;
+-------------+--------------------+--------------+
| kode_barang | nama_barang | harga_barang |
+-------------+--------------------+--------------+
| PRHP006 | HP LASER 1500 | 1950000.00 |
| PRHP005 | HP LASER 1020 | 1850000.00 |
mysql> select count(*) from barang order by harga_barang desc;
+----------+
| count(*) |
+----------+
| 11 |
mysql> select sum(harga_barang) from barang;
+-------------------+
| sum(harga_barang) |
+-------------------+
| 14350000.00 |
mysql> select avg(harga_barang) from barang;
+-------------------+
| avg(harga_barang) |
+-------------------+
| 1304545.454545 |
mysql> select * from barang group by kode_barang like 'prn%';
+-------------+-------------+--------------+
| kode_barang | nama_barang | harga_barang |
+-------------+-------------+--------------+
| PRHP001 | HP LASER 4L | 1250000.00 |
mysql> select avg(harga_barang) as 'Rerata Harga' from barang;
+----------------+
| Rerata Harga |
+----------------+
| 1304545.454545 |
mysql> select * from barang where kode_barang like 'prh%';
+-------------+---------------+--------------+
| kode_barang | nama_barang | harga_barang |
+-------------+---------------+--------------+
| PRHP001 | HP LASER 4L | 1250000.00 |
mysql> select avg(harga_barang) from barang where kode_barang like 'prh%';
+-------------------+
| avg(harga_barang) |
+-------------------+
| 1633333.333333 |
mysql> select avg(harga_barang) from barang where kode_barang like 'prc%';
+-------------------+
| avg(harga_barang) |
+-------------------+
| 910000.000000 |
mysql> select kode_barang, avg(harga_barang) from barang where kode_barang like
'prc%';
+-------------+-------------------+
| kode_barang | avg(harga_barang) |
+-------------+-------------------+
| PRCN001 | 910000.000000 |
mysql> select kode_barang, avg(harga_barang) from barang where kode_barang like
'prh%';
+-------------+-------------------+
| kode_barang | avg(harga_barang) |
+-------------+-------------------+
| PRHP001 | 1633333.333333 |
mysql> select max(harga_barang) from barang where nama_barang like 'HP%';
+-------------------+
| max(harga_barang) |
+-------------------+
| 1950000.00 |
mysql> select nama_barang, max(harga_barang) from barang where nama_barang like
'HP%';
+-------------+-------------------+
| nama_barang | max(harga_barang) |
+-------------+-------------------+
| HP LASER 4L | 1950000.00 |
mysql> select nama_barang, max(harga_barang) from barang where nama_barang like
'Canon%';
+--------------------+-------------------+
| nama_barang | max(harga_barang) |
+--------------------+-------------------+
| CANON DESKJET 1000 | 1150000.00 |
mysql> select nama_barang, min(harga_barang) from barang where nama_barang like
'Canon%';
+--------------------+-------------------+
| nama_barang | min(harga_barang) |
+--------------------+-------------------+
| CANON DESKJET 1000 | 650000.00 |
mysql> select nama_barang, min(harga_barang) from barang where nama_barang like
'HP%';
+-------------+-------------------+
| nama_barang | min(harga_barang) |
+-------------+-------------------+
| HP LASER 4L | 1250000.00 |
D.KESIMPULAN
Untuk memahami perintah-perintah yang digunakan untuk melakukan operasi dan melakukan modifikasi pada tabel tunggal. Kondisi dengan ALL menghasilkan nilai benar jika perbandingan dihasilkan nilai benar untuk setiap niali dalam subquery.
E.LISTING
Terlampir
Langganan:
Posting Komentar (Atom)


Tidak ada komentar:
Posting Komentar