structured query language
Embed Size (px)
DESCRIPTION
STRUCTURED QUERY LANGUAGEsqlteknologi informasiTRANSCRIPT
BAB IVSTRUCTURED QUERY LANGUAGE4.1 Tujuan PratikumBab IV akan membahas kegiatan pratikum mengenai Structured Query Language dimana tujuan dari pratikum tersebut adalah sebagai berikut :1. Mengetahui dan memahami konsep dasar bahasa SQL.2. Mengetahui dan memahami Data Manipulation Language.3. Mengetahui dan memahami penggunaan perintah-perintah dalam SQL.
4.2Tinjauan PustakaSQL merupakan singkatan dari Structured Query Language.SQL merupakan bahasa komputer standard ANSI ( American National Standard Institude ).Dengan SQL kita dapat mengakses database, menjalankan queri untuk mengambil data dari database, menambahkan data ke database, menghapus data di dalam database, dan meng-update data di dalam database.Pernyataan SQL dapat dikelompokkan menjadi beberapa kelompok, yakni:1. Data Definition Language Ini adalah perintah dasar untuk membangun kerangka nya database, seperti:a. CREATE: Perintah ini digunakan untuk membuat. Membuat database baru, view baru, kolom, dll.b. ALTER: Perintah ini digunakan untuk mengubah strukturnya tabel yang sudah jadi sebelumnya. Seperti mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom,bisa juga untuk memberikan atribut pada kolom.c. DROP: Perintah ini digunakan untuk menghapus database dan tabel.2. Data Manipulation LanguageIni adalah perintah untuk memanipulasi data dalam database yang sudah dibuat. Perintah-perintahnya seperti:a.INSERT: Perintah ini digunakan untuk menyisipkan atau memasukan databaru ke dalam tabel.b.SELECT: Perintah ini digunakan untuk mengambil data atau menampilkan data dari suatu tabel.Data yang kita ambil bisa kita tampilkan dalam layar prompt MySQL secara langsung atau melalui tampilan aplikasi.c.UPDATE: Perintah ini digunakan untuk memperbarui data lama menjadi data baru.d.DELETE: Perintah ini digunakan untuk menghapus data dari tabel3. DCL atau Data Control LanguageDCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :a. GRANTb. REVOKESedangkan manfaat dari SQL adalah sebagai berikut :1. Dapat berinteraksi dengan semua basis data.2. Perintah yang digunakan bentuknya umum dan menggunakan bahasa inggris.3. Dapat melakukan operasi dengan basis data yang kompleks dan rumit.SQL dibuat menggunakan sedikit perintah atau kata. Beberapa konsep menyangkut pemrograman bahasa SQL yang perlu kamu pahami antara lain :1. Basis Data (database)2. Table3. Kolom dan tipe Data4. Baris 5. Kunci
4.2.1Data Manipulation Language (DML)Data Manipulation Language (DML) merupakan bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa :1. Penyisipan / penambahan data pada file / table dalam suatu basis data.2. Penghapusan data pada file / table dalam suatu basis data.3. Pengubahan data pada file / table dalam suatu basis data.4. Penelusuran data pada file / table dalam suatu basis data.Pada level phisik kita harus mendefinisikan alghoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi yang dipentingkan bukan efisien akses, tapi juga efisiensi interaksi pemakai dengan sistem. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 (dua) jenis DML adalah sebagai berikuit :1. Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.2. Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.Bahasa prosedural dari DML antara lain seperti dBase, FoxBase, sedangkan untuk Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example).4.2.1.1Select Perintah SELECT adalah perintah yang paling umum digunakan dalam SQL. Hal ini memungkinkan pengguna dari database untuk mengambil informasi spesifik yang mereka inginkan dari dalam database. Perintah SQL untuk melakukan penambahan data adalah menggunakan syntax: SELECT nama_kolom FROM nama_tabelAtauSELECT*FROM nama_tabel.Berikut adalah contoh penggunaan perintah select dalam tabletb karyawan : Perintah yang ditunjukkan di bawah ini mengambil seluruh informasi yang terkandung dalam tabel tbkaryawan. Tanda bintang digunakan sebagai wildcard di SQL. Hal ini secara berarti "Keseluruhan Pilih dari tabel tbkaryawan." SELECT * FROM tbkaryawanAtau, pengguna mungkin ingin membatasi atribut yang diambil dari database. Sebagai contoh, departemen Sumber Daya Manusia mungkin memerlukan daftar nama terakhir dari semua karyawan dalam perusahaan. Perintah SQL berikut akan mengambil hanya bahwa informasi: SELECT namakry FROM tbkaryawanWHERE dapat digunakan untuk membatasi record yang akan diambil sesuai dengan kriteria tertentu. Perintah berikut mengambil semua data yang terkandung dalam tbkaryawan untuk arsip yang memiliki nilai gaji yang lebih besar dari Rp 2,000,000: SELECT *
FROM tbkaryawan
WHERE gaji> 2000000
4.2.1.2InsertPerintah INSERT di SQL digunakan untuk menambahkan record ke tabel yang dituju. Sintaks yang digunakan adalah :INSERT INTO [(field1, field2, )]Berikut adalah contoh penggunaan perintah INSERT pada tabel tbkaryawan :INSERT INTO tbkaryawan VALUES ('2010011234', 'Ilham', 'Jakarta', '1984-12-20'', 'Sawangan', 'Pria', 3500000);
INSERT INTO tbkaryawan VALUES ('2010011235', 'Davina', 'Jakarta', '1990-06-16'', 'Sawangan', 'Wanita', 2500000);
INSERT INTO tbkaryawan VALUES ('2010011236', 'Bambang', 'Jakarta', '1982-02-11'', 'Depok', 'Pria', 2750000);
4.2.1.3UpdatePerintah UPDATE dapat digunakan untuk mengubah informasi yang terkandung dalam sebuah tabel, baik secara massal maupun individu. Sintaks yang digunakan untuk melakukan perintah tersebut adalah :UPDATE nama_tabelSET kolom1=value, kolom2=value2, ,WHERE kolom=valueBerikut adalah contoh penggunaan perintah Update pada tabel tb.karyawan :Setiap tahun, perusahaan kami memberikan semua karyawan kenaikan biaya-of-hidup 3% gaji mereka. Perintah SQL berikut bisa digunakan untuk segera menerapkan kepada seluruh karyawan disimpan dalam database: UPDATE tbkaryawan
SET gaji = gaji * 0.03
Di sisi lain, baru karyawan kami Ilham telah menunjukkan kinerja kerja yang baik dan berprestasi. Manajemen ingin memberikan apresiasi prestasi dengan kenaikan 5000000. Klausa WHERE yang dapat digunakan untuk Ilham: UPDATE tbkaryawan
SET gaji = gaji + 5000000
WHERE nik = '2010011234'
4.2.1.4DeleteDelete adalah perintah DML yang digunakan untuk menghapus data record. Sintaks yang digunakan dalam melakukan perintah Delete adalah sebagai berikut :DELETE FROM nama_tabelWHERE nama_kolom = nama valueContoh penggunaan Delete pada digunakan untuk menghapus catatan dari tabel tbkaryawan adalah sebagai berikut : DELETE FROM tbkaryawan
WHERE nik = '2010011236'
4.2.2Query JoinFungsi JOIN dipergunakan untuk menampilkan data yang berasal lebih dari satu tabel. Relation/pemetaan/join pada dasarnya berfungsi untuk membuat hubungan antara satu tabel dengan tabel yang lainnya. Relation ini bisa dibentuk pada saat mendesain suatu database atau pada saat mengakses database (Retrieve Data). 4.2.2.1Inner JoinInner join berfungsi sebagai pemetaan relasi one-to-one (satu ke satu), yaitu dimana hanya satu record tabel A yang sama dengan satu record tabel B, dan hanya satu record tabel B yang sama dengan satu record tabel A. Contoh dari pengunaan Inner Join adalah sebagai berikut :SELECT*FROM tpinjaman INNERJOIN tnasabah_kredit ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdtINNERJOIN tpegawai ON tpinjaman.id_pegawai = tpegawai.id_pegawaiINNERJOIN tjaminanON tpinjaman.id_jaminan = tjaminan.id_jaminan;
4.2.2.2 Left JoinLeft outer join berfungsi sebagai pemetaan relasi many-to-one (banyak ke satu), yaitu dimana beberapa record tabel A yang sama dengan satu record tabel B.SELECT*FROM ttransaksi LEFTJOIN tjenis_trans ON ttransaksi.id_jenis_trans = tjenis_trans.id_jenis_trans;
4.2.2.3Right JoinRight outer join berfungsi sebagai pemetaan relasi one-to-many (satu ke banyak), yaitu dimana hanya satu record tabel A yang sama dengan beberapa record tabel B.SELECT*FROM ttransaksi RIGHTJOIN tjenis_trans ON ttransaksi.id_jenis_trans = tjenis_trans.id_jenis_trans;
4.2.2.4 UnionUnion berfungsi sebagai pemetaan relasi many-to-many (banyak ke banyak), yaitu dimana beberapa record tabel A yang sama dengan satu record tabel B, dan beberapa record tabel B yang sama dengan satu record tabel A.SELECT id_nas_tbg,nama, alamat, telepon, jenis_kelamin FROM tnasabah_tbgUNIONSELECT id_nas_krdt,nama, alamat, telepon, jenis_kelamin FROM tnasabah_kredit;4.2.3Query AgregationFungsi aggregate merupakan fungsi digunakan untuk mengelompokkan hasil query. Bila terdapat beragam fungsi di perintah query, maka fungsi ini umumnya akan dilakukan terakhir kali. Fungsi aggregateantara lain min ( ), max ( ), count( ), sum ( ), avg ( ).
4.2.3.1 MinDigunakan untuk mencari nilai terkecil dari sekumpulan record.Contoh:SELECT MIN(saldo) FROM rekening; dibatasi dengan WHERE clause sehingga hanya record(-record) tertentu yang ditelusuri:SELECT MIN(saldo) FROM rekeningWHERE kode_cabang = BRUS;
4.2.3.2 MaxDigunakan untuk mencari nilai terbesar dari sekumpulan record.Contoh:SELECT MAX(saldo) FROM rekening;Juga bisa dibatasi dengan WHERE clause:SELECT MAX(saldo) FROM rekeningWHERE kode_cabang = BRUS;
4.2.3.3 CountDigunakan untuk menghitung banyaknya record.Contoh:a. SELECT COUNT(*) FROM nasabah;b. SELECT COUNT(nama_nasabah) FROM nasabah;c. SELECT COUNT(alamat_nasabah) FROM nasabah;Juga bisa dibatasi dengan WHERE clause.Jika kita ingin menghitung banyaknya record yang unik (tidak ada pengulangan), gunakan DISTINCT:SELECT COUNT(DISTINCT alamat_nasabah) FROM nasabah; select count(sks) as jmlsks from mtkul where sks=4;4.2.3.4 SumDigunakan untuk menjumlahkan nilai-nilai dari sekumpulan record.Contoh:SELECT SUM(saldo) FROM rekening;Bisa dibatasi dengan WHERE clause:SELECT SUM(saldo) FROM rekeningWHERE kode_cabang = BRUS;4.2.3.5 AvgDigunakan untuk menghitung rata-rata nilai dari sekumpulan record.Contoh:SELECT AVG(saldo) FROM rekening;Bisa dibatasi dengan WHERE clause:SELECT AVG(saldo) FROM rekening WHERE kode_cabang = BRUS;
4.2.4GroupingGrouping adalah perintah yang digunakan mengeleompokan tabel tabel berdasarkan kategori yang diinginkan.4.2.4.1Group By4.2.4.2HavingFungsi GROUP BY dipergunakan untuk mengelompokkan record-record pada tabel. Fungsi GROUP by dipergunakan mengikuti operasi agregat pada suatu perintah.SELECTCOUNT(id_pinjaman)AS total_peminjam FROM tpinjaman INNERJOIN tnasabah_kredit ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdtINNERJOIN tpegawai ON tpinjaman.id_pegawai = tpegawai.id_pegawaiINNERJOIN tjaminanON tpinjaman.id_jaminan = tjaminan.id_jaminanGROUPBY id_pinjaman;
4.2.4.3 HavingFungsi HAVING memiliki kesamaan fungsi seperti WHERE. Tetapi fungsi HAVING dipergunakan bila ada pemanggilan operasi GROUP dalam query dan operand-nya melibatkan pemanggilan operasi agregat. Jadi fungsi HAVING dipergunakan mengikuti Fungsi GROUP BY, untuk memberikan suatu kondisi. Syntaknya adalah sebagai berikut :SELECT colulmn_expression FROM table_name GROUP BY grouping_expression HAVING roup_condition Sedangkan contohnya adalah sebagai berikut :SELECTCOUNT(id_pinjaman)AS total_peminjam FROM tpinjaman INNERJOIN tnasabah_kredit ON tpinjaman.id_nas_krdt = tnasabah_kredit.id_nas_krdtINNERJOIN tpegawai ON tpinjaman.id_pegawai = tpegawai.id_pegawaiINNERJOIN tjaminanON tpinjaman.id_jaminan = tjaminan.id_jaminanGROUPBY tnasabah_kredit.nama HAVING1;
4.2.5FungsiMacam macam fungsi pada_SQL antara lain adalah sebagai berikut :1. Tanda *digunakan untuk memilih semua isi tabelMisal : select * from namatabel 2. Fungsi WHERE berfungsi untuk menentukan suatu pilihan atau kondisi tertentuMisalselect * from namatabel where namakolom = kondisi 3. Fungsi DISTINC digunakan untuk menghilangakan nilai ganda pada suatu kolom atau tabelContoh : select distinct namakolom from namatabel 4. Operator AND digunakan untuk memilih nilai yang memiliki kondisi sama antara kondisi1 dan kondisi2contoh sintak : select * from namatabel where kondisi1=.. AND kondisi2 = ... 5. Operator ORdigunakan untuk memilih suatu tabel atau kolom dan menampilkan nilai jika salah satu kondisi dari kondisi yang di tentukan memenuhi
Contoh : select * from namatabel where kondisi1=.. OR kondisi2 = ... 6. Fungsi NOT di gunakan untuk memilih suatu nilai pada tabel atau kolom yang tidak sama dengan kondisi yang telah di tentukan
Contoh : selesct * from namatabel where namakolom not = kondisi 7. Fungsi ORDER BYdigunakan untuk memilih suatu nilai dari tabel atau kolom dan mengurutkan data tersebutContoh : select namakolom from nama tabel where namakolom = kondisi order by namakolompengurut desc/ascketerangan : namakolompengurut adalah dasar pengurutan
8. Funsi BETWEEN fungsi between digunakan untuk memilih nilai di antara kondisi yang di tentukan Contoh : select * from namatabel where kondisi between kondisi kondisi 4.3Pembahasan dan AnalisaPratikum pada Bab sebelumnya telah menghasilkan rancangan Physical Data Model dari Sistem Informasi perpustakaan. Hasil rancangan tersebut akan dituangkan ke dalam perintah perintah yang ada dalam bahasa basis data SQL.4.3.1 Analisa MasalahHasil Pratikum sebelumnya, telah menghasilkan rancangan Physical Data Model dari system informasi yang ada di perpustakaan. Tabel yang dihasilkan dari PDM tersebut antara lain : Tabel Petugas, Tabel Anggota, Tabel Kategori, Tabel Buku, Tabel Penerbit, Tabel Pengarang, Tabel Peminjaman, Tabel Detail Peminjaman.
4.3.2Pembahasan MasalahAda beberapa langkah yang dilakukan untuk menerjemahkan tabel tabel hasil rancangan PDM ke dalam aplikasi SQLyog Enterpris langkah langkah tersebut antara lain sebagai berikut.4.3.2.1 Membuat Database PerpustakaanLangkah pertama kita harus terlebih dahulu membuat database yang diberi nama perpustakaan. Pada main menu, carilah pilihan database create database.
Gambar 4.1 Database Perpustakaan
4.3.2.2 Membuat Tabel pada Database PerpustakaanLangkah kedua adalah membuat tabel tabel hasil rancangan Physical Data Model Sistem Informasi Perpustakaan:1. Membuat TabelUntuk membuat tabel yang ada pada rancangan PDM, maka pada main menu pilihlah table create table. Masukkan values pada bagian Grid dan klik create table untuk menyertakan nama dari tabel.
Gambar 4.2 Tabel Anggota
4.3.2.3 Melakukan Insert pada TabelUntuk menyisipkan value pada kolom pada tabel dilakukan dengan memasukkan data pada kolom yang ada atau dengan melakukan perintah:INSERT INTO nama_tabel (nama_kolom) VALUES (values1,values2)
Gambar 4.3 Insert Tabel
4.3.2.4 Melakukan Update pada TabelUpdate adalah perintah untuk mempebaharui data yang ada pada tabel. Update bisa dilakukan dengan secara langsung mengisi data pada tabel atau menggunakan sintaks update :UPDATE nama_tabel SET kolom1=value,kolom2=value2 WHERE kolom=value
Gambar 4.4 Update Tabel
4.3.2.5 Melakukan Delete pada tabelMelakukan delete pada tabel dapat dilakukan dengan melakukan menekan tabel yang akan di delete kemudian tekan delete pada keyboard maka akan muncul kotak dialog seperti ini.
Gambar 4.5 Delete TabelAtau dengan menggunakan perintah delete untuk menghapus kolom yang lebih spesifik :DELETE FROM nama_tabel WHERE nama_kolom=nama_value
Gambar 4.6 Perintah Delete Tabel
4.3.2.5 Melakukan Select pada TabelSelect dapat dilakukan dengan cara menggunakan sintaks : SELECT nama_kolom FROM nama_tabel
Gambar 4.7 Select Tabel
4.3.2.5 Melakukan Query JoinQuery Join yang dilakukan pada tabel antara lain : Inner Join, Left Join, Right Join dan Union.1. Inner JoinInner Join dapat dilakukan dengan menggunakan sintaks : SELECT * FROM tabel_tujuanINNER JOIN tabel_sumber1 ON tabel_tujuan.nama_kolom = tabel_sumber.nama_kolom
Gambar 4.8 Inner Join Tabel2. Left JoinLeft Join dapat dilakukan dengan menggunakan sintaks : SELECT*FROM nama_tabel1LEFT JOIN nama_tabel2ON nm_tabel1.id_tabel2 = nm_tabel2.id_tabel2
Gambar 4.9 Left Join Tabel
3. Right JoinInner Join dapat dilakukan dengan menggunakan sintaks : SELECT*FROM nama_tabel1RIGHT JOIN nama_tabel2ON nm_tabel1.id_tabel2 = nm_tabel2.id_tabel2
Gambar 4.9 Right Join Tabel
4. UnionUnion Join dapat dilakukan dengan menggunakan sintaks : SELECT kolom1,kolom2FROM nama_tabel1SELECT kolom1,kolom2FROM nama_tabel2
Gambar 4.9 Union Join Tabel
4.3.2.5 Query AgregationPerintah Query Agregation yang akan dilakukan pada tabel antara lain COUNT, SUM, AVERAGE, MAX, MIN. Dalam melakukan query aggregation, tabel yang akan dipakai adalah tabel kategori yang memiliki kolom numerik.
Gambar 4.10 Tabel Kategori1. CountCount dapat dilakukan dengan menggunakan sintaks : SELECT COUNT(nama_kolom) AS tabel_baru FROM nama_tabel
Gambar 4.11 Count pada Tabel2. SumSum dapat dilakukan dengan menggunakan sintaks : SELECT SUM(nama_kolom) AS tb_baru FROM nama_tabel_asli;
Gambar 4.12 Sum pada Tabel
3. AverageAverage dapat dilakukan dengan menggunakan sintaks : SELECT AVG (nama_kolom) AS tb_baru FROM nama_tabel_asli;
Gambar 4.13 Sum pada Tabel
4. MaxMax dapat dilakukan dengan menggunakan sintaks : SELECT MAX (nama_kolom) AS tb_baru FROM nama_tabel_asli;
Gambar 4.14 Max pada Tabel5. MinMin dapat dilakukan dengan menggunakan sintaks : SELECT MIN (nama_kolom) AS tb_baru FROM nama_tabel_asli;
Gambar 4.14 Min pada Tabel
4.3.2.6 GroupingPerintah Grouping yang akan dilakukan pada tabel adalah Having dan Group By.1. Group By Group By dapat dilakukan dengan menggunakan sintaks :SELECT AVG (nama_kolom) FROM (nama_tabel)GROUP BY (nama_kolom);
Gambar 4.15 Group By pada Tabel2. HavingHaving dapat dilakukan dengan menggunakan sintaks :SELECT colulmn_expression FROM table_name GROUP BY grouping_expression HAVING roup_condition
Gambar 4.16 Having pada Tabel