STRUCTURE QUERY LANGUAGE (SQL)
SQL
telah dugunakan pada tahun 1970-an. SQL adalah suatu bahasa yang sangat
mendukung berbagai tipe format database. Kemampuan bahasa ini dapat diandalkan
untuk mengolah suatu database dengan cepat dan efisien.
Perkembangan SQL cukup berarti bagi pemrograman database di dunia. Sintak SQL dibuat oleh bagian ANSI (American Antional Standards Institute). Sintak SQL atau lebih dikenal SQL-89 sangatlah popular pada tahun 1989, dan tiga tahun kemudian megalami pembaharuan yang menjadi SQL-92. SQL-92 inilah yang menjadi sintak SQL yang digunakan di dalam lingkungan Delphi (Local SQL) untuk mengelola database Paradox, Foxpro.
Perkembangan SQL cukup berarti bagi pemrograman database di dunia. Sintak SQL dibuat oleh bagian ANSI (American Antional Standards Institute). Sintak SQL atau lebih dikenal SQL-89 sangatlah popular pada tahun 1989, dan tiga tahun kemudian megalami pembaharuan yang menjadi SQL-92. SQL-92 inilah yang menjadi sintak SQL yang digunakan di dalam lingkungan Delphi (Local SQL) untuk mengelola database Paradox, Foxpro.
KEGUNAAN SQL EXPLORER
Seperti database Desktop, SQL explorer merupakan salah satu utility dari kepunyaan Delphi. Utility ini mempunyai fungsi untuk meng-edit sintak SQL dan mengeksekusi sintak tersebut. Database desktop juga telah menyediakan editor SQL, tetapi fasilitas yang ada tidak sefleksibel SQL explorer
Seperti database Desktop, SQL explorer merupakan salah satu utility dari kepunyaan Delphi. Utility ini mempunyai fungsi untuk meng-edit sintak SQL dan mengeksekusi sintak tersebut. Database desktop juga telah menyediakan editor SQL, tetapi fasilitas yang ada tidak sefleksibel SQL explorer
STATEMENT SELECT…FORM
Statement ini untuk menyajikan data pada table. Contoh penggunaan sintak ini adalah sebagai berikut :
Select * From TMAHASISWA
Tulislah sintak diatas pada Editor SQL dan kemudian tekan tombol Ctr+E untuk menjalankannya, maka semua field di tabel TMAHASISWA akan ditampilkan di bawah editor SQl.
Select NAMA, ALM From TMAHASISWA
Sintak diatas akan menampilkan field NAMA dan ALM, sedangkan jumlah/ urutan data sama, kemudian jika ditambahkan sintaks seperti berikut :
Select ts.NAMA ts.”Nama mahasiswa”, ts.ALM ts.”Alamat” From TMAHASISWA ts
Pada sintak tersebut terdapat “ts” yang berfungsi sebagai nama pengganti dari TMAHASISWA (nama tabel), maka hasilnya judul field NAMA berubah menjadi Nama mahasiswa, sedangkan field ALM menjadi Alamat
Statement ini untuk menyajikan data pada table. Contoh penggunaan sintak ini adalah sebagai berikut :
Select * From TMAHASISWA
Tulislah sintak diatas pada Editor SQL dan kemudian tekan tombol Ctr+E untuk menjalankannya, maka semua field di tabel TMAHASISWA akan ditampilkan di bawah editor SQl.
Select NAMA, ALM From TMAHASISWA
Sintak diatas akan menampilkan field NAMA dan ALM, sedangkan jumlah/ urutan data sama, kemudian jika ditambahkan sintaks seperti berikut :
Select ts.NAMA ts.”Nama mahasiswa”, ts.ALM ts.”Alamat” From TMAHASISWA ts
Pada sintak tersebut terdapat “ts” yang berfungsi sebagai nama pengganti dari TMAHASISWA (nama tabel), maka hasilnya judul field NAMA berubah menjadi Nama mahasiswa, sedangkan field ALM menjadi Alamat
SQL dapat diterapkan pada beberapa
software diantaranya adalah : Dbase IV,
Informix, AS-400, Access .
Jenis SQL
1.
Interactive ; langsung dapat dioperasikan.
2.
Embedded
; disisipkan ke dalam sebuah program
(
Cobol, C, Fortran ).
Pengelompokan Statement SQL
1.
Data
Definition Language ( DDL )
*CREATE :
- DATABASE
- TABLE
- 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
Kasus DDL
Pembuatan Database
Sintaks : CREATE DATABASE nama_db ;
Contoh :
CREATE DATABASE latihan ;
(membuat database dengan nama latihan)
Pembuatan
Tabel
Sintaks : CREATE TABLE nama_tabel
(nama_kolom1 type_kolom1, nama_kolom
type_kolom2, …)
Contoh :
Struktur
database
MHS (NPM char(8),NAMA
char(25),ALAMATchar(30))
MKUL (KDMK char(5),MTKUL char(25),SKS
smallint)
NILAI
(NPM char(8),KDMK char(5),MID smallint,FINAL 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:
Buat index dengan nama MHSIN berdasarkan NPM dari tabel MHS !
CREATE UNIQUE INDEX MHSIN ON MHS(NPM);
Hasil :
MHSIN
NPM |
NAMA |
ALAMAT |
10296126 |
Astuti |
Jakarta |
10296832 |
Nurhayati |
Jakarta |
21196353 |
Quraish |
Bogor |
31296500 |
Budi |
Depok |
41296525 |
Prananingrum |
Bogor |
50096487 |
Pipit |
Bekasi |
CREATE INDEX NILAIIN ON NILAI(KDMK);
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;
CREATE VIEW NILVIEW(NPM, KDMK, MID) AS SELECT NPM, KDMK, MID FROM NILAI;
Menghapus Database / Tabel / Index / View
Sintaks : DROP DATABASE nama_db
DROP
TABLE nama_tabel
DROP INDEX nama_index
DROP
VIEW nama_view
Contoh :
menghapus tabel MHS :
DROP TABLE MHS;
Merubah
Struktur Tabel
Sintaks : ALTER TABLE nama_tabel
ADD
(nama_kolom type_kolom
[BEFORE nama_kolom])
MODIFY (nama_kolom type_kolom)
DROP (nama_kolom
type_kolom);
Contoh :
Tambahkan
kolom JKEL pada tabel MHS
ALTER
TABLE MHS ADD(JKEL char(1));
Hasil
:
MHS
NPM
|
NAMA
|
ALAMAT
|
JKEL
|
10296832
|
Nurhayati |
Jakarta |
|
10296126
|
Astuti |
Jakarta
|
|
31296500
|
Budi |
Depok
|
|
41296525
|
Prananingrum |
Bogor
|
|
50096487
|
Pipit |
Bekasi
|
|
21196353
|
Quraish |
Bogor
|
|
Ubah panjang kolom MTKULIAH yang ada
pada tabel MKUL !
ALTER TABLE
MKUL
MODIFY(MTKULIAH char(30));
Hapus kolom
JKEL dari tabel MHS !
ALTER
TABLE MHS DROP(JKEL char(1));
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 |
MTKULIAH
|
SKS
|
KK021 |
P. Basis Data
|
2
|
KD132 |
SIM
|
3
|
KU122 |
Pancasila
|
2
|
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
|
0
|
10296832
|
KD132
|
40
|
30
|
Kasus DML
Insert
Sintaks : INSERT INTO
nama_tabel [(nama_kolom1, …)]
VALUES
(data1, …);
Contoh :
Masukkan data pada tabel MKUL !
INSERT INTO MKUL VALUES (“KK222”,”Berkas Akses”, 2);
Hasil :
MKUL
KDMK |
MTKULIAH
|
SKS
|
KK021 |
P.
Basis Data
|
2
|
KD132 |
SIM
|
3
|
KU122 |
Pancasila
|
2
|
KK222 |
Berkas
Akses
|
2
|
Masukan data pada tabel Nilai
INSERT INTO NILAI(NPM,KDMK,MID) VALUES
(“32296222”,”KK222”,30);
Update
Sintaks : UPDATE nama_tabel
SET nama_kolom =
ekspresi
WHERE kondisi;
Contoh :
Ubah alamat mahasiswa yg memiliki NPM = “50096487” !
UPDATE
MHS SET ALAMAT=”Depok”
WHERE
NPM=”50096487”;
Hasil
:
MHS
NPM
|
NAMA
|
ALAMAT
|
50096487
|
Pipit |
Depok
|
UPDATE
NILAI SET MID=MID+10
WHERE
KDMK=”KK021”;
Delete
Sintaks : DELETE FROM nama_tabel
WHERE kondisi
Contoh :
Hapus nilai mahasiswa yang mempunyai NPM=”10296832”
dan KDMK=”KK021” !
DELETE
FROM NILAI WHERE NPM=”10296832” AND
KDMK=”KK021”;
Hasil
:
NILAI
NPM
|
KDMK
|
MID
|
FINAL
|
10296126
|
KD132
|
70
|
90
|
31296500
|
KK021
|
55
|
40
|
41296525
|
KU122
|
90
|
80
|
21196353
|
KU122
|
75
|
75
|
50095487
|
KD132
|
80
|
0
|
10296832
|
KD132
|
40
|
30
|
Select
Sintaks : SELECT [DISTINCT] nama_kolom
FROM nama_tabel
[
WHERE kondisi ]
[ GROUP BY nama_kolom ]
[ HAVING kondisi ]
[ ORDER BY nama_kolom [ASD/DESC]]
Contoh satu
tabel ( Simple Query ) :
Menampilkan
data.
Tampilkan semua data mahasiswa !
SELECT
* FROM MHS;
SELECT
NPM,NAMA,ALAMAT FROM MHS;
Mengambil data
dari suatu tabel dengan satu/banyak
kondisi :
Tampilkan mata kuliah yang memiliki SKS = 2 !
SELECT
MTKULIAH FROM MKUL WHERE SKS = 2;
Hasil
:
MKUL
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;
Mengambil data
dari suatu tabel dengan menggunakan perintah LIKE:
Tampilkan nama mahasiswa yang diawali dengan huruf “P”
!
SELECT
NAMA FROM MHS WHERE NAMA LIKE “P%”;
Hasil
:
MHS
NAMA
|
Prananingrum |
Pipit |
SELECT
NAMA FROM MHS WHERE NAMA NOT LIKE “%a%”;
SELECT
NAMA FROM MHS WHERE NAMA LIKE “_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
DISTINCT ALAMAT FROM MHS;
Memilih
beberapa / semua data dari suatu tabel untuk diurutkan / dikelompokkan :
Tampilkan semua data dari tabel MHS, dengan nama
terurut dari “Z” ke “A” !
SELECT
* FROM MHS ORDER BY NAMA DESC;
Hasil
:
MHS
NPM
|
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 mahasiswa yang
bertempat tinggal di alamat tersebut !
SELECT
ALAMAT, COUNT(*) FROM MHS GROUP BY ALAMAT;
Hasil
:
ALAMAT
|
COUNT(*)
|
Jakarta
|
2
|
Depok
|
1
|
Bogor
|
2
|
Bekasi
|
1
|
Tampilkan alamat dan jumlah masiswa 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
|
2
|
Bogor
|
2
|
Penggunaan Agreegate
Function.
Tampilkan data tertinggi dan terendah dari nilai
Midtest pada KDMK = “KD132” !
SELECT
MAX(MID), MIN(MID) FROM NILAI WHERE KDMK=”KD132”;
Hasil
:
MAX(MID)
|
MIN(MID)
|
80
|
40
|
Tampilkan rata-rata nilai final test dan jumlah nilai
final test dengan KDMK = “KD132” !
SELECT
AVG(FINAL), SUM(FINAL) FROM NILAI
WHERE KDMK=”KD132”;
Hasil
:
AVG(FINAL)
|
SUM(FINAL)
|
40
|
120
|
NILAI
KDMK
|
FINAL
|
KD132
|
90
|
KD132
|
0
|
KD132
|
30
|
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 IN ( SELECT NPM FROM NILAI WHERE MID <= 60 );
JOIN :
SELECT
NAMA FROM MHS, NILAI WHERE MHS.NPM = NILAI.NPM AND NILAI.MID <= 60;
Hasil
:
MHS
NAMA
|
Nurhayati |
Budi |
Quraish |
Sub
Query :
SELECT
NAMA FROM MHS WHERE NPM IN (SELECT NPM FROM NILAI WHERE KDMK IN (SELECT KDMK
FROM MKUL WHERE MTKULIAH = “SIM”);
JOIN :
SELECT
NAMA FROM MHS, NILAI, MKUL WHERE MKUL.MTKULIAH=”SIM” AND NILAI.KDMK = MKUL.KDMK
AND MHS.NPM = NILAI.NPM;
Penggunaan
Exists / Not Exists
Tampilkan nama mahasiswa yang tidak
mengambil KDMK = “KK021” !
SELECT
NAMA FROM MHS WHERE NOT EXISTS
(SELECT
* FROM NILAI WHERE NILAI.NPM = MHS.NPM AND
KDMK = “KK021” );
Hasil
:
MHS
NAMA
|
Astuti |
Prananingrum |
Pipit |
Quraish |
Penggunaan
Union
Tampilkan NPM mahasiswa yang bernama Budi dan yang
memiliki nilai final > 75 !
SELECT
NPM FROM MHS WHERE NAMA = “Budi” UNION
SELECT
NPM FROM NILAI WHERE FINAL > 75;
Kasus Data Access
Grant
Sintaks : - GRANT hak_akses ON nama_db
TO
nama_pemakai
[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 hak akses untuk menampilkan nilai final test dari Avi !
REVOKE
SELECT(FINAL) ON NILAI FROM AVI;
Kasus Data Integrity
Kasus Statement
Auxiliary
Unload
Sintaks : UNLOAD TO “nama_path”
[DELIMITER “char_pemisah”]
SELECT
statement;
Contoh :
Merubah 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;
Rename
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;
semoga bermanfaat dan selamat mencobanya...!!
Terima kasih sudah mengunjungiblog saya..
sempatkanlah untuk memberi komentar mengenai blog saya, agar bisa lebih baik kedepannya
posting : by mtk
0 komentar:
Posting Komentar