PENGANTAR STRUCTURE QUERY LANGUAGE
Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL
merupakan bahasa baku (ANSI/SQL), non
procedural, dan berorientasi himpunan (set-oriented
language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.
Komponen-Komponen
SQL
a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan
menggunakan perintah : create, drop,
alter.
b. Data Manipulation Language (DML) :Digunakan untuk memanipulasi
data dengan menggunakan perintah : select,
insert, update, delete.
Data Manipulation Language
merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara
interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu
menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara
mendapatkannya.
c. Data Control Language (DCL) :Digunakan
untuk mengontrol hak para pemakai data dengan perintah : grant, revoke
DATA
DEFINITION LANGUAGE
1. CREATE
TABLE
Fungsi : membuat
tabel
Sintaks : CREATE TABLE tbname
(col
1 data type data spec,
col 2 data type data spec,
PRIMARY KEY (col1,……))
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL
WITH DEFAULT,
PRIMARY KEY (REGNO))
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT
NULL
:
dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak
tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol)
NOT NULL :
pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record
NOT NULL WITH DEFAULT :
nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
Nilai default-nya :
Nol untuk
tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME
Pada saat membuat tabel, salah satu atribut tersebut di
atas dispesifikasikan pada sebuah kolom.
2. CREATE VIEW
Fungsi
: membuat tabel view.
View
merupakan bentuk alternatif penyajian
data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom
yang terdapat pada tabel dimana kolom tersebut didefinisikan.
Tujuan membuat view :
·
Meningkatkan keamanan data
·
Meningkatkan kemandirian data
·
Penyederhanaan bagi end user (data yang sedikit,
nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)
Properti :
·
Tidak terdapatnya data tambahan
·
View mencakup subset kolom dan / atau baris
·
View dapat berisikan data dari beberapa tabel
dan / atau tabel-tabel view lainnya
·
View dapat berisikan perolehan data, misal :
nilai rata-rata
·
Manipulasi data melalui view terbatas
Sintaks : CREATE VIEW viewname (column1,
column2, ……..)
AS SELECT statement FROM tbname
[WITH CHECK
OPTION]
Keterangan :
View-name : nama view yang akan dibuat.
Column
: nama atribut untuk view
Statement : atribut yang dipilih dari tabel basis
data.
Tabel-name
: nama tabel basis data.
Contoh :
CREATE VIEW VPERSON (REGNO, NAME) AS
SELECT REGNO,
NAME FROM PAUL.PERSONEL
3. CREATE INDEX
Fungsi : membuat
index
Sintaks : CREATE
[UNIQUE] INDEX indexname
ON
nama_table (nama_kolom)
Contoh
:
CREATE
UNIQUE INDEX PRSONIDX
ON
PERSONEL(REGNO)
Dengan
indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus
merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui
indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file.
4. DROP TABLE
Fungsi
: menghapus Tabel
Sintaks
: DROP
TABLE tbname
Contoh : DROP TABLE PERSONEL
Dengan perintah itu obyek lain
yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan
berfungsi seperti :
- semua record dalam tabel akan terhapus
- index dan view pada tabel akan hilang
- deskripsi tabel akan hilang
5. DROP
VIEW
Fungsi : menghapus
view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP
INDEX
Fungsi : menghapus
index
Sintaks : DROP
INDEX indexname
Contoh : DROP INDEX PRSONIDX
7. ALTER
Fungsi : merubah atribut pada
suatu tabel
Sintaks : ALTER
TABLE tbname
MODIFY (nama_kolom tipe_kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom tipe_kolom)
Contoh : merubah Tabel TABX dengan menambah Field D.
ALTER
TABLE TABX
ADD D
CHAR(3)
DATA MANIPULATION LANGUAGE
1. INSERT
Fungsi : menambah baris (record) baru
Sintaks
: INSERT
INTO tbname
(col1,
...) VALUES (value1, ...)
Catatan :
Sintaks
tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam
tabel semua kolom akan diisi dapat digunakan sintaks berikut ini :
Sintaks
: INSERT
INTO tbname
VALUES
(value1, value2, ...)
Nilai-nilai
diisikan sebanyak kolom yang terdapat di tabel tersebut.
2.
UPDATE
Fungsi
: merubah record
Sintaks : UPDATE
tbname SET field = ekspresi
WHERE
kondisi
3. DELETE
Fungsi
: menghapus record
Sintaks : DELETE
FROM tbname
WHERE kondisi
4. SELECT
Fungsi : menampilkan record
Sintaks : SELECT [DISTINCT] colname FROM tbname
[WHERE kondisi]
[GROUP BY kondisi]
[HAVING kondisi]
[ORDER BY kondisi]
Contoh Kasus DDL :
·
Membuat Tabel
(CREATE TABLE)
1. CREATE TABLE S
(Sn Char(5) NOT NULL,
Sname Char(20) NOT
NULL,
Status
Smallint NOT NULL,
City
Char(15) NOT NULL);
2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT
NULL,
Weight Smallint NOT
NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT
NULL,
Pn Char(6) NOT
NULL,
QTY
INTEGER NOT NULL);
4. CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE
INDEX Pidx ON P(Pn);
CREATE INDEX Sdx ON SP(Sn);
CREATE INDEX Pdx ON SP(Pn);
·
Modifikasi Table P
dengan perintah :
RENAME COLUMN
P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL)
·
Membuat View
(CREATE VIEW)
·1. Membuat
view untuk suplier yang statusnya lebih besar dari 15
CREATE VIEW
GOOD_SUPPLIERS
AS SELECT Sn, Status, City FROM
S
WHERE Status >
15;
2. Membuat view yang berisi supplier yang
tinggal di Paris
CREATE
VIEW Paris_Suppliers
AS SELECT * FROM Supliers
WHERE City = ' Paris '
3. Membuat view dengan mengganti
nama_atributnya
CREATE
VIEW Parts (PNum, Part_Name, WT)
AS
SELECT P#, Pname, Weight FROM Part
WHERE
COLOR = 'Red'
Contoh Kasus DML :
Menambah record
(INSERT)
INSERT INTO S
VALUES ('S1','Smith',20,'London');
INSERT INTO S
VALUES ('S2','Jones,10,'Paris');
INSERT INTO S
VALUES ('S3','Blake',30,'Paris')
Merubah record
(UPDATE)
1. Merubah data
(record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi
Kuning dan beratnya ditambah 5
UPDATE
P SET Warna = 'Yellow',
Weight = Weight + 5
WHERE Pn = 'P2'
2. Merubah record pada tabel S, statusnya
menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota
London
UPDATE S SET
Status = 2 * Status
WHERE City = 'London'
Menghapus record
pada tabel S yang nomor supplier-nya S5
DELETE FROM S
WHERE Sn ='S5'
Menampilkan record (SELECT 1 tabel)
1. Menampilkan semua data supplier
SELECT * FROM S
atau
SELECT Sn, Sname,
Status, City FROM S
2. Menampilkan semua nilai Pn pada tabel SP
SELECT Pn FROM SP
3. Menampilkan nomor supplier dan status untuk
supplier yang tinggal di Paris
SELECT Sn, Status
FROM S
WHERE
City ='Paris'
4. Menampilkan no.supplier yang tinggal di
Paris dengan status > 20
SELECT Sn FROM S
WHERE
City ='Paris" AND Status > 20
5. Menampilkan jumlah pengiriman P1
SELECT COUNT(*)
FROM SP
WHERE
Pn = 'P1'
6. Perintah untuk menghindari hasil data yang
sama terulang kembali (distinct)
SELECT DISTINCT Pn
FROM SP
7. Menampilkan
no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status
menurun
SELECT Sn,Status FROM S
WHERE
City = 'Paris'
ORDER
BY Status desc
8. Menampilkan
no.Part dari semua part yang dipasok oleh lebih dari seorang supplier
SELECT Pn FROM SP
GROUP
BY Pn
HAVING
COUNT(*) > 1
9. Menampilkan semua part yang nomornya dimulai
dengan huruf C
SELECT * FROM P
WHERE
Pname LIKE 'C%'
·
Menampilkan record
(SELECT lebih dari satu tabel / JOIN)
1. Menampilkan semua supplier dan part yang
keduanya bertempat tinggal pada kota yang sama
SELECT Sn, Sname,S
tatus, S.City , Pn, Pname, Warna, Weight FROM S,P
WHERE
S.City = P.City
2. Menampilkan nama supplier yang memasok
barang dengan nomor part P2
SELECT Sname FROM
S, SP
WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'
3. Menampilkan nama
supplier yang memasok part berwarna merah
SELECT Sname FROM
S, SP, P
WHERE
S.Sn = SP.Sn
AND
SP.Pn = P.Pn
AND
P.COLOR = 'RED'
·
DATA CONTROL LANGUAGE
1. GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user
Contoh
:
GRANT SELECT ON CLUB TO
PUBLIC
GRANT SELECT, INSERT,
UPDATE, DELETE ON CLUB TO USER01
2. REVOKE
Fungsi
: digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
Contoh : REVOKE INSERT, UPDATE,
DELETE ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM
PUBLIC
Tidak ada komentar:
Posting Komentar