Anda di halaman 1dari 31

BASIS DATA

RDBMS & SQL

Oleh:
AGUS SOPIAN
2010140787
TEKNIK INFORMATIKA IV E

UNIVERSITAS PAMULANG
Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax.
(021)7412566
Tangerang Selatan Banten

COVER................................................................................................1

DAFTAR ISI...........................................................................................2

1. RDBMS (Sistem Manajemen Basis Data Relasional).............................3

Pendahuluan...................................................................................
...............................................3
1.1 Apa

itu

RDBMS.
.3
1.2 Sejarah
RDBMS.
3
1.3 Pemanfaatan

saat

ini..

4
1.4 Variasi
Dinamis
.5
1.5 Model

Data

Relasional........................................... ...................................5
1.5.1 Keuntungan Model Data Relasional
1.5.2

Konversi

Model

E-R

Relasional..6

2. SQL (Structure Query Language)


............................................11

ke

2.1 Pengertian
SQL.........................................................................................................11
2.2 Jenis
SQL..................................................................................................................1
2
2.3 Pengelompokkan Statement
SQL.....................................................................................12

REFFERENSI..................................................................................................................
..............................28

BAB 1
PENDAHULU
AN

1.

RDBMS
1.1 Apa itu RDBMS?
Sebuah sistem manajemen basisdata relasional atau dalam bahasa Inggrisnya
dikenal sebagai relational database management system (RDBMS) adalah sebuah
program komputer (atau secara lebih tipikal adalah seperangkat program komputer)
yang didisain untuk mengatur/memanajemen sebuah basisdata sebagai sekumpulan
data yang disimpan secara terstruktur, dan melakukan operasi-operasi atas data atas
permintaan penggunanya. Contoh penggunaan DBMS ada banyak sekali dan dalam
berbagai bidang kerja, misalnya akuntansi, manajemen sumber daya manusia, dan lain
sebagainya. Meskipun pada awalnya DBMS hanya dimiliki oleh perusahaanperusahaan berskala besar yang memiliki perangkat komputer yang sesuai dengan
spesifikasi standar yang dibutuhkan (pada saat itu standar yang diminta dapat
dikatakan sangat tinggi) untuk mendukung jumlah data yang besar, saat ini
implementasinya sudah sangat banyak dan adaptatif dengan kebutuhan spesifikasi
data yang rasional sehinggal dapat dimiliki dan diimplementasikan oleh segala
kalangan sebagai bagian dari investasi perusahaan.
1.2 Sejarah atas istilah RDBMS
Edgar F. Codd memperkenalkan istilah ini pada makalah seminarnya yang berjudul "A
Relational Model of Data for Large Shared Data Banks". Salah satu definisi yang cukup
dikenal secara luas atas sebuah sistem basisdata relasional adalah 12 hukum Codd.
Namun demikian, pada awal-awal implementasinya banyak model relasional yang tidak
mengikuti seluruh elemen-elemen yang terdapat dalam hukum-hukum Codd tersebut
yang menjadikan terminologinya berkembang untuk mendeskripsikan sebuah tipikal
sistem basisdata yang lebih luas. Dalam cakupan yang minimum sistem tersebut
memenuhi kriteria berikut:

menyajikan data pada pengguna dalam bentuk relasional (ditampilkan dalam


bentuk tabular, sebagai koleksi dari tabel dimana setiap tabel beriisi sekumpulan
baris dan kolom)

menyediakan operator relasioanl untuk memanipulasi data dalam bentuk tabular

Sistem yang pertama kalinya yang secara relatif memenuhi implementasi atas sebuah
model relasional adalah Pusat Studi Ilmiah IB, Inggris, di Peterlee; IS1 (1970-1972) dan
implementasi lain yang mengikutinya PRTV (1973-1979). Sistem yang pertama kalinya
dijual secara komersil sebagai RDBMS adalah Multics Relational Data Srore pada
tahun 1978. Yang lainnya adalah Berkeley Ingres QUEL dan IBM BS12.
1.3 Pemanfaatan saat ini
Ada beberapa ketidaksepahaman terhadap definisi atas "relasional" dari DBMS.Definisi
yang paling populer dari sebuah RDBMS seringkali dianggap kurang tepat; beberapa
kalangan berargumentasi bahwa penyajian data sebagai kumpulan baris dan kolom
sudah cukup memenuhi syarat untuk dikatakan sebagai sebuah RDBMS. Tipikalnya,

sebuah sistem basisdata dikatakan memenuhi kriteria sebagai RDBMS apabila


memenuhi hukum-hukum yang ditetapkan.
Page
4
dalam 12 hukum Codd, namun pada kenyataannya justru kebanyakan sistem basisdata
tidak mendukung sepenuhnya implementasi hukum-hukum Codd tersebut.
Kalangan lainnya beranggapan apabila sebuah sistem basisdata tidak
mengimplementasikan keseluruhan hukum-hukum Codd tersebut, maka sistem tersebut
tidak dapat disebut sebagai relasional. Pandangan seperti ini, yang banyak diterima
oleh para teoritis dan kalangan-kalangan lainnya yang memegang teguh prinsip-prinsip
Codd, tentunya akan mendiskualifikasikan banyak sistem basisdata yang ada saat ini
"tidak murni relasional". Dalam kenyataannya, sistem basisdata yang menggunakan
SQL (Structured Query Language) untuk mengakses dan memodifikasi data tidak bisa
dikatakan sebagai RDBMS menurut definisi ini. Sementara itu, para pendukung atas
sistem basisdata yang ada menyebutkan sebuah sistem basisdata yang menerapkan
hanya beberapa dari hukum-hukum Codd tersebut disebut sebagai Sistem Manajemen
Basisdata Semi-Relasional/Pseudo-Relational Database Management Systems
(PRDBMS). Untuk sistem manajemen basis data yang sepenuhnya menerapkan
hukum-hukum Codd tersebut selanjutnya disebut sebagai Sistem Manajemen
Basisdata Murni-Relasional/Trully-Relational Database Management Systems
(TRDBMS).
Saat ini, hampir seluruh RDBMS yang ada menerapkan SQL sebagai bahasa query
namun juga menyediakan dan mengimplementasi beberapa alternatif lainnya. Alpora
Dataphor adalah RDBMS yang tersedia secara komersil yang mengikuti secara penuh
ke dua belas hukum-hukum Codd tersebut, dan kedua kelompok mengenalnya sebagai
RDBMS.
1.4 Variasi dinamis
Keluhan yang muncul dan dikenal secara umum terhadap keberadaan RDBMS adalah
kenyataan bahwa implementasi yang ada saat ini dipandang sebagai terlalu "statis".
Spekulasipun bermunculan terhadap kemungkinan untuk membuat sebuah sistem
basisdata generasi baru yang menggunakan model "relasional secara dinamis" dengan
kolom yang bisa dibuat secara dinamis, ukuran yang berkembang secara dinamis,
didefinisikan secara dinamis. Setiap baris dapat diimplementasikan sebagai map
(kamus ataupun larik asosiatif) dan kolom-kolom yang tidak dikenal secara sederhana
disajikan sebagai field kosong. Beberapa kalangan menganggap hal ini menyalahi
model relasioal murni, namun kalangan lain menyanggah bahwa sebuah penggunaan
map hanyalah sebagai detail implementasi saja. Sehingga dalam pandangan ini,
sebuah "kolom yang tidak ditemukan/tidak ada" secara sederhana hanyalah dipandang
sebagai perihal interpretasi dan dianggap sebagai pilihan cara penyajian saja.

Page
5

1.5 Model Data Relasional


Model Data Relasional adalah suatu model basis data yang menggunakan tabel dua
dimensi, yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data.
Model ini menunjukkan cara mengelola/mengorganisasikan data secara fisik dalam
memory sekunder, yang akan berdampak pula pada bagaimana kita mengelompokkan
data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat.
Contoh Tabel dan keterhubungannya :
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353
MKUL
KDMK
KK021
KD132
KU122

Nama
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish

Alamat
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor

MTKULIAH
P. Basis Data
SIM
Pancasila

SKS
2
3
2

NILAI
NPM
10296832
10296126
31296500
41296525
21196353
50095487
10296832

KDMK
KK021
KD132
KK021
KU122
KU122
KD132
KD132

MID
60
70
55
90
75
80
40

FINAL
75
90
40
80
75
0
30

1.5.1 Keuntungan Model Data Relasional


1. Bentuknya sederhana
2. Mudah melakukan berbagai operasi data (query, update/edit, delete).
Contoh-contoh model basis data:
1. Model basis data hirarki
2. Model basis data network/jaringan
3. Model basis data relational (paling banyak digunakan)

Contoh DBMS yang mengelola basis data relational :

Page
6

dBase III+
MS.Access
Borland-Paradox
Oracle
DB2
SYBASE
Informix.

1.5.2 Konversi Model E-R ke Relasional

Setiap himpunan entitas dipetakan menjadi sebuah relasi dasar dengan


primary key yang telah didefinisikan.

Keterhubungan
-

Kardinalitas many to many


-.Setiap keterhubungan dipetakan menjadi sebuah relasi dasar.
-.Primary key dapat berbentuk komposit atau didefinisikan (atribut)
baru.
-.Foreign key adalah semua primary key dari himpunan entitas
yang terlibat.

Kardinalitas many to one


-.Sebuah atribut foreign key ditambahkan ke himpunan entitas
many yang mengacu ke primary key himpunan entitas.

Kardinalitas one to one


-.Seperti many to one dengan pemilihan salah satu himpunan
entitas sebagai acuan.

Contoh Pembuatan Tabel.


MKUL
KDMK
KK021
KD132
KU122

MTKULIAH
P. Basis Data
SIM
Pancasila

Karakteristik dari tabel MKUL:

SKS
2
3
2

data mata kuliah memiliki 3 buah kolom data


kolom 1 berisi adta string/alphanumerik dengan lebar tetap, yaitu 5 digit/char.
Kolom 2 berisi data string dengan lebar maksimum 30 digit.

Page 7

Kolom 3 berisi data integer dengan lebar maksimum 1 digit.

Dari karakteristik di atas, kita bisa menetapkan struktur data tabel MKUL:
- nama kolom/field.
- Tipe data.
- Lebar (banyaknya dgiti maksimum yang bisa ditampung).
Jadi, struktur tabel MKUL :
Nama Kolom
KDMK
MTKULIAH
SKS

Tipe
Char
Char
numerik

Lebar
5
30
1

Istilah dalam Model Data Relasional :

Relasi:
Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
Atribut:
Kolom pada sebuah relasi (field).
Tupel
Baris pada sebuah relasi (record).

Domain
Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree)
Jumlah atribut dalam sebuah relasi (jumlah field)
Cardinality
Jumlah tupel dalam sebuah relasi (jumlah record)

Page
8

atribut
MHS
NPM
10296832
10296126
31296500
41296525
y
50096487
21196353

Nama
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish

Alamat
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor

Domain
Derajat (degree)

Relational Key

Super key
Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di
dalam relasi (satu atau lebih field yang dapat dipilih untuk membedakan antara 1
record dengan record lainnya).
Contoh: Untuk tabel MHS di atas, super key-nya:
- NPM
- NAMA (dengan syarat tidak ada nama yang sama)
- ALAMAT (dengan syarat tidak ada alamat yang sama)
- NPM + NAMA
- NPM + ALAMAT
- NAMA + ALAMAT
- NPM + NAMA + ALAMAT
Candidate key
Atribut di dalam relasi yang biasanya mempunyai nilai unik (super key dengan
jumlah field yang paling sedikit)

Baris

Maka, candidate key-nya adalah NPM, NAMA dan ALAMAT (karena hanya terdiri
dari 1 field saja)
Primary key
Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam
relasi
Maka, primary key yang dipilih adalah NPM (unik, tidak ada NPM yang sama).

Page
9

Alternate key
Candidate key yang tidak dipilih sebagai primary key
Maka, candidate key-nya NAMA dan ALAMAT
Foreign key
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi
tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa

Alternate key

Candidate Key

Primary key
MHS
NPM
10296832
10296126
31296500
41296525
50096487
21196353

Nama
Nurhayati
Astuti
Budi
Prananingrum
Pipit
Quraish

Alamat
Jakarta
Jakarta
Depok
Bogor
Bekasi
Bogor

Relational Integrity Rules

1. Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple)
tersebut
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.

3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal
pada domain yang bersangkutan.

Page
10

Bahasa Pada Model data Relasional


Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil
informasi
Terbagi 2 :
1. Bahasa Query Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol
matematis.
Terbagi 2, yaitu:
a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan
bagaimana cara mendapatkannya.
Contoh:
Aljabar Relasional , yaitu dimana query diekspresikan dengan cara
menerapkan operator tertentu terhadap suatu tabel / relasi.
b. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan
tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Contoh:
Kalkulus Relasional, dimana query menjelaskan set tuple yang diinginkan
dengan cara menjelaskan predikat tuple yang diharapkan.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain
2. Bahasa Query Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program
aplikasi agar pemakai lebih mudah menggunakannya (user friendly).

Contoh :
QUEL
Berbasis pada bahasa kalkulus relasional
QBE
Berbasis pada bahasa kalkulus relasional
SQL
Berbasis pada bahasa kalkulus relasional dan

aljabar relasional

Page
11

2. SQL
2.1 Pengertian SQL

SQL ADALAH : Structured Query Language (SQL) merupakan bahasa


standar yang digunakan untuk memanipulasi basis data relasional. SQL
dapat dikelompokkan sebagai bahasa yang bukan terstruktur karena
pengguna tidak disuruh untuk merangkai kode program. Malahan pengguna
tinggal menggunakan perintah yang sudah didefenisikan untuk menarik
informasi dari suatu basis data relasional.
SQL digunakan untuk memanipulasi basis data relasional. Berikut adalah
perangkat lunak basis data relasional.
* Microsoft Access
* Paradox
* MySql
* Interbase
* SQL Server
Perintah SQL terbagi atas 3 (tiga) kelompok yaitu :
1. Bahasa Defenisi Data (Data Defenition Language)
2. Bahasa Manipulasi Data (Data Manipulation Language)
3. Bahasa Kendali Data (Data Control Language)

SQL (Structured Query Language) adalah bahasa komputer yang ditujukan


untuk menyimpan, memanipulasi, dan query data disimpan dalam database
relasional. Inkarnasi pertama dari SQL muncul di tahun 1974, ketika sebuah
kelompok di IBM mengembangkan prototipe pertama dari sebuah database
relasional. Database relasional komersial pertama dirilis oleh Relational
Software (kemudian menjadi Oracle).

Standar untuk SQL ada. Namun, SQL yang dapat digunakan pada masingmasing RDBMS utama saat ini adalah dalam rasa yang berbeda. Hal ini
disebabkan dua alasan: 1) standar perintah SQL ini cukup rumit, dan tidak
praktis untuk menerapkan seluruh standar, dan 2) masing-masing vendor
database memerlukan cara untuk membedakan produk dari orang lain.
Dalam tutorial ini, perbedaan-perbedaan tersebut dicatat mana yang sesuai.
Ini pemrograman SQL situs bantuan daftar umum digunakan pernyataan
SQL, dan dibagi menjadi bagian berikut:
Perintah SQL : Dasar SQL untuk menyimpan, mengambil, dan memanipulasi
data dalam database relasional.
Page
12

Lanjutan SQL : Advanced perintah SQL.


SQL Sintaks : Satu halaman yang berisi daftar sintaks untuk semua perintah
SQL pada tutorial ini.

2.2 Jenis SQL


1.

Interactive
langsung dapat dioperasikan

2.

Embedded
disisipkan ke dalam sebuah program

2.3 Pengelompokan Statement SQL


1.

Data Definition Language ( DDL )

DATABASE

TABLE

CREATE

DROP

INDEX
VIEW
ALTER TABLE
2. Data Manipulation Language ( DML )
INSERT, SELECT, UPDATE, DELETE
3. Data Access
GRANT, REVOKE
4. Data Integrity
RECOVER TABLE
5. Auxiliary
UNLOAD, LOAD, RENAME COLUMN
Page
13

Kasus
Data Definition Language (DDL)
Pembuatan Database
Sintaks

CREATE DATABASE nama_db;

Contoh

Buat database dengan


nama latihan

CREATE DATABASE latihan;

Pembuatan Tabel
Sintaks
: CREATE TABLE nama_tabel
(nama_kolom1
nama_kolom2

Contoh

jenis_kolom1,
jenis _kolom2, );

Struktur database

MHS (npm char(8), nama char(25), alamat char(30))


MKUL(kdmk char(5), mtkul char(25), sks smallint)
NILAI (npm char(8), kdmk char(5), mid smallint,
final smallint)

Membuat 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 NILAI


(npm char(8) notnull, kdmk char(5) notnull,
mid smallint, final smallint);
Page
14

Pembuatan Index

Sintaks :
CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom);
Contoh:
1). Buat index data mahasiswa berdasarkan npm dengan nama
MHSIN dimana pun tidak boleh sama
CREATE UNIQUE INDEX MHSIN ON MHS(npm);
2). CREATE INDEX NILAIIN ON NILAI(kdmk);

Pembuatan View

Sintaks :
CREATE VIEW nama_view[(nama_kolom1, )] AS SELECT statement
[WITH CHECK OPTION];

Contoh :
1). Buat view dengan nama MHSVIEW yang berisi semua
mahasiswa CREATE VIEW MHSVIEW AS SELECT * FROM MHS;

data

2). CREATE VIEW NILVIEW(npm, kdmk, mid) AS SELECT npm, kdmk, mid
FROM NILAI;

Menghapus Database / Tabel / Index / View

sintaks

: DROPDATABASE nama_db; DROP TABLE


nama_tabel;
DROP INDEX nama_index;
DROP VIEW nama_view;

Contoh

Hapus tabel MHS


DROP TABLE MHS;

Page
15

Merubah Struktur Tabel

Sintaks

ALTER TABLE nama_tabel


ADD (nama_kolom

jenis_kolom

[BEFORE nama_kolom])
MODIFY (nama_kolom
DROP (nama_kolom

jenis_kolom)

jenis_kolom);

Contoh :

1). Tambahkan kolom jkel dengan panjang 1 char


pada tabel MHS
ALTER TABLE MHS ADD(jkel char(1));

2). Ubah panjang kolom mtkuliah menjadi 30 char


ALTER TABLE MKUL
MODIFY(mtkuliah char(30));

3). Hapus kolom jkel dari tabel MHS


ALTER TABLE MHS DROP(jkel char(1));

Page
16

Contoh Data

MHS

npm

nama

alamat

10296832

Nurhayati

Jakarta

10296126

Astuti

Jakarta

31296500

Budi

Depok

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

21196353

Quraish

Bogor

MKUL

kdmk

KK021
KD132
KU122

Mtkuliah

sks

P. Basis Data

SIM

Pancasila

Page
17

NILAI

npm

kdmk

mid

final

10296832

KK021

60

75

10296126

KD132

70

90

31296500

KK021

55

40

41296525

KU122

90

80

21196353

KU122

75

75

50095487

KD132

80

10296832

KD132

40

30

Data Manipulation Language (DML)

INSERT

Sintaks

INSERT INTO
nama_tabel[(nama_kolom1, )]
VALUES(data1, );

Contoh

1). Masukkan data mata kuliah Berkas Akses dengan


kode KK222 dan besarnya 2
INSERT INTO MKUL
VALUES(KK222, Berkas Akses, 2);
2).

INSERT INTO NILAI(npm,kdmk,mid)


VALUES(32296222,KK222,30);
Page
18

UPDATE

Sintaks

UPDATE nama_tabel
SET nama_kolom = ekspresi
WHERE kondisi;

Contoh

1).Ubah alamat menjadi Depok untuk mahasiswa yang memiliki npm


50096487
UPDATE MHS SET alamat=Depok

WHERE npm=50096487;
2).

UPDATE NILAI SET mid=mid+10


WHERE kdmk=KK021;

DELETE

Sintaks
Contoh :

DELETE FROM nama_tabel


WHERE kondisi

Hapus data nilai mata kuliah KK021 bagi mahasiswa


yang mempunyai npm 10296832
DELETE FROM NILAI WHERE
npm=10296832 AND kdmk=KK021;
SELECT
Sintaks :

SELECT [DISTINCT] nama_kolom


FROM nama_tabel
[ WHERE kondisi ]
[ GROUP BY nama_kolom ]
[ HAVING kondisi ]
[ ORDER BY nama_kolom [ASC/DESC]]

Page
19
Contoh Satu tabel ( Simple Query )

1).

Tampilkan semua data mahasiswa

SELECT npm,nama,alamat FROM MHS;

Atau SELECT * FROM MHS;


Hasil :

npm

nama

alamat

2).

10296832

Nurhayati

Jakarta

10296126

Astuti

Jakarta

31296500

Budi

Depok

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

21196353

Quraish

Bogor

Tampilkan mata kuliah yang sks-nya 2


SELECT mtkuliah FROM MKUL WHERE sks = 2;

Hasil :

mtkuliah
P. Basis Data
Pancasila

SELECT * FROM nilai


WHERE mid >= 60 OR final > 75;

SELECT npm, kdmk, mid FROM nilai


WHERE mid BETWEEN 70 AND 100;
Page
20

3). Tampilkan nama mahasiswa yang diawali dengan huruf P


SELECT nama FROM MHS
WHERE nama LIKE P%;

Hasil :

nama

Prananingrum
Pipit

SELECT nama FROM MHS


WHERE nama NOT LIKE %a%;

SELECT nama FROM MHS


WHERE nama LIKE _u%;

4). Tampilkan alamat mahasiswa, dimana alamat


yang sama hanya ditampilkan satu kali saja

SELECT DISTINCT alamat FROM MHS;

Hasil :

alamat

Jakarta
Depok
Bogor
Bekasi

Page
21

5).

Tampilkan semua data mahasiswa dengan nama


terurut dari Z ke A

SELECT * FROM MHS ORDER BY nama DESC;


Hasil :

npm

6).

nama

alamat

21196353

Quraish

Bogor

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

10296832

Nurhayati

Jakarta

31296500

Budi

Depok

10296126

Astuti

Jakarta

Tampilkan alamat mahasiswa dan jumlah masiswa yang bertempat


tinggal di alamat tersebut

SELECT alamat, COUNT(*) FROM MHS


GROUP BY alamat;

Hasil :

alamat

COUNT(*)

Jakarta
Depok
Bogor

2
1

Bekasi

Page
22

7).

Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal


pada alamat yang jumlahnya lebih dari satu
SELECT alamat, COUNT(*) FROM MHS
GROUP BY alamat
HAVING COUNT(*) > 1;

Hasil :

alamat

COUNT(*)

Jakarta
Bogor

8).

2
2

Tampilkan nilai Midtest tertinggi dan terendah


untuk mata kuliah KD132

SELECT MAX(mid), MIN(mid) FROM NILAI


WHERE kdmk=KD132;

Hasil :

MAX(mid)

MIN(mid)

80

40

Page
23

9).

Tampilkan rata-rata dan jumlah nilai final test


mata kuliah KD132

SELECT AVG(final), SUM(final) FROM NILAI


WHERE kdmk= KD132;

Hasil :

AVG(final)

SUM(final)

40

120

Lebih Dari Satu Tabel

10). Tampilkan nama mahasiswa yang mempunyai nilai


midtest lebih kecil dari 60

Sub Query

Langkahlangkah
SELECT
SELECT

FROM
FROM

SELECT
SELECT npm

FROM
FROM

NILAI

WHERE
WHERE mid<60

SELECT nama
SELECT npm

FROM
FROM

MHS
NILAI

WHERE
WHERE mid<60

SELECT

FROM

MHS

WHERE npm IN

nama

WHERE
WHERE

Page 24

(SELECT npm

FROM

NILAI

WHERE mid<60);

FROM

MHS

WHERE npm IN

Join
Langkah

SELECT

nama

(SELECT npm FROM


SELECT nama
MHS.npm = NILAI.npm

NILAI

WHERE mid<60);

FROM
MHS, NILAI
AND NILAI.mid < 60;

WHERE

Hasil :

nama

Nurhayati
Budi
Quraish
2).

a. Sub Query :

SELECT nama FROM MHS WHERE npm IN


(SELECT npm FROM NILAI WHERE kdmk IN
(SELECT kdmk FROM MKUL
WHERE mtkuliah = SIM));

b. JOIN :

SELECT nama FROM MHS, NILAI, MKUL


WHERE MKUL.mtkuliah = SIM
AND
NILAI.kdmk = MKUL.kdmk AND
MHS.npm = NILAI.npm;
Page
25

11).

Tampilkan nama mahasiswa yang tidak mengambil


mata kuliah KK021

SELECT nama FROM MHS WHERE NOT EXISTS


(SELECT * FROM NILAI
WHERE NILAI.npm=MHS.npm AND
kdmk= KK021 );
Hasil :
nama

Astuti
Prananingrum
Pipit
Quraish

4).

Tampilkan npm mahasiswa yang bernama Budi atau


yang memiliki nilai final test > 75

SELECT npm FROM MHS WHERE nama=Budi


UNION SELECT npm FROM NILAI
WHERE final>75;

Hasil :

npm

31296500
10296126
41296525
Page
26

Data Access

GRANT

Sintaks

GRANT hak_akses ON nama_db


[WITH GRANT OPTION]
[AS GRANTOR];

GRANT hak_akses ON nama_tabel


TO nama_pemakai
[WITH GRANT OPTION]
[AS GRANTOR]

Contoh

Berikan hak akses kepada Avi untuk


menampilkan nilai final test

GRANT SELECT(final) ON NILAI


TO AVI;

REVOKE

Sintaks

REVOKE hak_akses ON nama_db


FROM nama_pemakai;
REVOKE hak_akses ON nama_tabel
FROM nama_pemakai;

Contoh

Tarik kembali dari Avi hak akses


Page
27

untuk menampilkan nilai final test

REVOKE SELECT(final)
ON NILAI FROM AVI;
Data Integrity

RECOVER TABLE

Sintaks
Contoh

:
:

RECOVER TABLE nama_tabel;


Kembalikan keadaan data mahasiswa seperti pada
saat sebelum terjadi kerusakan
RECOVER TABLE MHS;

Auxiliary

UNLOAD

Sintaks

UNLOAD TO nama_path
[DELIMITER char_pemisah]
SELECT statement;

Contoh

Ubah semua data mahasiswa ke bentuk


ASCII dan disimpan ke file teks
di directory /home/avi
UNLOAD TO /home/avi/teks
DELIMITER | SELECT * FROM MHS;

LOAD

Sintaks

LOAD FROM nama_path


DELIMITER char_pemisah
INSERT INTO nama_tabel[nama_kolom];

Contoh

Merubah file teks ke tabel MHS_2 di


directory /home/avi :
LOAD FROM /home/avi/teks
DELIMITER | INSERT INTO MHS_2;

Page
28

RENAME

Sintaks

RENAME COLUMN nama_kolom_lama


TO nama_kolom_baru;

Contoh

Ganti nama kolom alamat yang ada pada


tabel MHS menjadi KOTA
RENAME COLUMN MHS alamat
TO kota;

SEKIAN DAN TERIMA KASIH


REFFERNSI:
[1].http://sitialiyah.staff.gunadarma.ac.id/Downloads/files/8411/SQL+OVERVIWE.d
[2].http://kuliah1.galih.eu/Basis%20Data/03.%20Model%20Relational.doc

[3].http://kur2003.if.itb.ac.id/file/Tugas1%20IF3211%20Eksplorasi%20DBMS
%20207.pdf

[4]. http://en.wikipedia.org/wiki/Relation(database)
[5].http://elearning.gunadarma.ac.id/docmodul/pengantar_basis_data/bab1database_relasi_dan_database_relasional.pdf