Structured Query Language SQL sering disebut sebagai query
Structured Query Language
• SQL sering disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. • SQL dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan untuk SQL. • perintah SQL pada semua software database hampir sama. • Terdapat 2 (dua) jenis perintah SQL, yaitu : 1. DDL (Data Definition Language) merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table Beberapa perintah dasar yang termasuk DDL: CREATE , ALTER , RENAME , DROP
2. DML atau Data Manipulation Language DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain : SELECT , INSERT, UPDATE, DELETE
Bentuk umum perintah-perintah sql • Mengganti nama table: rename table namatabellama to namatabelbaru; • Menghapus tabel pada database drop table namatabel; • Mengisi data pada table insert into namatabel values (kolom 1, kolom 2, . . . ); • Melihat seluruh isi record pada table select * from namatabel; • Melihat isi record pada table select field from namatabel;
Contoh: o Menampilkan field nama lengkap dan alamat dari table anggota select nama_lengkap, alamat from aggota; o Menampilkan semua field dari table anggota dengan syarat alamat = ‘jakarta’ select * from anggota where alamat=‘jakarta’; o Menampilkan semua field dari table anggota dengan nama terurut select * from anggota order by nama_lengkap; o Menampilkan alamat dari table anggota select alamat from aggota; o Menampilkan alamat dengan tidak menampilkan alamat yang sama dari table anggota select distinct alamat from anggota; o Menampilkan nama lengkap dan alamat yang tinggal di jakarta dari table anggota select nama_lengkap, alamat from anggota where alamat like ‘%jakarta’;
• Menghapus seluruh record pada table Delete from nama table; • Menghapus record dengan kriteria tertentu Delete from namatabel where kriteria; Contoh: Delete from anggota where id_anggota=‘agt 2’; • Mengubah (edit) record tertentu Update namatabel set field=‘nilaibaru’, field=‘nilaibaru’ where kriteria; Contoh: Update anggota set alamat=‘kranji’, where id_anggota=‘agt 2’;
Php. My. Admin • Adalah suatu program open source berbasis web yang dibuat menggunakan aplikasi PHP • Digunakan untuk mengakses database My. SQL • Agar dapat menggunakan semua perintah SQL pada PHP, diperlukan fungsi My. SQL
Fungsi My. SQL Penggunaan mysql_connect() Membuka koneksi dengan database My. SQL server mysql_create_db() Membuat database mysql_fetch_row() Menghasilkan array/baris dengan keluaran nama field pada tabel My. SQL mysql_select_db() Untuk masuk pada database My. SQL mysql_drop_db() Menghapus database mysql_fetch_array () Menghasilkan data berupa array dalam bentuk angka dari isi tabel My. SQL mysql_error() Menampilkan pesan kesalahan dalam bentuk teks dari server My. SQL
Contoh penggunaan fungsi My. SQL Koneksi database <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); ? >
Membuat database <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_query("create database if not exists karyawan"); ? > <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); if (mysql_query("create database if not exists pegawai")) {print ("database berhasil dibuat"); } else {print ("gagal membuat database". mysql_error ()); } ? >
Menampilkan database <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); $perintah=mysql_query("show databases"); While($baris=mysql_fetch_array($perintah)) echo "$baris[0] "; ? >
Menghapus database <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); $perintah="drop database perpus"; if (mysql_query($perintah)) {echo "terhapus"; } else {echo "tdk terhapus". mysql_error(); } ? >
Membuat tabel <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); $perintah 1="create table anggota (no_agt varchar(5) not null primary key, nama char (20) not null)"; $perintah 2=mysql_db_query("perpus", $perintah 1); if ($perintah 2) {print ("tabel berhasil dibuat"); } else {print ("gagal membuat tabel". mysql_error ()); } ? >
Menampilkan tabel <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah=mysql_query("show tables"); While($baris=mysql_fetch_array($perintah)) echo "$baris[0] "; ? >
Menghapus tabel <? php mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah="drop table perpus. buku"; if (mysql_query($perintah)) {echo "terhapus"; } else {echo "tdk terhapus". mysql_error(); } ? >
Menambah data ke tabel <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $tbl_anggota="insert into anggota(no_agt, nama) values ('agt 8', 'namakau')"; if (mysql_query($tbl_anggota)) {echo "berhasil"; } else {echo "gagal". mysql_error(); } ? >
Latihan Tambahkan data-data berikut ke tabel seperti pada contoh skrip slide sebelum ini No_agt Nama agt 1 Namaku Agt 2 Namamu Agt 3 Namanya Agt 4 Namakau
Menampilkan seluruh isi record pada table <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah 1="select * from anggota"; $perintah 2=mysql_query($perintah 1); while($perintah 3=mysql_fetch_array($perintah 2)) {echo $perintah 3["no_agt"]; echo $perintah 3["nama"]. ' ‘; }? >
Menampilkan data kolom tertentu <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah 1="select nama from anggota"; $perintah 2=mysql_query($perintah 1); while($perintah 3=mysql_fetch_array($perintah 2)) {echo $perintah 3["nama"]. ' ‘; }? >
Latihan Ganti perintah sql pada contoh slide sebelumnya dengan perintah-perintah sql berikut: Menampilkan record dengan syarat tertentu • select * from anggota where nama='namakau' • select * from anggota where jenkel>=2 • select count(no_agt), nama from anggota group by jenkel • Select nama from anggota group by alamat having (jenkel)='P'
Mengubah struktur table <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah="alter table anggota add jenkel char(1)"; if (mysql_query($perintah)) {echo "berhasil"; } else {echo "gagal". mysql_error(); }? > alter table anggota modify column jenkel char(2) alter table anggota drop jenkel
Memperbarui Record <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah="update anggota set jenkel='P' where no_agt='agt 1'"; if (mysql_query($perintah)) {echo "berhasil"; } else {echo "gagal". mysql_error(); }? >
Buat tabel berikut: Tentukan sendiri strukturnya simpan dengan nama peminjaman No_pinjam No_anggota No_buku Tanggal P 01 agt 1 B 03 1/12/2018 P 02 Agt 2 B 04 5/12/2018 P 03 Agt 3 B 01 9/12/2018 P 04 Agt 4 B 02 10/12/2018 P 05 Agt 1 B 01 13/12/2018 P 06 Agt 4 B 04 15/12/2018
SQL Lanjutan • Join: digunakan untuk memilih data dari dua tabel atau lebih. Perintah-perintah join: – Inner join, left outer join, right outer join • Data Access – Grant (memberikan hak akses), revoke (menarik hak akses) • Data Integrity – Recover table • Auxiliary – Select … into outfile “namafile” – Load – Rename table • Aggregate – Count, sum, avg, min, max • Subquery (dijelaskan pada slide 28)
Contoh Inner join <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah 1="select anggota. no_agt, peminjaman. no_pinjam from anggota inner join peminjaman on anggota. no_agt = peminjaman. no_agt"; $perintah 2=mysql_query($perintah 1); while($perintah 3=mysql_fetch_array($perintah 2)) {echo $perintah 3["no_agt"]. ' '; echo $perintah 3["no_pinjam"]. ' '; } ? >
Latihan Ganti perintah sql pada contoh slide sebelumnya dengan perintah sql berikut: • select anggota. no_agt, peminjaman. no_pinjam from anggota left outer join peminjaman on anggota. no_agt = peminjaman. no_agt • select anggota. no_agt, peminjaman. no_pinjam from anggota right outer join peminjaman on anggota. no_agt = peminjaman. no_agt
Contoh Auxiliary Mengubah nama tabel <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah="rename table anggota to datanggota"; if (mysql_query($perintah)) {echo "berhasil"; } else {echo "gagal". mysql_error(); } ? >
Subquery Adalah subselect yang dapat digunakan di klausa WHERE dan HAVING dipernyataan select luar untuk menghasilkan tabel akhir. Aturan-aturan untuk membuat subquery, yaitu : 1. Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat digunakan di pernyataan Select luar. 2. Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery menggunakan kata kunci EXIST 3. Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari subquery tersebut. 4. Saat subquery adalah satu dari dua operand dilibatkan dalam perbandingan, subquery harus muncul di sisi kanan
Penggunanaan ANY dan ALL • Jika subquery diawali kata kunci ALL, syarat hanya akan bernilai TRUE jika dipenuhi semua nilai yang dihasilkan subquery itu. • Jika subquery diawali kata kunci ANY, syaratnya akan bernilai TRUE jika dipenuhi sedikitnya satu nilai yang dihasilkan subquery tersebut. Penggunanaan EXIST DAN NOT EXIST • EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di tabel hasil yang dikirim oleh subquery dan EXIST mengirim nilai FALSE jika subquery mengirim tabel kosong. • Untuk NOT EXIST kebalikan dari EXIST.
Contoh 1 penggunaan subquery mengambil data peminjaman anggota yang bernama “namamu” <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah 1="select no_pinjam, no_agt, jumlah from peminjaman where no_agt= (select no_agt from anggota where nama= 'namamu')"; $perintah 2=mysql_query($perintah 1); while($perintah 3=mysql_fetch_array($perintah 2)) {echo $perintah 3["no_pinjam"]. ' '; echo $perintah 3["no_agt"]. ' '; echo $perintah 3["jumlah"]. ' ‘; }? >
Contoh 2 penggunaan EXISTS mengambil data anggota yang tidak pernah meminjam buku <? php $koneksi = mysql_connect("localhost", "root", "") or die ("koneksi gagal"); mysql_select_db("perpus"); $perintah 1="select nama from anggota where not exists (select no_pinjam from peminjaman where peminjaman. no_agt=anggota. no_agt)"; $perintah 2=mysql_query($perintah 1); while($perintah 3=mysql_fetch_array($perintah 2)) {echo $perintah 3["nama"]. ' ‘; }? >
- Slides: 31