A. Definisi SQL - 02. SQL Overview
Konsep Sistem Informasi B
SQL OVERVI EW
A. Definisi SQL
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai
query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL
dikenalkan pertama kali dalam I BM pada tahun 1970 dan sebuah standar I SO dan ANSI I ditetapkan
untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (I BM, Microsoft atau Oracle).
Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua
software database hampir sama. SQL dapat diterapkan pada beberapa software diantaranya adalah:
Dbase I V, I nformix, AS-400, Access.
Jenis SQL
1. I nteractive; langsung dapat dioperasikan.
2. Embedded; disisipkan ke dalam sebuah program (Cobol, C, Fortran).
B. 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 'BAGAI MANA' cara mendapatkannya.
c. Data Control Language (DCL):
Digunakan untuk mengontrol hak para pemakai data dengan perintah: grant dan revoke
Sebagai tambahan
d. Data I ntegrity
RECOVER TABLE
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
1
Konsep Sistem Informasi B
e. Auxiliary
UNLOAD, LOAD, RENAME COLUMN
Uraian:
Data Definition Language
1. CREATE DATABASE
Fungsi: membuat database
Sintaks: CREATE DATABASE nama_db;
Contoh: CREATE DATABASE latihan;
Membuat database dengan nama latihan.
2. CREATE TABLE
Fungsi: membuat tabel
Sintaks: CREATE TABLE table_name
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRI MARY KEY (col1,……))
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BI RTH DATE NOT NULL WI TH DEFAULT,
PRI MARY KEY (REGNO));
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WI TH 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 WI TH DEFAULT:
nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom
ini. Nilai default-nya:
a. Nol untuk tipe field NUMERI C
b. Blank untuk tipe field CHARACTER
c. CURRENT DATE untuk tipe field DATE
d. CURRENT TI ME untuk tipe field TI ME
Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah
kolom.
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
2
Konsep Sistem Informasi B
3. CREATE VI EW
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:
a. Meningkatkan keamanan data
b. Meningkatkan kemandirian data
c. Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan
dapat dibaca dengan lebih baik)
Properti:
a. Tidak terdapatnya data tambahan
b. View mencakup subset kolom dan atau baris
c. View dapat berisikan data dari beberapa tabel dan atau tabel-tabel view lainnya
d. View dapat berisikan perolehan data, misal: nilai rata-rata
e. Manipulasi data melalui view terbatas
Sintaks: CREATE VI EW viewname (column1, column2, ……..)
AS SELECT statement FROM tbname
[ WI TH CHECK OPTI ON]
Keterangan:
View-name
Column
Statement
Tabel-name
:
:
:
:
nama view yang akan dibuat
nama atribut untuk view
atribut yang dipilih dari tabel basis data
nama tabel basis data
Contoh :
CREATE VI EW VPERSON (REGNO, NAME) AS
SELECT REGNO, NAME FROM PAUL.PERSONEL;
4. CREATE I NDEX
Fungsi: membuat index
Sintaks: CREATE [ UNI QUE] I NDEX indexname
ON nama_table (nama_kolom)
Contoh:
Membuat index dengan nama PRSONI DX berdasarkan REGNO dari tabel PERSONEL
CREATE UNI QUE I NDEX PRSONI DX
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 UNI QUE akan menolak key yang sama dalam file.
5. 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:
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
3
Konsep Sistem Informasi B
a. Semua record dalam tabel akan terhapus
b. I ndex dan view pada tabel akan hilang
c. Deskripsi tabel akan hilang
6. DROP VI EW
Fungsi: menghapus view
Sintaks: DROP VI EW viewname
Contoh: DROP VI EW VPERSON;
7. DROP I NDEX
Fungsi: menghapus index
Sintaks: DROP I NDEX indexname
Contoh: DROP I NDEX PRSONI DX;
8. ALTER
Fungsi: merubah atribut pada suatu tabel
Sintaks: ALTER TABLE tbname
MODI FY (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);
Contoh Kasus DDL:
a. 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 I NTEGER NOT NULL);
4. CREATE UNI QUE I NDEX Sidx ON S(Sn);
CREATE UNI QUE I NDEX Pidx ON P(Pn);
CREATE I NDEX Sdx ON SP(Sn);
CREATE I NDEX Pdx ON SP(Pn);
b. Modifikasi table P dengan perintah:
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL);
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
4
Konsep Sistem Informasi B
c. Membuat view (CREATE VI EW)
1. Membuat view untuk suplier yang statusnya lebih besar dari 15
CREATE VI EW GOOD_SUPPLI ERS
AS SELECT Sn, Status, City FROM S
WHERE Status > 15;
2. Membuat view yang berisi supplier yang tinggal di Paris
CREATE VI EW Paris_Suppliers
AS SELECT * FROM Supliers
WHERE City = ' Paris ';
3. Membuat view dengan mengganti nama_atributnya
CREATE VI EW Parts (PNum, Part_Name, WT)
AS SELECT P# , Pname, Weight FROM Part
WHERE COLOR = 'Red';
Data Manipulation Language
1. I NSERT
Fungsi: menambah baris (record) baru
Sintaks: I NSERT I NTO 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: I NSERT I NTO 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 [ DI STI NCT] colname FROM tbname
[ WHERE kondisi]
[ GROUP BY kondisi]
[ HAVI NG kondisi]
[ ORDER BY kondisi]
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
5
Contoh Kasus DML:
Konsep Sistem Informasi B
a. Menambah record (I NSERT)
I NSERT I NTO S VALUES ('S1','Smith',20,'London');
I NSERT I NTO S VALUES ('S2','Jones,10,'Paris');
I NSERT I NTO S VALUES ('S3','Blake',30,'Paris');
Tabel S, P dan SP isikan dengan data-data sebagai berikut:
Tabel S
Tabel P
Tabel SP
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
6
Konsep Sistem Informasi B
b. 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';
c. Menghapus record (DELETE)
Menghapus record pada tabel S yang nomor supplier-nya S5
DELETE FROM S
WHERE Sn = 'S5';
d. 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 DI STI NCT 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
HAVI NG COUNT(* ) > 1;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
7
Konsep Sistem Informasi B
9. Menampilkan semua part yang nomornya dimulai dengan huruf C
SELECT * FROM P
WHERE Pname LI KE 'C% ';
e. Menampilkan record (SELECT lebih dari satu tabel/ JOI N)
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';
f.
Menampilkan record (SELECT lebih dari satu tabel/ SELECT bertingkat)
1. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn I N
(SELECT Sn FROM SP WHERE Pn = 'P2');
atau
SELECT Sname FROM S WHERE Sn = ANY
(SELECT Sn FROM SP WHERE Pn = 'P2');
2. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S WHERE Sn I N
(SELECT Sn FROM SP WHERE Pn I N
(SELECT Pn FROM P WHERE Warna = 'Red'));
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status
yang ada pada tabel S
SELECT Sn FROM S WHERE Status <
(SELECT MAX(Status) FROM S);
4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn NOT I N
(SELECT Sn FROM SP WHERE Pn = 'P2');
5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1
SELECT Sn FROM S WHERE CI TY =
(SELECT CI TY FROM S WHERE Sn = 'S1');
g. Fungsi perhitungan
COUNT
: jumlah baris dan kolom
SUM
: jumlah nilai dalam kolom
AVG
: rata-rata nilai dalam kolom
MAX
: nilai terbesar dalam kolom
MI N
: nilai terkecil dalam kolom
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
8
Konsep Sistem Informasi B
Untuk SUM dan AVG nilainya harus numerik (I NT, SMALLI NT, FLOAT). Fungsi-fungsi tersebut
jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(* )
1. Menghitung jumlah supplier
SELECT COUNT(* ) FROM S;
atau
SELECT COUNT (Sn) FROM S;
2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY Pn;
3. Menghitung jumlah kuantitas dari P2 yang telah disupply
SELECT SUM (QTY) FROM SP WHERE Pn = 'P2';
4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor
suppplier S1
SELECT COUNT(* ) FROM SP
WHERE Pn = 'P4' AND Sn = 'S1';
5. Menampilkan nomor part dan total kuantitas dari masing-masing part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY P3;
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 PUBLI C;
GRANT SELECT, I NSERT, 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 I NSERT, UPDATE, DELETE ON CLUB FROM USER01;
REVOKE ALL ON CLUB FROM PUBLI C;
Contoh-contoh Lainnya:
Kasus Data Definition Language ( DDL)
Struktur tabel
MHS (npm char(8), nama char(25), alamat char(30))
MKUL (kdmk char(5), mtkul char(25), sks smallint))
NI LAI (npm char(8), kdmk char(5), mid smallint, final smallint)
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
9
Konsep Sistem Informasi B
1. Pembuatan tabel
CREATE TABLE MHS (npm char(8) notnull, nama char(25) notnull, alamat char(30) notnull);
CREATE TABLE MKUL (kdmk char(5) notnull, mtkuliah char(25) notnull, sks smallint notnull);
CREATE TABLE NI LAI (npm char(8) notnull, kdmk char(5) notnull, mid smallint, final smallint);
Catatan:
Diumpamakan
Tabel MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
Tabel MKUL
KDMK
KK021
KD132
KU122
Tabel NI LAI
NPM
10296832
10296126
31296500
41296525
21196353
50095487
10296832
sudah terbentuk tiga (3) buah tabel dengan rincian sbb:
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
MTKULI AH
P. Basis Data
SI M
Pancasila
KDMK
KK021
KD132
KK021
KU122
KU122
KD132
KD132
MI D
60
70
55
90
75
80
40
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
SKS
2
3
2
FI NAL
75
90
40
80
75
0
30
2. Pembuatan index
Sintaks: CREATE [ UNI QUE] I NDEX nama_index ON nama_tabel (nama_kolom);
Contoh:
Buat index dengan nama MHSI N berdasarkan NPM dari tabel MHS!
CREATE UNI QUE I NDEX MHSI N ON MHS(NPM);
Hasil :
MHSI N
NPM
10296126
10296832
21196353
31296500
41296525
50096487
NAMA
Astuti
Nurhayati
Quraish
Budi
Prananingrum
Pipit
ALAMAT
Jakarta
Jakarta
Bogor
Depok
Bogor
Bekasi
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
10
Konsep Sistem Informasi B
3. Pembuatan view
Sintaks: CREATE VI EW nama_view [ (nama_kolom1, …, …)] AS SELECT statement [ WI TH
CHECK OPTI ON] ;
Contoh:
Buat view dengan nama MHSVI EW yang berisi semua data mahasiswa!
CREATE VI EW MHSVI EW AS SELECT * FROM MHS;
4. Menghapus database/ tabel/ index/ view
Sintaks : DROP DATABASE nama_db
DROP TABLE nama_tabel
DROP I NDEX nama_index
DROP VI EW nama_view
Contoh :
Menghapus tabel MHS:
DROP TABLE MHS;
5. Merubah struktur tabel
Sintaks : ALTER TABLE nama_tabel
ADD (nama_kolom type_kolom
[ BEFORE nama_kolom] )
MODI FY (nama_kolom type_kolom)
DROP (nama_kolom type_kolom);
Contoh :
a. Tambahkan kolom JKEL pada tabel MHS!
ALTER TABLE MHS ADD(JKEL char(1));
Hasil:
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
JKEL
b. Ubah panjang kolom MTKULI AH yang ada pada tabel MKUL!
ALTER TABLE MKUL MODI FY(MTKULI AH char(30));
c. Hapus kolom JKEL dari tabel MHS!
ALTER TABLE MHS DROP(JKEL char(1));
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
11
Konsep Sistem Informasi B
Kasus Data Manipulation Language ( DML)
1. I NSERT
Sintaks : I NSERT I NTO
nama_tabel [ (nama_kolom1, …)]
VALUES (data1, …);
Contoh :
Memasukkan data pada tabel MKUL untuk mata kuliah Berkas Akses dengan kode KK222 dan
jumlah SKS 2
I NSERT I NTO MKUL VALUES (“KK222”,”Berkas Akses”, 2);
Hasil :
MKUL
KDMK
KK021
KD132
KU122
KK222
MTKULI AH
P. Basis Data
SI M
Pancasila
Berkas Akses
SKS
2
3
2
2
2. UPDATE
Sintaks : UPDATE nama_tabel
SET nama_kolom = ekspresi
WHERE kondisi;
Contoh :
Ubah alamat mahasiswa menjadi depok untuk mahasiswa yang memiliki NPM = “50096487”!
UPDATE MHS SET ALAMAT= ”Depok”
WHERE NPM= ”50096487”;
Hasil:
MHS
NPM
50096487
NAMA
Pipit
ALAMAT
Depok
3. DELETE
Sintaks : DELETE FROM nama_tabel
WHERE kondisi
Contoh :
Hapus nilai mahasiswa yang mempunyai NPM= ”10296832” dan KDMK= ”KK021”!
DELETE FROM NI LAI WHERE NPM= ”10296832” AND KDMK= ”KK021”;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
12
Konsep Sistem Informasi B
Hasil:
NI LAI
NPM
10296126
31296500
41296525
21196353
50095487
10296832
KDMK
KD132
KK021
KU122
KU122
KD132
KD132
MI D
70
55
90
75
80
40
FI NAL
90
40
80
75
0
30
4. SELECT
Sintaks : SELECT [ DI STI NCT] nama_kolom
FROM nama_tabel
[ WHERE kondisi]
[ GROUP BY nama_kolom]
[ HAVI NG kondisi]
[ ORDER BY nama_kolom [ ASD/ DESC] ]
a. Contoh satu tabel ( Simple Query)
Menampilkan data
Tampilkan semua data mahasisw a!
SELECT * FROM MHS; atau
SELECT NPM,NAMA,ALAMAT FROM MHS;
Hasil:
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
Mengambil data dari suatu tabel dengan satu atau banyak kondisi
Tampilkan mata kuliah yang memiliki SKS= 2!
SELECT MTKULI AH FROM MKUL WHERE SKS= 2;
Hasil:
MKUL
MTKULI AH
P. Basis Data
Pancasila
Coba untuk perintah lainnya berikut ini:
SELECT * FROM nilai
WHERE mid > = 60 OR final > 75;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
13
Konsep Sistem Informasi B
SELECT npm, kdmk, mid FROM nilai
WHERE mid BETWEEN 70 AND 100;
Mengambil data dari suatu tabel dengan menggunakan perintah LI KE
Tampilkan nama mahasiswa yang diawali dengan huruf “P”!
SELECT NAMA FROM MHS WHERE NAMA LI KE “P% ”;
Hasil:
MHS
NAMA
Prananingrum
Pipit
Coba untuk perintah lainnya berikut ini:
SELECT nama FROM MHS
WHERE nama NOT LI KE “% a% ”;
SELECT nama FROM MHS
WHERE nama LI KE “_u% ”;
Mengambil data pada suatu tabel dengan hanya menampilkan satu kali saja data
yang sama
Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja!
SELECT DI STI NCT ALAMAT FROM MHS;
Hasil:
MHS
ALAMAT
Jakarta
Depok
Bogor
Bekasi
Memilih beberapa atau semua data dari suatu tabel untuk diurutkan atau
dikelompokkan
Tampilkan semua data dari tabel MHS, dengan nama terurut dari “Z” ke “A”!
SELECT * FROM MHS ORDER BY NAMA DESC;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
14
Konsep Sistem Informasi B
Hasil:
MHS
NPM
21196353
41296525
50096487
10296832
31296500
10296126
NAMA
Quraish
Prananingrum
Pipit
Nurhayati
Budi
Astuti
ALAMAT
Bogor
Bogor
Bekasi
Jakarta
Depok
Jakarta
Tampilkan alamat mahasiswa dan jumlah mahasiswa yang bertempat tinggal di alamat
tersebut!
SELECT ALAMAT, COUNT(* ) FROM MHS GROUP BY ALAMAT;
Hasil:
MHS
ALAMAT
Jakarta
Depok
Bogor
Bekasi
COUNT(* )
2
1
2
1
Tampilkan alamat dan jumlah masiswa yang bertempat tinggal pada alamat yang jumlahnya
lebih dari satu!
SELECT ALAMAT, COUNT(* ) FROM MHS GROUP BY ALAMAT HAVI NG COUNT(* ) > 1;
Hasil:
MHS
ALAMAT
Jakarta
Bogor
COUNT(* )
2
2
Penggunaan Agreegate Function
Tampilkan data tertinggi dan terendah dari nilai Midtest pada KDMK = “KD132”!
SELECT MAX(MI D), MI N(MI D) FROM NI LAI WHERE KDMK= ”KD132”;
Hasil:
NI LAI
MAX(MI D)
80
MI N(MI D)
40
Tampilkan rata-rata nilai final test dan jumlah nilai final test dengan KDMK = “KD132”!
SELECT AVG(FI NAL), SUM(FI NAL) FROM NI LAI WHERE KDMK= ”KD132”;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
15
Konsep Sistem Informasi B
Hasil:
NI LAI
AVG(FI NAL)
40
NI LAI
KDMK
KD132
KD132
KD132
SUM(FI NAL)
120
FI NAL
90
0
30
b. Contoh lebih dari satu tabel ( Sub Query dan Join)
Tampilkan nama mahasiswa yang mempunyai nilai midtest lebih kecil dari 60!
Sub Query
SELECT NAMA FROM MHS WHERE NPM I N (SELECT NPM FROM NI LAI WHERE MI D < = 60);
JOI N
SELECT NAMA FROM MHS, NI LAI WHERE MHS.NPM = NI LAI .NPM AND NI LAI .MI D < = 60;
Hasil :
MHS
NAMA
Nurhayati
Budi
Quraish
Coba untuk perintah lainnya berikut ini:
Sub Query
SELECT NAMA FROM MHS WHERE NPM I N (SELECT NPM FROM NI LAI WHERE KDMK I N
(SELECT KDMK FROM MKUL WHERE MTKULI AH = “SI M”);
JOI N
SELECT NAMA FROM MHS, NI LAI , MKUL WHERE MKUL.MTKULI AH= ”SI M” AND NI LAI .KDMK
= MKUL.KDMK AND MHS.NPM = NI LAI .NPM;
Penggunaan Exists dan Not Exists
Tampilkan nama mahasiswa yang tidak mengambil KDMK = “KK021”!
SELECT NAMA FROM MHS WHERE NOT EXI STS
(SELECT * FROM NI LAI WHERE NI LAI .NPM = MHS.NPM AND KDMK = “KK021” );
Hasil:
MHS
NAMA
Astuti
Prananingrum
Pipit
Quraish
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
16
Penggunaan Union
Konsep Sistem Informasi B
Tampilkan NPM mahasiswa yang bernama Budi dan yang memiliki nilai final > 75!
SELECT NPM FROM MHS WHERE NAMA = “Budi” UNI ON
SELECT NPM FROM NI LAI WHERE FI NAL > 75;
Hasil:
NPM
31296500
10296126
41296525
Kasus Data Control Language
1. Grant
Sintaks : - GRANT hak_akses ON nama_db
TO nama_pemakai
[ WI TH GRANT OPTI ON]
[ AS GRANTOR] ;
- GRANT hak_akses ON nama_tabel
TO nama_pemakai
[ WI TH GRANT OPTI ON]
[ AS GRANTOR]
Contoh:
Berikan hak akses kepada Avi untuk menampilkan nilai final test!
GRANT SELECT (FI NAL) ON NI LAI TO AVI ;
2. Revoke
Sintaks : - REVOKE hak_akses ON nama_db
FROM nama_pemakai;
- REVOKE hak_akses ON nama_tabel
FROM nama_pemakai;
Contoh :
Tarik kembali hak akses untuk menampilkan nilai final test dari Avi!
REVOKE SELECT(FI NAL) ON NI LAI FROM AVI ;
Kasus Data I ntegrity
1. RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel;
Contoh :
Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
RECOVER TABLE MHS;
Kasus Statement Auxiliary
1. Unload
Sintaks : UNLOAD TO “nama_path”
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
17
Konsep Sistem Informasi B
[ DELI MI TER “char_pemisah”]
SELECT statement;
Contoh :
Merubah semua data mahasiswa ke bentuk ASCI I dan disimpan ke file teks di directory
/ home/ avi
UNLOAD TO “/ home/ avi/ teks”
DELI MI TER “| ” SELECT * FROM MHS;
2. Load
Sintaks : LOAD FROM “nama_path”
DELI MI TER “char_pemisah”
I NSERT I NTO
nama_tabel [ nama_kolom] ;
Contoh :
Merubah file teks ke tabel MHS_2 di directory / home/ avi
LOAD FROM “/ home/ avi/ teks”
DELI MI TER “| ” I NSERT I NTO MHS_2;
3. Rename Column
Sintaks : RENAME COLUMN nama_kolom_lama
TO Nama_kolom_baru;
Contoh :
Mengganti kolom ALAMAT yang ada pada tabel MHS menjadi KOTA
RENAME COLUMN MHS.ALAMAT TO KOTA;
Referensi:
http:/ / deasy.staff.gunadarma.ac.id
http:/ / fikri.staff.gunadarma.ac.id
http:/ / sitialiyah.staff.gunadarma.ac.id
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
18
SQL OVERVI EW
A. Definisi SQL
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai
query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL
dikenalkan pertama kali dalam I BM pada tahun 1970 dan sebuah standar I SO dan ANSI I ditetapkan
untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (I BM, Microsoft atau Oracle).
Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua
software database hampir sama. SQL dapat diterapkan pada beberapa software diantaranya adalah:
Dbase I V, I nformix, AS-400, Access.
Jenis SQL
1. I nteractive; langsung dapat dioperasikan.
2. Embedded; disisipkan ke dalam sebuah program (Cobol, C, Fortran).
B. 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 'BAGAI MANA' cara mendapatkannya.
c. Data Control Language (DCL):
Digunakan untuk mengontrol hak para pemakai data dengan perintah: grant dan revoke
Sebagai tambahan
d. Data I ntegrity
RECOVER TABLE
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
1
Konsep Sistem Informasi B
e. Auxiliary
UNLOAD, LOAD, RENAME COLUMN
Uraian:
Data Definition Language
1. CREATE DATABASE
Fungsi: membuat database
Sintaks: CREATE DATABASE nama_db;
Contoh: CREATE DATABASE latihan;
Membuat database dengan nama latihan.
2. CREATE TABLE
Fungsi: membuat tabel
Sintaks: CREATE TABLE table_name
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRI MARY KEY (col1,……))
Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BI RTH DATE NOT NULL WI TH DEFAULT,
PRI MARY KEY (REGNO));
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WI TH 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 WI TH DEFAULT:
nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom
ini. Nilai default-nya:
a. Nol untuk tipe field NUMERI C
b. Blank untuk tipe field CHARACTER
c. CURRENT DATE untuk tipe field DATE
d. CURRENT TI ME untuk tipe field TI ME
Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah
kolom.
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
2
Konsep Sistem Informasi B
3. CREATE VI EW
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:
a. Meningkatkan keamanan data
b. Meningkatkan kemandirian data
c. Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan
dapat dibaca dengan lebih baik)
Properti:
a. Tidak terdapatnya data tambahan
b. View mencakup subset kolom dan atau baris
c. View dapat berisikan data dari beberapa tabel dan atau tabel-tabel view lainnya
d. View dapat berisikan perolehan data, misal: nilai rata-rata
e. Manipulasi data melalui view terbatas
Sintaks: CREATE VI EW viewname (column1, column2, ……..)
AS SELECT statement FROM tbname
[ WI TH CHECK OPTI ON]
Keterangan:
View-name
Column
Statement
Tabel-name
:
:
:
:
nama view yang akan dibuat
nama atribut untuk view
atribut yang dipilih dari tabel basis data
nama tabel basis data
Contoh :
CREATE VI EW VPERSON (REGNO, NAME) AS
SELECT REGNO, NAME FROM PAUL.PERSONEL;
4. CREATE I NDEX
Fungsi: membuat index
Sintaks: CREATE [ UNI QUE] I NDEX indexname
ON nama_table (nama_kolom)
Contoh:
Membuat index dengan nama PRSONI DX berdasarkan REGNO dari tabel PERSONEL
CREATE UNI QUE I NDEX PRSONI DX
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 UNI QUE akan menolak key yang sama dalam file.
5. 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:
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
3
Konsep Sistem Informasi B
a. Semua record dalam tabel akan terhapus
b. I ndex dan view pada tabel akan hilang
c. Deskripsi tabel akan hilang
6. DROP VI EW
Fungsi: menghapus view
Sintaks: DROP VI EW viewname
Contoh: DROP VI EW VPERSON;
7. DROP I NDEX
Fungsi: menghapus index
Sintaks: DROP I NDEX indexname
Contoh: DROP I NDEX PRSONI DX;
8. ALTER
Fungsi: merubah atribut pada suatu tabel
Sintaks: ALTER TABLE tbname
MODI FY (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);
Contoh Kasus DDL:
a. 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 I NTEGER NOT NULL);
4. CREATE UNI QUE I NDEX Sidx ON S(Sn);
CREATE UNI QUE I NDEX Pidx ON P(Pn);
CREATE I NDEX Sdx ON SP(Sn);
CREATE I NDEX Pdx ON SP(Pn);
b. Modifikasi table P dengan perintah:
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL);
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
4
Konsep Sistem Informasi B
c. Membuat view (CREATE VI EW)
1. Membuat view untuk suplier yang statusnya lebih besar dari 15
CREATE VI EW GOOD_SUPPLI ERS
AS SELECT Sn, Status, City FROM S
WHERE Status > 15;
2. Membuat view yang berisi supplier yang tinggal di Paris
CREATE VI EW Paris_Suppliers
AS SELECT * FROM Supliers
WHERE City = ' Paris ';
3. Membuat view dengan mengganti nama_atributnya
CREATE VI EW Parts (PNum, Part_Name, WT)
AS SELECT P# , Pname, Weight FROM Part
WHERE COLOR = 'Red';
Data Manipulation Language
1. I NSERT
Fungsi: menambah baris (record) baru
Sintaks: I NSERT I NTO 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: I NSERT I NTO 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 [ DI STI NCT] colname FROM tbname
[ WHERE kondisi]
[ GROUP BY kondisi]
[ HAVI NG kondisi]
[ ORDER BY kondisi]
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
5
Contoh Kasus DML:
Konsep Sistem Informasi B
a. Menambah record (I NSERT)
I NSERT I NTO S VALUES ('S1','Smith',20,'London');
I NSERT I NTO S VALUES ('S2','Jones,10,'Paris');
I NSERT I NTO S VALUES ('S3','Blake',30,'Paris');
Tabel S, P dan SP isikan dengan data-data sebagai berikut:
Tabel S
Tabel P
Tabel SP
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
6
Konsep Sistem Informasi B
b. 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';
c. Menghapus record (DELETE)
Menghapus record pada tabel S yang nomor supplier-nya S5
DELETE FROM S
WHERE Sn = 'S5';
d. 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 DI STI NCT 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
HAVI NG COUNT(* ) > 1;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
7
Konsep Sistem Informasi B
9. Menampilkan semua part yang nomornya dimulai dengan huruf C
SELECT * FROM P
WHERE Pname LI KE 'C% ';
e. Menampilkan record (SELECT lebih dari satu tabel/ JOI N)
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';
f.
Menampilkan record (SELECT lebih dari satu tabel/ SELECT bertingkat)
1. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn I N
(SELECT Sn FROM SP WHERE Pn = 'P2');
atau
SELECT Sname FROM S WHERE Sn = ANY
(SELECT Sn FROM SP WHERE Pn = 'P2');
2. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S WHERE Sn I N
(SELECT Sn FROM SP WHERE Pn I N
(SELECT Pn FROM P WHERE Warna = 'Red'));
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status
yang ada pada tabel S
SELECT Sn FROM S WHERE Status <
(SELECT MAX(Status) FROM S);
4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn NOT I N
(SELECT Sn FROM SP WHERE Pn = 'P2');
5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1
SELECT Sn FROM S WHERE CI TY =
(SELECT CI TY FROM S WHERE Sn = 'S1');
g. Fungsi perhitungan
COUNT
: jumlah baris dan kolom
SUM
: jumlah nilai dalam kolom
AVG
: rata-rata nilai dalam kolom
MAX
: nilai terbesar dalam kolom
MI N
: nilai terkecil dalam kolom
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
8
Konsep Sistem Informasi B
Untuk SUM dan AVG nilainya harus numerik (I NT, SMALLI NT, FLOAT). Fungsi-fungsi tersebut
jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(* )
1. Menghitung jumlah supplier
SELECT COUNT(* ) FROM S;
atau
SELECT COUNT (Sn) FROM S;
2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY Pn;
3. Menghitung jumlah kuantitas dari P2 yang telah disupply
SELECT SUM (QTY) FROM SP WHERE Pn = 'P2';
4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor
suppplier S1
SELECT COUNT(* ) FROM SP
WHERE Pn = 'P4' AND Sn = 'S1';
5. Menampilkan nomor part dan total kuantitas dari masing-masing part
SELECT Pn, SUM(QTY) FROM SP
GROUP BY P3;
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 PUBLI C;
GRANT SELECT, I NSERT, 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 I NSERT, UPDATE, DELETE ON CLUB FROM USER01;
REVOKE ALL ON CLUB FROM PUBLI C;
Contoh-contoh Lainnya:
Kasus Data Definition Language ( DDL)
Struktur tabel
MHS (npm char(8), nama char(25), alamat char(30))
MKUL (kdmk char(5), mtkul char(25), sks smallint))
NI LAI (npm char(8), kdmk char(5), mid smallint, final smallint)
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
9
Konsep Sistem Informasi B
1. Pembuatan tabel
CREATE TABLE MHS (npm char(8) notnull, nama char(25) notnull, alamat char(30) notnull);
CREATE TABLE MKUL (kdmk char(5) notnull, mtkuliah char(25) notnull, sks smallint notnull);
CREATE TABLE NI LAI (npm char(8) notnull, kdmk char(5) notnull, mid smallint, final smallint);
Catatan:
Diumpamakan
Tabel MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
Tabel MKUL
KDMK
KK021
KD132
KU122
Tabel NI LAI
NPM
10296832
10296126
31296500
41296525
21196353
50095487
10296832
sudah terbentuk tiga (3) buah tabel dengan rincian sbb:
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
MTKULI AH
P. Basis Data
SI M
Pancasila
KDMK
KK021
KD132
KK021
KU122
KU122
KD132
KD132
MI D
60
70
55
90
75
80
40
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
SKS
2
3
2
FI NAL
75
90
40
80
75
0
30
2. Pembuatan index
Sintaks: CREATE [ UNI QUE] I NDEX nama_index ON nama_tabel (nama_kolom);
Contoh:
Buat index dengan nama MHSI N berdasarkan NPM dari tabel MHS!
CREATE UNI QUE I NDEX MHSI N ON MHS(NPM);
Hasil :
MHSI N
NPM
10296126
10296832
21196353
31296500
41296525
50096487
NAMA
Astuti
Nurhayati
Quraish
Budi
Prananingrum
Pipit
ALAMAT
Jakarta
Jakarta
Bogor
Depok
Bogor
Bekasi
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
10
Konsep Sistem Informasi B
3. Pembuatan view
Sintaks: CREATE VI EW nama_view [ (nama_kolom1, …, …)] AS SELECT statement [ WI TH
CHECK OPTI ON] ;
Contoh:
Buat view dengan nama MHSVI EW yang berisi semua data mahasiswa!
CREATE VI EW MHSVI EW AS SELECT * FROM MHS;
4. Menghapus database/ tabel/ index/ view
Sintaks : DROP DATABASE nama_db
DROP TABLE nama_tabel
DROP I NDEX nama_index
DROP VI EW nama_view
Contoh :
Menghapus tabel MHS:
DROP TABLE MHS;
5. Merubah struktur tabel
Sintaks : ALTER TABLE nama_tabel
ADD (nama_kolom type_kolom
[ BEFORE nama_kolom] )
MODI FY (nama_kolom type_kolom)
DROP (nama_kolom type_kolom);
Contoh :
a. Tambahkan kolom JKEL pada tabel MHS!
ALTER TABLE MHS ADD(JKEL char(1));
Hasil:
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
JKEL
b. Ubah panjang kolom MTKULI AH yang ada pada tabel MKUL!
ALTER TABLE MKUL MODI FY(MTKULI AH char(30));
c. Hapus kolom JKEL dari tabel MHS!
ALTER TABLE MHS DROP(JKEL char(1));
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
11
Konsep Sistem Informasi B
Kasus Data Manipulation Language ( DML)
1. I NSERT
Sintaks : I NSERT I NTO
nama_tabel [ (nama_kolom1, …)]
VALUES (data1, …);
Contoh :
Memasukkan data pada tabel MKUL untuk mata kuliah Berkas Akses dengan kode KK222 dan
jumlah SKS 2
I NSERT I NTO MKUL VALUES (“KK222”,”Berkas Akses”, 2);
Hasil :
MKUL
KDMK
KK021
KD132
KU122
KK222
MTKULI AH
P. Basis Data
SI M
Pancasila
Berkas Akses
SKS
2
3
2
2
2. UPDATE
Sintaks : UPDATE nama_tabel
SET nama_kolom = ekspresi
WHERE kondisi;
Contoh :
Ubah alamat mahasiswa menjadi depok untuk mahasiswa yang memiliki NPM = “50096487”!
UPDATE MHS SET ALAMAT= ”Depok”
WHERE NPM= ”50096487”;
Hasil:
MHS
NPM
50096487
NAMA
Pipit
ALAMAT
Depok
3. DELETE
Sintaks : DELETE FROM nama_tabel
WHERE kondisi
Contoh :
Hapus nilai mahasiswa yang mempunyai NPM= ”10296832” dan KDMK= ”KK021”!
DELETE FROM NI LAI WHERE NPM= ”10296832” AND KDMK= ”KK021”;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
12
Konsep Sistem Informasi B
Hasil:
NI LAI
NPM
10296126
31296500
41296525
21196353
50095487
10296832
KDMK
KD132
KK021
KU122
KU122
KD132
KD132
MI D
70
55
90
75
80
40
FI NAL
90
40
80
75
0
30
4. SELECT
Sintaks : SELECT [ DI STI NCT] nama_kolom
FROM nama_tabel
[ WHERE kondisi]
[ GROUP BY nama_kolom]
[ HAVI NG kondisi]
[ ORDER BY nama_kolom [ ASD/ DESC] ]
a. Contoh satu tabel ( Simple Query)
Menampilkan data
Tampilkan semua data mahasisw a!
SELECT * FROM MHS; atau
SELECT NPM,NAMA,ALAMAT FROM MHS;
Hasil:
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
NAMA
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish
ALAMAT
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor
Mengambil data dari suatu tabel dengan satu atau banyak kondisi
Tampilkan mata kuliah yang memiliki SKS= 2!
SELECT MTKULI AH FROM MKUL WHERE SKS= 2;
Hasil:
MKUL
MTKULI AH
P. Basis Data
Pancasila
Coba untuk perintah lainnya berikut ini:
SELECT * FROM nilai
WHERE mid > = 60 OR final > 75;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
13
Konsep Sistem Informasi B
SELECT npm, kdmk, mid FROM nilai
WHERE mid BETWEEN 70 AND 100;
Mengambil data dari suatu tabel dengan menggunakan perintah LI KE
Tampilkan nama mahasiswa yang diawali dengan huruf “P”!
SELECT NAMA FROM MHS WHERE NAMA LI KE “P% ”;
Hasil:
MHS
NAMA
Prananingrum
Pipit
Coba untuk perintah lainnya berikut ini:
SELECT nama FROM MHS
WHERE nama NOT LI KE “% a% ”;
SELECT nama FROM MHS
WHERE nama LI KE “_u% ”;
Mengambil data pada suatu tabel dengan hanya menampilkan satu kali saja data
yang sama
Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja!
SELECT DI STI NCT ALAMAT FROM MHS;
Hasil:
MHS
ALAMAT
Jakarta
Depok
Bogor
Bekasi
Memilih beberapa atau semua data dari suatu tabel untuk diurutkan atau
dikelompokkan
Tampilkan semua data dari tabel MHS, dengan nama terurut dari “Z” ke “A”!
SELECT * FROM MHS ORDER BY NAMA DESC;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
14
Konsep Sistem Informasi B
Hasil:
MHS
NPM
21196353
41296525
50096487
10296832
31296500
10296126
NAMA
Quraish
Prananingrum
Pipit
Nurhayati
Budi
Astuti
ALAMAT
Bogor
Bogor
Bekasi
Jakarta
Depok
Jakarta
Tampilkan alamat mahasiswa dan jumlah mahasiswa yang bertempat tinggal di alamat
tersebut!
SELECT ALAMAT, COUNT(* ) FROM MHS GROUP BY ALAMAT;
Hasil:
MHS
ALAMAT
Jakarta
Depok
Bogor
Bekasi
COUNT(* )
2
1
2
1
Tampilkan alamat dan jumlah masiswa yang bertempat tinggal pada alamat yang jumlahnya
lebih dari satu!
SELECT ALAMAT, COUNT(* ) FROM MHS GROUP BY ALAMAT HAVI NG COUNT(* ) > 1;
Hasil:
MHS
ALAMAT
Jakarta
Bogor
COUNT(* )
2
2
Penggunaan Agreegate Function
Tampilkan data tertinggi dan terendah dari nilai Midtest pada KDMK = “KD132”!
SELECT MAX(MI D), MI N(MI D) FROM NI LAI WHERE KDMK= ”KD132”;
Hasil:
NI LAI
MAX(MI D)
80
MI N(MI D)
40
Tampilkan rata-rata nilai final test dan jumlah nilai final test dengan KDMK = “KD132”!
SELECT AVG(FI NAL), SUM(FI NAL) FROM NI LAI WHERE KDMK= ”KD132”;
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
15
Konsep Sistem Informasi B
Hasil:
NI LAI
AVG(FI NAL)
40
NI LAI
KDMK
KD132
KD132
KD132
SUM(FI NAL)
120
FI NAL
90
0
30
b. Contoh lebih dari satu tabel ( Sub Query dan Join)
Tampilkan nama mahasiswa yang mempunyai nilai midtest lebih kecil dari 60!
Sub Query
SELECT NAMA FROM MHS WHERE NPM I N (SELECT NPM FROM NI LAI WHERE MI D < = 60);
JOI N
SELECT NAMA FROM MHS, NI LAI WHERE MHS.NPM = NI LAI .NPM AND NI LAI .MI D < = 60;
Hasil :
MHS
NAMA
Nurhayati
Budi
Quraish
Coba untuk perintah lainnya berikut ini:
Sub Query
SELECT NAMA FROM MHS WHERE NPM I N (SELECT NPM FROM NI LAI WHERE KDMK I N
(SELECT KDMK FROM MKUL WHERE MTKULI AH = “SI M”);
JOI N
SELECT NAMA FROM MHS, NI LAI , MKUL WHERE MKUL.MTKULI AH= ”SI M” AND NI LAI .KDMK
= MKUL.KDMK AND MHS.NPM = NI LAI .NPM;
Penggunaan Exists dan Not Exists
Tampilkan nama mahasiswa yang tidak mengambil KDMK = “KK021”!
SELECT NAMA FROM MHS WHERE NOT EXI STS
(SELECT * FROM NI LAI WHERE NI LAI .NPM = MHS.NPM AND KDMK = “KK021” );
Hasil:
MHS
NAMA
Astuti
Prananingrum
Pipit
Quraish
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
16
Penggunaan Union
Konsep Sistem Informasi B
Tampilkan NPM mahasiswa yang bernama Budi dan yang memiliki nilai final > 75!
SELECT NPM FROM MHS WHERE NAMA = “Budi” UNI ON
SELECT NPM FROM NI LAI WHERE FI NAL > 75;
Hasil:
NPM
31296500
10296126
41296525
Kasus Data Control Language
1. Grant
Sintaks : - GRANT hak_akses ON nama_db
TO nama_pemakai
[ WI TH GRANT OPTI ON]
[ AS GRANTOR] ;
- GRANT hak_akses ON nama_tabel
TO nama_pemakai
[ WI TH GRANT OPTI ON]
[ AS GRANTOR]
Contoh:
Berikan hak akses kepada Avi untuk menampilkan nilai final test!
GRANT SELECT (FI NAL) ON NI LAI TO AVI ;
2. Revoke
Sintaks : - REVOKE hak_akses ON nama_db
FROM nama_pemakai;
- REVOKE hak_akses ON nama_tabel
FROM nama_pemakai;
Contoh :
Tarik kembali hak akses untuk menampilkan nilai final test dari Avi!
REVOKE SELECT(FI NAL) ON NI LAI FROM AVI ;
Kasus Data I ntegrity
1. RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel;
Contoh :
Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
RECOVER TABLE MHS;
Kasus Statement Auxiliary
1. Unload
Sintaks : UNLOAD TO “nama_path”
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
17
Konsep Sistem Informasi B
[ DELI MI TER “char_pemisah”]
SELECT statement;
Contoh :
Merubah semua data mahasiswa ke bentuk ASCI I dan disimpan ke file teks di directory
/ home/ avi
UNLOAD TO “/ home/ avi/ teks”
DELI MI TER “| ” SELECT * FROM MHS;
2. Load
Sintaks : LOAD FROM “nama_path”
DELI MI TER “char_pemisah”
I NSERT I NTO
nama_tabel [ nama_kolom] ;
Contoh :
Merubah file teks ke tabel MHS_2 di directory / home/ avi
LOAD FROM “/ home/ avi/ teks”
DELI MI TER “| ” I NSERT I NTO MHS_2;
3. Rename Column
Sintaks : RENAME COLUMN nama_kolom_lama
TO Nama_kolom_baru;
Contoh :
Mengganti kolom ALAMAT yang ada pada tabel MHS menjadi KOTA
RENAME COLUMN MHS.ALAMAT TO KOTA;
Referensi:
http:/ / deasy.staff.gunadarma.ac.id
http:/ / fikri.staff.gunadarma.ac.id
http:/ / sitialiyah.staff.gunadarma.ac.id
Pertemuan 2 ‐ Jeje, SKom, MMSI – Universitas Gunadarma
18