SQL Lanjut Modifikasi Database 1
Tujuan mampu melakukan Modifikasi Database Mendefinisikan Skema Database mampu membuat Views 2
Pokok k Bahasan DML Modifikasi Database Mendefinisikan Skema Database Views 3
Modifikasi dfk Database Perintah modifikasi tidak mengirim suatu hasil (spt pd query), tetapi mengubah database dg beberapa cara. Ada tiga jenis modifikasi: 1. Insert a tuple or tuples. 2. Delete a tuple or tuples. 3. Update nilai i pada existing iti tuple or tuples. 4
Insertion Menyisipkan satu baris INSERT INTO <relation> VALUES ( <list of values> ); Contoh: t h Tambahkan ke Likes(drinker, i k beer) Sally suka Bud. INSERT INTO Likes VALUES( Sally, Bud ); 5
Contoh: Menspesifikasikan Atribut Cara lain menambahkan Sally suka Bud ke Likes(drinker, beer): INSERT INTO Likes(beer, drinker) VALUES( Bud, Sally ); 6
Menyisipkan banyak Baris hasil query dapat disisipka ke tabel, dg form: INSERT INTO <relation> ( <subquery> ); 7
Contoh: Penyisipan subquery Using Frequents(drinker, bar), masukkan ke tabel baru PotBuddies(name) semua drinkers yg sering minimal pada sebuah bar yg Sally juga sering. 8
The other drinker Solution INSERT INTO PotBuddies (SELECT d2.drinker drinker FROM Frequents d1, Frequents d2 WHERE d1.drinker d = Sally AND d2.drinker <> Sally AND d1.bar = d2.bar ); Pairs of Drinker tuples where the first is for Sally, the second is for someone else, and the bars are the same. 9
Deletion Menhapus baris yg memenuhi kondisi dari tabel: DELETE FROM <tabel> WHERE <kondisi>; 10
Contoh: Deletion Hapus dari Likes(drinker, beer) Sally suka Bud: DELETE FROM Likes WHERE drinker = Sally AND beer = Bud ; 11
Contoh: Hapus semua baris Menjadikan tabel kosong: DELETE FROM Likes; ctt WHERE tidak digunakan 12
Contoh: Hapus banyak baris hapus dari Beers(name, manf) semua beers yg ada beer lainnya pada pabrik sama. DELETE FROM Beers b WHERE EXISTS ( SELECT name FROM Beers by tuple b. WHERE manf = b.manf AND name <> b.name); Beers with the same manufacturer and a different name from the name of the beer represented 13
Updates Sintaksnya : UPDATE <tabel> SET <daftar atribut> WHERE <kondisi i pd baris>; 14
Contoh: Update ganti no telp Fred ke 555-1212: UPDATE Drinkers SET phone = 555-1212 WHERE name = Fred ; 15
Contoh: Update beberapa b baris Jadikan $4 sbg maximum harga beer: UPDATE Sells SET price = 4.00 WHERE price > 4.00; 16
Mendefinisikan Skema Database A database schema terdiri deklarasi dari relations ( tables ) database. Beberapa elemen yg juga bisa muncul pada schema database, meliputi views, indexes, dan triggers. 17
Membuat (mendeklarasikan) sebuah Tabel Bentuk sederhana : CREATE TABLE <nama> ( <daftar atribut> ); Untuk menghapus sebuah tabel: DROP TABLE <nama>; 18
Elemen Deklarasi Tabel Elemen dasar: sebuah attribut dan typenya. The type umum: INT or INTEGER (synonyms). REAL or FLOAT (synonyms). CHAR(n ) = string panjang tetap n characters. VARCHAR(n ) = string panjang variable sampai n characters. 19
Contoh: Create Table CREATE TABLE Sells ( bar CHAR(20), beer VARCHAR(20), price REAL ); 20
Tanggal dan Waktu Tanggal dan Waktu adalah tipe pada SQL. Format tanggal DATE yyyy-mm-dd Contoh: DATE 2004-09-30 untuk Sept. 30, 2004. 21
Nilai Waktu Format nilai waktu: TIME hh:mm:ss dg titik desimal opsional dan pecahan adalah detik. Contoh: TIME 15:30:02.5 = dan dan setengah detik setelah 3:30PM. 22
Mendeklarasikan k Kunci Sebuah attribut atau daftar attribut bisa dideklarasikan PRIMARY KEY atau UNIQUE. Ada beberapa perbedaan yg akan dijelaskan lanjut. 23
Deklarasi Kunci Attribut Tunggal Letakkan PRIMARY KEY atau UNIQUE setelah type attribut. Contoh: CREATE TABLE Beers ( name CHAR(20) UNIQUE, ); manf CHAR(20) 24
Deklarasi Kunci Multiattribut Bentuk ini esensial jika kunci berisi lebih dari satu attribut. 25
Contoh: Multiattribute Key bar dan beer kunci bersama untuk Sells: CREATE TABLE Sells ( bar CHAR(20), ); beer VARCHAR(20), price REAL, PRIMARY KEY (bar, beer) 26
Bentuk Deklarasi lain Attribut 1. NOT NULL nilanya tidak pernah menjadi NULL. 2. DEFAULT <value> jika ada nilai yg tidak diketahui maka digunakan status ini 27
Contoh: Nilai Default CREATE TABLE Drinkers ( name CHAR(30) PRIMARY KEY, ); addr CHAR(50) DEFAULT 123 Sesame St., phone CHAR(16) 28
Efek kdari Defaults --- (1) Sewaktu menyisipkan Sally adalah drinker, tetapi tidak diketahui alamat maupun no telpnya INSERT dg daftar sebagian attribut bisa dimungkinkan: INSERT INTO Drinkers(name) VALUES( Sally ); 29
Efek dari Defaults --- (2) Baris apa yg muncuk pada Drinkers? name addr phone Sally 123 Sesame St NULL jika telah dideklarasikan telp NOT NULL, penyisipan p akan ditolak. 30
Menambah Attribut Attribut ( kolom ) baru le tabel dg skema: ALTER TABLE <nama> ADD <deklarasi attribut>; Contoh: t h ALTER TABLE Bars ADD phone CHAR(16)DEFAULT unlisted ; 31
Menghapus Attribut Menghilangkan attribut dari tabel dg skema : ALTER TABLE <name> DROP <attribute>; Contoh: ALTER TABLE Bars DROP license; 32
Views Sebuah b h view adalah sebuah tabel virtual = sebuah tabel yg didefinisikan dlm bentuk tabel lain. Deklarasinya: CREATE VIEW <nama> AS <query>; A ntonymnya: tabel yg nilainya benar2 disimpan pd database disebut tabel dasar. 33
Contoh: Definisi View CanDrink(drinker, beer) adalah sebuah view berisi pasangan drinker-beer demikian hingga drinker sering sedikitnya sebuah bar melayani beer: CREATE VIEW CanDrink AS SELECT drinker, beer FROM Frequents, Sells WHERE Frequents.bar = Sells.bar; 34
Contoh: Mengakses View Query thd view sama spt pada tabel dasara. Contoh query: SELECT beer FROM CanDrink WHERE drinker = Sally ; 35