SQL (Structured Query Language) Materi Pertemuan
Pendahuluan SQL Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih user-friendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable. SQL menggunakan kombinasi aljabar relasional & kalkulus relasional.
Struktur Dasar SQL Sebuah ekspresi SQL dasar terdiri atas 3 klausa yaitu : - SELECT - FROM - WHERE
Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query Klausa FROM digunakan untuk menetapkan relasi/tabel atau gabungan tabel yang akan ditelusuri selama query data dilakukan Klausa where digunakan sebagai predikat (kriteria) yang harus dipenuhi dalam memperoleh hasil query Sifat klausa where opsional
Sintak (format penulisan) dari ekspresi SQL dasar dengan 3 klausa tersebut adalah : select A1 [, A2, …, An] FROM t1 [, t2, …, tm] [ where P ]
Keterangan : A1, A2, …, An merupakan daftar atribut t1, t2, …, tm merupakan daftar tabel atau relasi P merupakan predikat [ ] merupakan tanda opsional (boleh digunakan, boleh tidak digunakan) tergantung kebutuhan
Klausa SELECT Klausa ini berasosiasi dengan operasi Projeksi dalam Aljabar Relasional Contoh : Jika ingin menampilkan NPM dan Nama Mahasiswa di tabel Mahasiswa maka perintahnya SELECT NPM, nama FROM Mahasiswa
Jika ingin melakukan query terhadap semua atribut dapat dilakkan dengan menuliskan semua atribut satu per satu atau dengan menggunakan notasi * SELECT * FROM mahasiswa
Klausa WHERE Klausa ini berasosiasi dengan operasi Seleksi dalam Aljabar Relasional Klausa ini boleh tidak digunakan yang artinya query dilakukan untuk semua record di dalam tabel yang disebutkan pada klausa FROM SQL menggunakan konektivitas logika AND, OR dan NOT dalam klausa WHERE.
Operator yang dapat digunakan : = menyatakan kesamaan menyatakan ketidaksamaan < = menyatakan lebih kecil atau sama dengan > = menyatakan lebih besar atau sama dengan < menyatakan lebih kecil > menyatakan lebih besar Operator Logika yang dapat digunakan (and, or)
Contoh Skema Perbankan branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number)
12 Contoh query : “Temukan semua loan number untuk pinjaman-pinjaman yang dibuat pada cabang Perryridge dengan jumlah lebih besar dari $1200”. Query-nya ditulis sebagai berikut : SELECT loan-number FROM loan WHERE branch-name = “Perryridge” and amount >1200
13 Klausa WHERE Contoh : jika diinginkan menemukan loan- number yang jumlah pinjamannya antara $90000 dan $100000, ditulis sebagai berikut : SELECT loan-number FROM loan WHERE amount between and
Perlu diperhatikan untuk melakukan query terhadap 2 tabel atau lebih tabel-tabel yang menjadi sumber query harus memiliki keterhubungan yang diwakili dengan kesamaan nilai
Klausa FROM Klausa ini berasosiasi dengan operasi Cartesian Product dalam Aljabar Relasional Contoh : SELECT * FROM Mahasiswa, Jurusan WHERE Mahasiswa.KodeJurusan = Jurusan.KodeJurusan
Kita dapat menggunakan nama alias untuk tabel-tabel pada klausa FROM untuk menyederhanakan penulisan Ekspresi diatas dapat pula dinyatakan dengan : SELECT * FROM Mahasiswa M, Jurusan J WHERE M.KodeJurusan = J.KodeJurusan
17 Contoh query : “Untuk semua customer yang mempunyai sebuah pinjaman dari bank, temukan nama dan loan number mereka”.
18 Klausa FROM SELECT customer-name, borrower.loan- number FROM borrower, loan WHERE borrower.loan-number = loan.loan.number
Database Perusahaan yang Menjual Buku Pelanggan (id-pel, nama, alamat, jenkel) Kasir (id-kas, nama, alamat, jenkel) Buku (kd-bk, penulis, penerbit, tahun terbit) Tramsaksi (id-pel, id-kas, kd-bk, tgl transaksi) Soal, tuliskanlah perintah SQL terhadap query berikut ini: 1. Tampilkan semua data pelanggan yang berjenis kelamin perempuan 2. Tampilkan nama dan jenis kelamin kasir yang beralamat di Rajawali 3. Tampilkan kode buku dan nama penulis yang tahun terbitnya adalah Tampilkan id pelanggan yang terdaftar, tetapi tidak melakukan transaksi 5. Tampilkan nama pelanggan, yang melakukan transaksi pada tanggal tampilkan nama kasir yang melayani transaksi pelanggan dengan ID pelanggan P-001 dan pada tanggal
Fungsi-fungsi SQL SUM COUNT AVG MIN MAX DELETE
SUM SUM Untuk menjumlah suatu kolom tertentu yang telah definisikan dalam perintah select. Sintak : SELECT SUM (nama_kolom) FROM nama_tabel [WHERE = Kondisi] Contoh : SELECT SUM (SKS) FROM Mata_Kuliah
COUNT COUNT Untuk menghitung jumlah baris dalam sebuah tabel. Sintak : SELECT COUNT nama_kolom FROM nama_tabel [WHERE] Contoh : SELECT COUNT (*) FROM mahasiswa SELECT COUNT (SKS) FROM Mata_Kuliah
AVG AVG Untuk menghitung nilai rata – rata dari suatu kolom tertentu yang telah definisikan dalam perintah select. Sintak : SELECT AVG nama_kolom FROM nama_tabel [WHERE] Contoh : SELECT AVG (SKS) FROM Mata_Kuliah
MIN MIN Untuk mengetahui nilai terkecil dari sebuah kolom tertentu dalam perintah select. Sintak : SELECT MIN nama_kolom FROM nama_tabel [WHERE] Contoh : SELECT MIN (SKS) FROM Mata_Kuliah
MAX MAX Untuk mengetahui nilai terbesar dari sebuah kolom tertentu dalam perintah select. Sintak : SELECT MAX nama_kolom FROM nama_tabel [WHERE] Contoh : SELECT MAX (SKS) FROM Mata_Kuliah
DELETE Yang dapat dihapus (delete) hanyalah baris, bukan nilai pada suatu atribut tertentu. Dalam SQL, deletion diekspresikan dengan : DELETE FROM r WHERE p Dimana p menunjukkan kondisi predikat dan r adalah nama tabel. Contoh : Hapus semua rekening Smith, ditulis : DELETE FROM depositor WHERE costomer-name = “Smith”