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