Basis Data Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan
Deletion Yang dapat dihapus (delete) hanyalah tuple bukan nilai ada suatu atribut tertentu. Dalam SQL, deletion diekspresikan dengan DELETE FROM r WHERE p Dimana p menunjukkan predikat dan r adalah relasi. Contoh : Hapus semua rekening Smith DELETE FROM depositor WHERE customer-name = Smith Contoh: Hapus semua pinjaman dengan jumlah pinjaman antara $1300 dan $1500 DELETE FROM loan WHERE amount between 1300 and 1500
Contoh Query Hapus semua account pada cabang Perryridge delete from account where branch-name = Perryridge Hapus semua account di setiap cabang yang berlokasi di Needham city delete from account where branch-name in (select branch-name from branch where branch-city = Needham ) delete from depositor where account-number in (select account-number from branch, account where branch-city = Needham and branch.branch-name = account.branch-name)
Insertion Untuk menambahkan satu tuple dalam relasi digunakan statement insert. Contoh : INSERT INTO account values ( Perryridge, A-9732,1200) Query ini identik dengan INSERT INTO account (branch-name, account-number, balance) values ( Perryridge, A-9732,1200) Insert juga dapat dilakukan untuk suatu hasil dari query yang lain. Contoh : INSERT INTO account SELECT branch-name, loan-number, 200 FROM loan WHERE branch-name = Perryridge
Contoh Query Semua loan customer yang mempunyai account di branch Perryridge mendapat tambahan $200. Dimana loan number menjadi account number untuk setiap account yang baru insert into account select loan-number, branch-name, 200 from loan where branch-name = Perryridge insert into depositor select customer-name, loan-number from loan, borrower where branch-name = Perryridge and loan.account-number = borrower.account-number
Update Dalam situasi tertentu, diinginkan untuk mengganti nilai dalam sebuah tuple tanpa harus mengganti semua nilai dalam tuple tersebut. Untuk tujuan ini dapat digunakan statement update. Contoh : untuk menaikkan saldo para nasabah sebesar 5% ditulis query sebagai berikut : UPDATE account SET balance = balance * 1.05
Contoh Query Untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih dari $10000 UPDATE account SET balance = balance *1.06 WHERE balance >10000
Contoh Query Naikkan semua account dengan saldo di atas $10,000 sebesar 6%, account yang lain sebesar 5%. Ada dua dua statemen update: update account set balance = balance * 1.06 where balance > 10000 update account set balance = balance * 1.05 where balance 10000 Urutan statemen PENTING!!
Contoh Query Query yang sama dengan sebelumnya: Naikkan semua account dengan saldo di atas $10,000 sebesar 6%, account yang lain sebesar 5%. update account set balance = case when balance <= 10000 then balance *1.05 else balance * 1.06 end
Relasi Join Operasi join melibatkan dua buah relasi dan mengembalikan satu relasi baru sebagai hasil. Biasanya digunakan sebagai ekspresi subquery pada klausa from Kondisi Join mendefinisikan tuple mana dari dua relasi yang sesuai dan atribut apa yang ditampilkan pada hasil join. Tipe Join mendefinisikan bagaimana tuple dari tiap relasi yang tidak memenuhi kondisi diperlakukan.
Contoh Dataset
Inner Join
Left Outer Join
Natural Inner Join
Natural Right Outer Join
Full Outer Join
Contoh Query Tampilkan semua customer yang memiliki account atau loan (tapi tidak keduanya) di bank select customer-name from (depositor natural full outer join borrower) where account-number is null or loan-number is null
Definisi Skema Di SQL Relasi SQL didefinisikan dengan perintah create table: create table r (A1 D1, A2 D2,..., An Dn, (integrity-constraint1),..., (integrity-constraintk)) r adalah nama relasi setiap Ai adalah nama atribut pada skema relasi r Di adalah tipe data dari domain nilai atribut Ai Contoh: create table branch (branch-name char(15) not null, branch-city char(30), assets integer)
Integrity Constraint not null primary key (A1,..., An) check (P), dimana P adalah predikat Contoh: Deklarasikan branch-name sebagai primary key branch dan pastikan bahwa nilai dari asset nonnegatif create table branch (branch-name char(15), branch-city char(30) assets integer, primary key (branch-name), check (assets >= 0))
Drop dan Alter Table Perintah drop table menghapus semua informasi mengenai relasi yang di-drop dari basis data. Perintah alter table digunakan untuk menambahkan atribut pada relasi yang ada alter table r add A D dimana A adalah nama atribut yang akan ditambahkan ke relasi r dan D merupakan domain dari A. Semua tuple pada relasi diisi dengan NULL sebagai nilai pada atribut baru. Perintah alter table dapat juga digunakan untuk mendrop atribut dari relasi alter table r drop A dimana A adalah nama atribut dari relasi r Dropping atribut tidak didukung pada banyak basis data