SQL (Structured Query Language) Materi Pertemuan 21- 24
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)
WHERE branch-name = “Perryridge” and amount >1200 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
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 90000 and 100000
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
Contoh query : “Untuk semua customer yang mempunyai sebuah pinjaman dari bank, temukan nama dan loan number mereka”.
Klausa FROM SELECT customer-name, borrower.loan-number FROM borrower, loan WHERE borrower.loan-number = loan.loan.number