Sistem Basis Data 1 Apa yang akan dibahas? • Pengertian SQL • Penggolongan Statement SQL • Aturan Gramatika SQL • Struktur Dasar SQL • Query Satu (1) Tabel 2 SQL • SQL (Structured Query Language)… • Bahasa standar yang digunakan untuk mengakses database relasional. • Merupakan bahasa yang tidak prosedural atau terstruktur seperti C atau Pascal. • Beberapa software database yang mengguna kan SQL sebagai perintah untuk mengakses database.. • DB2, ORACLE, Ms.Access, MySQL, PostgreSQL, Sybase,dll. 3 Statement SQL Terbagi dalam dua kelompok, yaitu… DDL (Data Definition Language) : untuk mendefinisikan struktur suatu data. Perintah-perintahnya… CREATE (untuk membuat tabel) ALTER (untuk mengubah struktur tabel) DROP (untuk menghapus tabel) DML (Data Manipulation Language) : untuk memanipulasi suatu tabel. Perintah-perintahnya… SELECT (untuk query isi tabel) INSERT (untuk memasukkan isi tabel) UPDATE (untuk mengubah isi tabel) DELETE (untuk menghapus isi tabel) 4 Aturan Gramatika SQL 1. Semua pernyataan SQL ditutup dengan tanda titik koma (;). 2. Dapat ditulis dalam satu baris atau dipisah-pisah dalam beberapa baris agar mudah dibaca. 3. Tidak bersifat case sensitive untuk penulisan perintah- perintah SQL, nama tabel dan nama kolom. 4. Ditulis menurut sintaks tertentu. 5. Dapat diberikan garis komentar untuk dokumentasi dan menjelaskan maksud pemrograman. 5 Struktur Dasar SQL • Implementasi SQL sangat bervariasi, bergantung pada vendor software. Akibatnya beberapa perintah SQL pada tiap software memiliki perbedaan pada sintaks penulisan. • Struktur dasar SQL…. SELECT A1 [, A2, …, An] FROM t1 [, t2, …, tm] [WHERE P] 6 Struktur Dasar SQL Dimana: A1, A2, …, An : daftar atribut (field) sebagai hasil query T1, t2,…, tm : daftar tabel (relasi) yang akan ditelusuri P : predikat/syarat kondisi query Ket : tanda [ ] berarti bersifat pilihan; boleh digunakan boleh tidak 7 SELECT sebagai dasar bagi Anda untuk belajar query 8 Query 1 Tabel 1. Menampilkan Semua Kolom Semua Baris SELECT * FROM nama_tabel; Untuk menampilkan kolom tertentu, maka nama kolom yang ingin ditampilkan ditulis setelah kata SELECT SELECT nama_kolom FROM nama_tabel; Jika kolom yang ingin ditampilkan lebih dari satu, maka penulisan antar nama kolom dipisahkan dengan koma. SELECT nama_kolom1, nama_kolom2 FROM nama_tabel; 9 Query 1 Tabel Untuk menampilkan hanya sebuah baris tertentu yang memenuhi syarat, maka kondisi dalam WHERE perlu dilibatkan kunci primer SELECT * FROM nama_tabel WHERE nama_kolom_kunci_primer=„syarat‟; 10 Query 1 Tabel 2. Penggunaan Operator Relasional Dalam Kriteria Operator relasional adalah operator yang di gunakan untuk melakukan pembandingan antara dua buah nilai. Daftar operator relasional Operator Keterangan = Sama dengan > Lebih dari < Kurang dari >= Lebih dari atau sama dengan <= Kurang dari atau sama dengan <> Tidak sama dengan 11 Query 1 Tabel 3. Penggunaan Operator Filter (Penyaringan) Operator BETWEEN Digunakan untuk menangani operasi jangkauan diantara dua kondisi. SELECT nama_kolom FROM nama_tabel WHERE nama_kolom BETWEEN ‟syarat1‟ AND „syarat2‟; Operator NOT BETWEEN Jika ditambahkan NOT di depan BETWEEN maka di peroleh keadaan yang sebaliknya (tidak berada diantara dua kondisi). SELECT nama_kolom FROM nama_tabel WHERE nama_kolom NOT BETWEEN ‟syarat1‟ 12 AND „syarat2‟; Query 1 Tabel Operator IN Berguna untuk melakukan pencocokan dengan salah satu yang ada pada suatu daftar nilai (dapat menggantikan operator OR) SELECT nama_kolom FROM nama_tabel WHERE nama_kolom IN („nilai_1‟,..,‟nilai_n‟); Operator NOT IN operator ini melakukan pencocokan SELAIN yang ada dalam daftar nilai SELECT nama_kolom FROM nama_tabel WHERE nama_kolom NOT IN („nilai_1‟,..,‟nilai_n‟); 13 Query 1 Tabel Operator LIKE Untuk mencari data berdasarkan kriteria karakter tertentu. Mis: nama mahasiswa yang namanya diawali dengan huruf “S”. LIKE digunakan dengan simbol wildcard (%) Pola Keterangan Contoh pemakaian wildcard %a% Sama dengan apa saja yang mengandung karakter “a” atau “A” %a Sama dengan yang berakhiran “a” atau “A” a% Sama dengan yang berawalan “a” atau “A” 14 Query 1 Tabel Contoh: SELECT nama_mhs FROM mhs WHERE nama_mhs LIKE „Lu%‟; Output yang dihasilkan… Semua nama mhs yang dua huruf awal namanya adalah „Lu‟ 15 Query 1 Tabel Operator NOT LIKE Untuk mencari data yang tidak sama dengan karakter yang diberikan. Contoh: SELECT nama_mhs FROM mhs WHERE nama_mhs NOT LIKE „Lu%‟; Output yang dihasilkan… Semua nama mhs yang dua huruf awal namanya bukan „Lu‟ 16 Query 1 Tabel Operator IS NULL Untuk mencari data yang nilainya adalah NULL Contoh: SELECT nama_mhs FROM mhs WHERE asal_kota IS NULL; Output yang dihasilkan… Semua nama mhs dari tabel mhs yang data asal kota nya tidak disebutkan. Bedakan dengan operator “=“ (tidak dapat membandingkan nilai NULL) 17 Query 1 Tabel 4. Penggunaan Kolom Alias Untuk menampilkan nama kolom dengan nama lain dapat menggunakan AS Contoh: SELECT nama_mhs AS nama, almt AS alamat FROM mhs; 5. Penggunaan Distinct digunakan jika ingin menampilkan hasil query yang bernilai sama sebanyak satu kali (unik) 18 Query 1 Tabel Contoh: (tanpa menggunakan DISTINCT) SELECT nama_mhs FROM mhs; Output…. nama_mhs Ali Ali Budi Anto Contoh: (menggunakan DISTINCT) SELECT DISTINCT nama_mhs FROM mhs; Output…. nama_mhs Ali Budi Anto 19 Query 1 Tabel 6. Penggunaan Operator Gabung (Concat) Nilai dari dua kolom dapat ditampilkan ke dalam satu kolom dengan operator || Contoh: SELECT nama_kolom1 || nama_kolom2 “nama_kolom_simpan_gabungan” FROM nama_tabel; 20 Query 1 Tabel 7. Fungsi Agregat Merupakan fungsi yang disediakan untuk menghasil kan sebuah nilai berdasarkan sejumlah data Fungsi = suatu kumpulan instruksi yang menghasilkan sebuah nilai jika dipanggil Beberapa Daftar Fungsi Agregat Fungsi Agregat Keterangan AVG () Nilai rata-rata AVG (DISTINCT…) Nilai rata-rata untuk nilai yang unik COUNT() Jumlah data yang tidak NULL COUNT (DISTINCT…) Jumlah data yang tidak NULL dan nilainya unik MAX () Nilai terbesar MIN () Nilai terkecil SUM () Penjumlahan data 21 Latihan 1. Tampilkan employee_id, first_name, last_name dari tabel employees. 2. Tampilkan nama dan gaji dari pegawai yang berada di departemen 90. 3. Tampilkan nama pegawai dan id manager dari pegawai yang memiliki gaji > 3000 dan manager_id adalah 124 4. Sama seperti no.1 tetapi nama adalah gabungan dari first_name dan last_name serta beri judul kolom menjadi “Nama Pegawai” 5. Sama seperti no.2 tetapi gaji dalam 1 tahun. 22 Latihan 6. Tampilkan nama pegawai yang dimulai dengan huruf „K‟ 7. Tampilkan job_id yang unik dari tabel employees. 8. Tampilkan nama pegawai yang tidak memiliki manager. 9. Tampilkan nama pegawai dan gaji dari pegawai yang berada di departemen 10, 20, 50. 10.Tampilkan nama pegawai dan departemen_id dari pegawai yang gajinya diantara 2000 hingga 5000. 23 24