Query Language Komersial dan
Penggunaan SQL
Avid Wijaya, S.ST., MKM
STRUCTURED QUERY LANGUAGE (SQL)
SQL dipublikasikan oleh E.F. CODD (1970) mengenai
model relational. Kemudian pada tahun 1974, D.
Chamberlin dan R.F. Boyce mengembangkan bahasa
query untuk memanipulasi dan mengekstraksi data dari
basisdata relational.
SASARAN SQL
• Menciptakan basis data dan struktur relasi
• Melakukan menajemen data tingkat dasar
• Membentuk query sederhana dan kompleks
• Melakukan tugas-tugas dengan seminimal mungkin memakai struktur
dan sintaks perintah relatif mudah dipelajari
SASARAN SQL
• Interactive SQL
data dalam SQL jenis ini selalu berubah dengan cepat seiring dengan
penggunaannya yang sering/interaktif.
• Static SQL
data dalam SQL ini selalu tetap dalam periode waktu yang cukup lama.
Biasanya berisi data-data yang mengalami waktu perubahan yang
cukup lama.
• Dynamic SQL
data dalam jenis SQL ini berubah dalam periode waktu tertentu.
PEMBAGIAN SQL
• DDL (Data Definition Language)
digunakan untuk mendefinisikan struktur atau skema basis
data
• DML (Data Manipulation Language)
digunakan untuk manajemen data dalam basis data
PENGELOMPOKAN STATEMEN SQL
1. Data Definition Language
(DDL)
CREATE DROP
DATABASE DATABASE
CREATE TABEL DROP TABEL
CREATE INDEX DROP INDEX
CREATE VIEW DROP VIEW
ALTER TABLE
2. Data Manipulation Language
(DML)
INSERT, SELECT, UPDATE, DELETE
3. Data Access
GRANT , REVOKE
4. Data Integrity
RECOVER TABLE
5. Auxiliary
Select Into Outfile (UNLOAD),
LOAD, RENAME TABLE
D D L
CREATE
1. Pembuatan Database
Nama Database adalah yang dapat mewakili
suatu kejadian dapat berupa nama organisasi
atau perusahaan.
Sintaks : CREATE DATABASE
nama_database Contoh : Buat
database dengan nama latihan
CREATE DATABASE latihan
2. Pembuatan
Tabel
Sintaks :
CREATE TABLE nama_table
( nama_kolom1 tipe_data_kolom1,
nama_kolom2,tipe_data_kolom2,….)
Contoh :
Buat struktur tabel dengan nama tabel
MHS dengan data NPM char(8), NAMA
char(25), ALAMAT char(30)
CREATE TABLE MHS (NPM char(8) not
null,
NAMA char(25) notnull, ALAMAT char(30)
notnull)
3. Pembuatan
Index
Sintaks : CREATE [UNIQUE] INDEX
nama_index
ON nama_table (nama_kolom) ;
Contoh :
Buat index data mahasiswa berdasarkan denga
NPM n
nama MHSIDX Dimana NPM tidak boleh sama
CREATE UNIQUE INDEX MHSIDX ON
MHS(NPM)
4. Pembuatan View
Sintaks :
CREATE VIEW nama_view [
(nama_kolom1,….) ]
AS SELECT statement
[WITH CHECK
OPTION] ;
Contoh :
Buat view dengan nama
MHSVIEW yang berisi
semua data mahasiswa
CREATE VIEW MHSVIEW
AS SELECT *
FROM MHS
DROP (MENGHAPUS)
1.Menghapus Database
Sintaks : DROP DATABASE
nama_db ;
2.Menghapus Tabel
Sintaks : DROP TABLE
nama_table ;
3.Menghapus Index
Sintaks : DROP INDEX
nama_index ;
4.Menhapus View
Sintaks : DROP VIEW
nama_view ;
Contoh :
DROP DATABASE Mahasiswa;
ALTER TABLE (MERUBAH STRUKTUR
TABEL)
Sintaks :
ALTER TABLE nama_tabel
ADD nama_kolom
CHANGE [COLUMN]
jenis_kolom oldnama newnama
[FIRST | AFTER
MODIFY
nama_kolom] jenis kolom,
nama_kolom
DROP nama_kolom
RENAME
namabaru_tabel
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
COLUMN MTKULIAH char(30);
3.Hapus kolom JKEL dari data table MHS
ALTER TABLE MHS DROP JKEL;
D M L
INSERT
INSERT INTO Nama_tabel
[(nama_kolom1,…)] VALUES
(data1,data2,,,)
Contoh :
Masukan data matakuliah Berkas Akses
dengan
kode KK222 dan besarnya 2
INSERT MKUL VALUES(“KK222”,”Berkas
Akses”, 2);
UPDATE
Sintaks :
UPDATE nama_tabel
SET nama_kolom = value_1
WHERE kondisi ;
Contoh :
Ubah alamat menjadi “Depok” untuk mahasiswa
yang memiliki NPM “50409486”
UPDATE MHS SET ALAMAT=”Depok”
WHERE NPM=”50409486”;
DELETE
Sintaks : DELETE FROM
nama_table
WHERE kondisi
Contoh
Hapus : data nilai matakuliah “KK021” bag
mahasiswa yang mempunyai NPM “ i
10109832”
DELETE FROM NILAI
WHERE NPM=”10109832” AND
KDMK=”KK021”
Tabel dibawah ini untuk mengerjakan Select (tampilan) dari SQL
Tabel Mahasiswa Tabel Nilai
NPM NAMA_MHS ALAMAT_MHS NPM NO_MK MID FINAL
10109832 Nurhayati Jakarta 10109832 KK021 60 75
10109126 Astuti Jakarta 10109126 70 90
32105500 Budi Depok
41200525 Prananigrum Bogor 32105500 KD132 55 40
50409486 Pipit Bekasi 41200525 90 80
21109353 Quraish Bogor 21109353 KK021 75 75
10109001 Fintri Depok
21108002 Julizar Jakarta
50409486 80 0
KU122
Tabel MataKuliah KU122
KD_MK NAMA_MK SKS
KD132
KK021 Sistem Basis Data 2
KD132 Sistem Informasi Manajemen 3
KU122 Pancasila 2
SELECT
Sintaks :
SELECT [DISTINCT | ALL]
nama_kolom
FROM nama_tabel
[ WHERE condition ]
[ GROUP BY column_list ]
[HAVING condition ]
[ ORDER BY column_list [ASC | DESC]]
Contoh :
a. Tampilkan semua data mahasiswa
SELECT NPM,NAMA,ALAMAT FROM MAHASISWA;
Atau
SELECT * FROM MAHASISWA;
Hasil: NPM NAMA_MHS ALAMAT_MHS
10109832 Nurhayati Jakarta
10109126 Astuti
31209500 Budi Jakarta
41209525 Prananin Depok
grum Bogor
b. Tampilkan Mata Kuliah yang SKSnya 2
Select NAMA_MK from matakuliah Where sks =
2
Hasil : NAMA_MK
Sistem Basis Data
Pancasila
c. Tampilkan semua data nilai dimana nilai MID lebih
besar sama dengan 60 atau nilai finalnya lebih besar
75.
SELECT * FROM NILAI WHERE MID >= 60 OR
FINAL > 75
Hasilnya :
NPM NO. MK MID FINAL
10109832 KK021 60 75
10109126 70 90
41209525 KD132 90 80
21109353 75 75
KU122
KU122
Manipulasi string : LIKE, NOT LIKE, %,
Contoh :
1.SELECT npm,nama FROM NPM NAMA_MHS ALAMAT_MHS
mahasiswa
10109832 Nurhayati Jakarta
41200525 Prananigrum Bogor
WHERE nama LIKE „%a%21109353 Quraish Bogor
21108002 Julizar Jakarta
Hasil :
2. SELECT npm,nama FROM
mahasiswa
NPM NAMA_MHS ALAMAT_MHS
WHERE nama NOT LIKE „%a%
Hasil 10109126 Astuti Jakarta
32105500 Budi Depok
50409486 Pipit Bekasi
10109001 Fintri Depok
3. SELECT * FROM nilai WHERE npm LIKE „???
09%‟
4. SELECT * FROM nilai WHERE npm[4,5]=„09‟
NPM NO_MK MID FINAL
10109832 KK021 60 75
10109126 70 90
21109353 KD132 75 75
50409486 80 0
KU122
KD132
5. SELECT DISTINCT alamat_mhs
FROM
ALAMAT_MHS
MAHASISWA
Jakarta
Depok
Bogor
Bekasi
6. SELECT * FROM matakuliah ORDER BY
sks
KD_MK NAMA_MK SKS
KK021 Sistem Basis Data 2
Pancasila 2
KU122 Sistem Informasi 3
Manajemen
KD132
DATA ACCESS
GRANT
Sintaks GRANT hak_akses ON
: nama_db TO
nama_pemakai [IDENTIFIED
BY] [PASSWORD]
„Password‟
[WITH GRANT OPTION] ;
GRANT hak_akses ON
[nama_db.]nama_tabel
TO nama_pemakai
[IDENTIFIED BY]
[PASSWORD]
„Password‟
[WITH GRANT
OPTION];
Contoh :
DATA ACCESS
REVOKE
Sintaks : REVOKE hak_akses ON nama_db
FROM nama_pemakai ;
REVOKE hak_akses ON
nama_tabel
FROM nama_pemakai ;
Contoh :
Tarik kembali dari Adi hak akses untuk
menampilkan nilai final test
REVOKE SELECT (FINAL) ON NILAI FROM ADI
DATA
INTEGRITY
RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel
Contoh :
Kembalikan keadaan data mahasiswa seperti pada
saat
sebelum terjadi kerusakan
RECOVER TABLE MAHASISWA ;
AUXILIARY
SELECT … INTO OUTFILE ‘filename’
Sintaks ini digunakan untuk mengekspor data dari
tabel ke file lain.
Sintaks : SELECT … INTO
OUTFILE ‘Nama File’
[FIELDS | COLUMNS]
[TERMINATED BY 'string']
[[OPTIONALLY]
ENCLOSED BY 'char']
[ESCAPED BY 'char'] ]
Contoh :
Ubah semua data mahasiswa ke bentuk ASCII
dan disimpan ke file teks di directory/home/adi
dengan pemisah antar kolom „|‟
SELECT * FROM MAHASISWA
INTO OUTFILE “/home/adi/teks”
FIELDS TERMINATED BY “ ”;
Atau
UNLOAD TO “/home/adi/teks.txt”
delimiter “|” SELECT * FROM MAHASISWA;
LOAD
Sintaks Kueri ini digunakan untuk mengimpor data
dari
file lain ke tabel.
Sintaks LOAD DATA INFILE “ nama_path”
: INTO TABLE nama_tabel
[ nama_kolom] ; [FIELDS | COLUMNS]
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char'] ]
Contoh :
Memasukkan data dari file teks yang berada
pada
direktori “/home/adi” ke dalam tabel
MHS_2. Dimana
pemisah antara kolom dalam file teks adalah tab (\t) :
LOAD FROM „/home/adi/teks‟
INTO MHS_2
FILELDS TERMINATED BY „|t‟;
Atau
LOAD FROM “/home/adi/teks.txt” delimiter
“|” INSERT INTO mhs_2
RENAME TABLE
Sintaks : RENAME TABLE
Oldnama_Tabel
TO NewNama_Tabel
Contoh :
RENAME TABLE MAHASISWA TO
MHS
FUNGSI
AGGREGATE
COUNT digunakan untuk menghitung jumlah
record. Menghitung jumlah record mahasiswa
dari tabel MAHASISWA
SELECT COUNT(*) FROM MAHASISWA
hasil : 8
SUM digunakan untuk menghitung total dari
kolom yang mempunyai tipe data numerik.
SELECT SUM(SKS) AS „TOTAL SKS‟
FROM
MATAKULIAH
hasil : TOTAL
SKS 7
AVG digunakan untuk menghitung rata-rata dari
data-data dalam sebuah kolom.
SELECT AVG(FINAL) AS ‘FINAL’ FROM Nilai
hasil : 60
MIN digunakan untuk menghitung nilai minimal dalam sebuah
kolom.
SELECT MIN(FINAL) FROM Nilai
hasil : 40
MAX digunakan untuk menghitung nilai maksismum dalam
sebuah kolom
SELECT MAX(MID) FROM Nilai
hasil : 90
1. Tampilkan nilai final tertinggi
SELECT MAX( final) FROM 'Nilai'
2. Tampilkan nilai final terendah
SELECT MIN( final) FROM 'Nilai„;
SELECT MIN(final), MAX(final) FROM nilai
3. Tampilkan rerata dari nilai MID dan FINAL
SELECT AVG(mid),AVG(final) FROM mhs
4. Menampilkan nama yang mengandung hurus a kecil
SELECT npm, nm_mhs FROM 'mhs' where nm_mhs LIKE
'%a%'
5. Tampilkan npm,kd_mk,mid untuk nilai mid antara 70 sd 90
SELECT npm, kd_mk, mid FROM `nilai` WHERE mid <91 AND mid >69
atau
SELECT npm, kd_mk, mid FROM `nilai` WHERE mid BETWEEN 70 AND
90
6.Tampilkan npm,nm_mhs,kd_mk,final untuk semua mahasiswa SELECT nilai.NPM, nm_mhs, kd_mk, final
FROM mhs, nilai WHERE mhs.NPM = nilai.NPM
7. Tampilkan npm,nm_mhs,nama_mk,mid,final untuk semua
mahasiswa
SELECT nilai.NPM, nm_mhs, nama_mk, mid, final
FROM mhs, nilai, matkul
WHERE mhs.NPM = nilai.NPM AND matkul.kd_mk = nilai.kd_mk
8. Tampilkan nm_mhs,nama_mk,mid, mid, final untuk
semua
mahasiswa yang nilai mid>60 dan final>60
SELECT nm_mhs, nama_mk, mid, final
FROM mhs, matkul, nilai
WHERE mhs.NPM = nilai.NPM AND
matkul.kd_mk = nilai.kd_mk
AND mid>60 and final>60
9. Tambahkan kolom FAKULTAS pada tabel
Mahasiswa
ALTER TABLE `mhs` ADD `Fak`
VARCHAR(50) NOT NULL;
10. Tambahkan data mahasiswa dari mhs1.txt
11.Ubah nilai dari fak dari ketentuan, ambil 1digit ke 3 dari NPM
Jika : nilainya 1 maka fak=FIKTI
nilainya 2 maka fak=FE
niainya 3 maka fak=FTSP
ni1ainya 4 maka fak=FTI
ni1ainya 5 maka fak=FPSI
ni1ainya 6 maka
fak=FSAS
UPDATE mhs SET
fak='FIKTI' WHERE npm
LIKE ‘ %1%'; dst
Atau
UPDATE mhs SET
fak=‟FIKTI‟ WHERE
13.Tampilkan npm, nama, kdmk, mid,final untuk semua ,
diurutkan berdasarkan nama mahasiswa dari besar ke kecil
14.Tampilkan jumlah kdmk,nama matakuliah untuk semua
matakuliah yang diambil oleh mahasiswa
15.Tampilkan nilai rerata mid untuk setiap kdmk
Select kdmk,avg(mid) from nilai group by kdmk
THANK YOU