SQL Lanjut
Tujuan
mampu melakukan
Modifikasi DatabaseModifikasi Database
Mendefinisikan Skema Database
mampu membuat Views mampu membuat Views
k k
h
Pokok Bahasan
DML
Modifikasi Database
Mendefinisikan Skema Database Mendefinisikan Skema Database Views
d f k
b
Modifikasi 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.
Insertion
Menyisipkan satu baris
INSERT INTO <relation> INSERT INTO <relation>
VALUES ( <list of values> );
C t h T b hk k Lik (d i k
Contoh: Tambahkan ke Likes(drinker,
beer) Sally suka Bud.
INSERT INTO Likes
Contoh: Menspesifikasikan
Contoh: Menspesifikasikan
Atribut
Cara lain menambahkan Sally suka Bud
ke Likes(drinker, beer)( , ):
INSERT INTO Likes(beer drinker) INSERT INTO Likes(beer, drinker) VALUES(’Bud’, ’Sally’);
k
b
k
Menyisipkan banyak Baris
hasil query dapat disisipka ke tabel, dg
form:
INSERT INTO <relation> ( <subquery> );
h
b
Contoh: Penyisipan subquery
Using Frequents(drinker, bar),
masukkan ke tabel baru
PotBuddies(name) semua drinkers yg sering minimal pada sebuah bar yg g p yg Sally juga sering.
l
Pairs of Drinker The otherSolution
Pairs of Drinkertuples where the first is for Sally, the second is for drinkerINSERT INTO PotBuddies (SELECT d2 drinker
someone else, and the bars are the same.
(SELECT d2.drinker
FROM Frequents d1, Frequents d2 WHERE d1 d i k ’S ll ’ AND WHERE d1.drinker = ’Sally’ AND
d2.drinker <> ’Sally’ AND d1.bar = d2.bar
); );
l
Deletion
Menhapus baris yg memenuhi kondisi
dari tabel:
DELETE FROM <tabel> WHERE <kondisi>;
h
l
Contoh: Deletion
Hapus dari Likes(drinker, beer) Sally
suka Bud:
DELETE FROM Likes
WHERE drinker = ’Sally’ AND WHERE drinker = Sally AND
h
b
Contoh: Hapus semua baris
Menjadikan tabel kosong:
DELETE FROM Likes;
h
b
k b
Contoh: Hapus banyak baris
hapus dari Beers(name, manf) semua
beers yg ada beer lainnya pada pabrik sama.
DELETE FROM Beers b Beers with the samemanufacturer and a different name
WHERE EXISTS (
SELECT name FROM Beers
a different name from the name of the beer represented by tuple b
WHERE manf = b.manf AND name <> b name);
by tuple b.
d
Updates
Sintaksnya :
UPDATE <tabel> UPDATE <tabel>
SET <daftar atribut>
WHERE k di i d b i
h
d
Contoh: Update
ganti no telp Fred ke 555-1212:
UPDATE Drinkers UPDATE Drinkers
SET phone = ’555-1212’
WHERE ’F d’
h
d
b b
b
Contoh: Update beberapa baris
Jadikan $4 sbg maximum harga beer:
UPDATE Sells UPDATE Sells
SET price = 4.00
WHERE i 4 00
Mendefinisikan Skema Database
A
database schema
terdiri deklarasidari relations (“tables”) database.( )
Beberapa elemen yg juga bisa muncul
pada schema database meliputi views pada schema database, meliputi views, indexes, dan triggers.
Membuat (mendeklarasikan) sebuah
Membuat (mendeklarasikan) sebuah
Tabel
Bentuk sederhana :
CREATE TABLE <nama> ( CREATE TABLE <nama> (
<daftar atribut> ));
l
kl
b l
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
h
characters.
VARCHAR(n ) = string panjang variable
sampai n characters sampai n characters.
h
bl
Contoh: Create Table
CREATE TABLE Sells (
bar CHAR(20), bar CHAR(20), beer VARCHAR(20), i REAL price REAL );
T
l d
W kt
Tanggal dan Waktu
Tanggal dan Waktu adalah tipe pada
SQL SQL.
Format tanggal
DATE ’yyyy-mm-dd’
Contoh: DATE ’2004-09-30’ untuk
Nilai Waktu
Format nilai waktu:
TIME ’hh ’ TIME ’hh:mm:ss’
dg titik desimal opsional dan pecahan adalah detik.
d kl
k
Mendeklarasikan Kunci
Sebuah attribut atau daftar attribut bisa
dideklarasikan PRIMARY KEY atau UNIQUE.
Ada beberapa perbedaan yg akan Ada beberapa perbedaan yg akan
kl
b
l
Deklarasi Kunci Attribut Tunggal
Letakkan PRIMARY KEY atau UNIQUE
setelah type attribut.yp
Contoh:
CREATE TABLE Beers ( CREATE TABLE Beers (
kl
l
b
Deklarasi Kunci Multiattribut
Bentuk ini esensial jika kunci berisi
h
l
b
Contoh: Multiattribute Key
bar dan beer kunci bersama untuk Sells:
CREATE TABLE Sells ( CREATE TABLE Sells (
bar CHAR(20),
b VARCHAR(20)
beer VARCHAR(20),
Bentuk Deklarasi lain
Bentuk Deklarasi lain
Attribut
1. NOT NULL nilanya tidak pernah menjadi NULL.
2. DEFAULT <value> jika ada nilai yg j yg
tidak diketahui maka digunakan status ini
h
l
f l
Contoh: Nilai Default
CREATE TABLE Drinkers (
name CHAR(30) PRIMARY KEY, name CHAR(30) PRIMARY KEY, addr CHAR(50)
DEFAULT ’123 S St ’
DEFAULT ’123 Sesame St.’, phone CHAR(16)
f k d
f l
( )
Efek dari Defaults --- (1)
Sewaktu menyisipkan Sally adalah
drinker, tetapi tidak diketahui alamat , p maupun no telpnya
INSERT dg daftar sebagian attribut bisa INSERT dg daftar sebagian attribut bisa
dimungkinkan:
INSERT INTO Drinkers(name) INSERT INTO Drinkers(name) VALUES(’Sally’);
f k d
f l
( )
Efek dari Defaults --- (2)
Baris apa yg muncuk pada Drinkers?
name addr phone
S ll 123 S St NULL Sally 123 Sesame St NULL
b h
b
Menambah Attribut
Attribut (“kolom”) baru le tabel dg skema:
ALTER TABLE <nama> ADD ALTER TABLE <nama> ADD
<deklarasi attribut>;
C t h Contoh:
ALTER TABLE Bars ADD
h
b
Menghapus Attribut
Menghilangkan attribut dari tabel dg
skema :
ALTER TABLE <name> DROP <attribute>; DROP <attribute>;
Views
Views
S b h
i
d l h b h “t b l Sebuahview
adalah sebuah “tabelvirtual” = sebuah tabel yg didefinisikan dl b t k t b l l i
dlm bentuk tabel lain.
Deklarasinya:
CREATE VIEW <nama> AS <query>;
A ntonymnya: tabel yg nilainya benar2 A ntonymnya: tabel yg nilainya benar2
disimpan pd database disebut
tabel
dasar
.h
f
Contoh: Definisi View
CanDrink(drinker, beer) adalah sebuah view
“berisi” pasangan drinker-beer demikian hingga drinker sering sedikitnya sebuah bar melayani drinker sering sedikitnya sebuah bar melayani beer:
h
k
Contoh: Mengakses View
Query thd view sama spt pada tabel
dasara.
Contoh query:
SELECT beer FROM CanDrink SELECT beer FROM CanDrink WHERE drinker = ’Sally’;