(SQL)
Diterapkan pada :
Informix, AS400
Dbase IV, Access, Visual Basic
Jenis SQL
1. Interactive
lansung dapat dioperasikan
2. Embedded
disisipkan ke dalam sebuah program
DATABASE
CREATE TABLE DROP
INDEX
VIEW
ALTER TABLE
Kasus
Data Definition Language (DDL)
Pembuatan Database
Sintaks : CREATE DATABASE nama_db;
Pembuatan Tabel
Contoh :
Struktur database
MHS (NPM char(8), NAMA char(25),ALAMAT char(30))
MKUL (KDMK char(5), MTKULIAH char(25),
SKS smallint)
Membuat table
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);
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 NPM tidak boleh sama
CREATE UNIQUE INDEX MHSIN
ON MHS(NPM):
Pembuatan View
Sintaks :
CREATE VIEW nama view^l(nama kolom1,...)]
AS SELECT statement
[WITH CHECK OPTION];
Contoh :
1. Buat view dengan nama MHSVIEW yang berisi
semua data mahasiswa
CREATE VIEW MHSVIEW
AS SELECT * FROM MHS;
Menghapus Database /
Tabel / Index / View
Contoh :
Contoh Data
MHS
MKUL
NILAI
Contoh :
UPDATE
Contoh :
DELETE
Contoh :
SELECT
Hasil:
NPM NAMA ALAMAT
10296832 Nurhayati Jakarta
10296126 Astuti Jakarta
31296500 Budi Depok
41296525 Prananingru Bogor
m
50096487 Pipit Bekasi
21196353 Quraish Bogor
MTKULIAH
P.Basis Data
Pancasila
Hasil :
NAMA
Prananingrum
Pipit
Hasil:
ALAMAT
Jakarta
Depok
Bogor
Bekasi
Hasil :
Hasil :
ALAMAT COUNT
Jakarta 2
Depok 1
Bogor 2
Bekasi 1
Hasil:
ALAMAT COUNT(*)
Jakarta 2
Bogor 2
6). Tampilkan nilai Midtest tertinggi dan terendah utk mata kuliah
"KD132”
Hasil:
MAX(MID) MIN(MID)
80 40
Hasil:
AVG(FINAL) SUM(FINAL)
40 120
Sub Query
Langkah-langkah
SELECT FROM WHERE
SELECT FROM WHERE
Join
Langkah
Hasil:
NAMA
Nurhayati
Budi
. b. JOIN :
Hasil:
NAMA
Astuti
Prananingrum
Pipit
Quraish
Hasil:
NPM
31296500
10296126
41296525
Data Access
GRANT
REVOKE
Contoh : Tarik kembali dari Avi hak akses untuk menampilkan nilai
final test
REVOKE SELECT(FINAL)
ON NILAI FROM AVI;
Data Integrity
RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel;
Contoh :
Kembalikan keadaan data mahasiswa seperti
pada saat sebelum terjadi kerusakan RECOVER
TABLE MHS;
Auxiliary
UNLOAD
Sintaks : UNLOAD TO”nama_path"
[DELIMiTER”char_pemisah”]
SELECT atatement;
UNLOAD TO "/home/avi/teks"
DELIMITER “|'' SELECT * FROM MHS;
LOAD
Sintaks : LOAD FROM “nama_path”
DELIMITER”char_pemisah"
INSERT INTO nama_tabel[nama_kolom];
LOAD FROM"/home/avi/teks"
DELIMITER “|'' INSERT INTO MHS_2;
RENAME
Contoh : Ganti nama kolom ALAMAT yang ada pada tabel MHS
menjadi KOTA
1. SQL Interactive
Pemroseson dilakukan dengan cara memasukkan sebuah
pernyataan SQL melalui terminal atau mikrokomputer dan langsung
diproses, Hasilnya langsung dapat direpresentasikan.
2. SQL Sisip
Pemrosesan dilakukan dengan cara menyisipkan pernyataan
SQL ke dalam sebuah program. SQL ini tidak langsung dilihat oleh
pemakai.
Contoh Tabel :
PEMASOK
BARANG
PEMASOKKAN
DATA DEFINITION
Terdapat beberapa perintah DDL :
CREATE TABLE
Contoh :
ALTER TABLE
Bentuk umum :
ALTER TABLE base-table ADD column data-type;
Contoh :
ALTER TABLE PEMASOK ADD ALAMAT CHAR(30);
DROP TABLE
Bentuk umum :
Contoh :
DROP TABLE PEMASOK ;
II. INDEXES
CREATE INDEX
Bentuk umum :
Contoh :
DROP INDEX
Bentuk umum :
DROP INDEX index;
Contoh :
DROP INDEX XPEM;
DATA MANIPULATION
SQL menyediakan 4 perintah DML :
SELECT DELETE
UPDATE INSERT
SIMPLE QUERIES
Bentuk umum :
SELECT [DISTINCT] item(s)
FROM table(s)
[WHERE condition]
[GROUP BY fleld(s)]
[HAVING condition ]
[ORDER BY field(s) ;
Hasil :
NOPEM NAPEM
P02 Sentosa
P05 Utama
SELECT NOPEM
FROM PEMASOKKAN ;
Hasil :
NOPEM
P01
P01
P01
P01
P02
P02
P03
P03
P04
Hasil :
NOPEM
P01
P02
P03
P04
6. Penggunaan BETWEEN
Hasil :
Penggunaan In
Hasil:
NOBAR NABAR HARGA
B05 Kemeja 100000
JOIN QUERIES
Contoh:
SELECT NAPEM
FROM PEMASOK, PEMASOKKAN
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND NOBAR = 'B01’;
Hasil :
NAPEM
Harapan
Sentosa
Hasil :
NOPEM NOPEM
P01 P04
P02 P05
Hasil :
NAPEM KOTA
Sentosa Bandung
Harapan Jakarta
AGGREGATE FUNCTION
Hasil: 5
hasil: 4.
13. Tampilkan jumlah total dari barang yang dipasok oleh pemosok
P02
.
Hasil : 200
Penggunaan GROUP BY
Hasil :
NOBAR
B01 140
B02 130
B03 250
B04 200
B05 120
Penggunaan HAVING
15. Tampilkan nomor pemasok yang memasok lebih dari satu barang
SELECT NOPEM
FROM PEMASOKKAN
GROUP BY NOPEM
HAVING COUNT (*) > 1;
Hasil :
NOPEM
P01
P02
P03
Penggunaan LIKE
Contoh :
SELECT *
FROM PEMASOK
WHERE NAPEM LIKE ‘H%’;
Hasil :
NOPEM NAPEM KOTA
P01 Harapan Jakarta
Multi level Subquery
17. Tampilkan nama-nama barang yang dipasok oleh pemasok Prima
Atau
SELECT NABAR
FROM BARANG,PEMASOKKAN,PEMASOK
WHERE PEMASOK.NOPEM = PEMASOKKAN.NOPEM
AND BARANG.NOBAR = PEMASOKKAN.NOBAR
AND NAPEM = 'Prima' ;
Hasil :
NABAR
Kaos kaki
Ikat pinggang
Korelasi Subquery
18. Tampilkan Nama pemasok yang memasok barang B01
SELECT NAPEM
FROM PEMASOK
WHERE 'B01' IN
( SELECT NOBAR
FROM PEMASOKKAN
WHERE NOPEM = PEMASOK.NOPEM );
Hasil :
NAPEM
Harapan
Sentoso
19. Tampilkan nomor barang yang dipasok oleh lebih dari satu
pemasok
20. Tampilkan nomor barang yang harganya lebih murah dari harga
maksimum
Hasil :
NOBAR
B01
B02
B03
B04
SELECT NAPFM
FROM PEMASOK
WHERE NOT EXISTS
( SELECT *
FROM PEMASOKKAN
WHERE PEMASOKKAN.NOPEM =
PEMASOK.NOPEM
AND NOBAR = 'B02') ;
Hasil :
NAPEM
Sentosa
Prima
Pengunaan UNION
SELECT NOBAR
FROM BARANG
WHERE HARGA < 10000
UNION
SELECT NOBAR
FROM PEMASOKKAN
WHERE NOPEM ='P03' ;
Hasil :
NOBAR
B03
B04
UPDATE
Bentuk Umum
UPDATE table
SET field = scalar expression [f ield = scalar expression]
[WHERE condition];
UPDATE PEMASOK
SET KOTA = ' Jakarta’
WHERE NOPEM = P03 ;
UPDATE BARANG
SET HARGA = HAR6A + 10000
WHERE NOBAR IN
(SELECT NOBAR
FROM PEMASOKKAN
WHERE NOPEM IN
( SELECT NOPEM
FROM PEMASOK
WHERE KOTA ='Jakarta'));
DELETE
Bentuk Umum
DELETE
FROM table
[WHERE condition] ;
DELETE
FROM PEMASOKKAN
WHERE NOBAR IN
(SELECT NOBAR
FROM BARANG
WHERE HARGA > 70000);
INSERT
Bentuk Umum
INSERT
INTO table ┌ ,field [ field ] ...)]
VALUES (literal [ literal ] …]
INSERT
INTO BARANG ( NOBAR, NABAR, HARGA)
VALUES ('B06','Celana Panjang, 75000 );