SQL - Data Definition Language (DDL) Statement DDL adalah perintah-perintah yang digunakan untuk menjelaskan objek dari database. Dengan kata lain DDL digunakan untuk mendefinisikan kerangka database. Statement DDL Create database drop database Create table drop table alter table Create index drop index Create view drop view Contoh Penerapan : Create database : untuk membuat database. : CREATE DATABASE nama_db; Contoh : CREATE DATABASE Perkuliahan; Create table : untuk membuat table. : CREATE TABLE nama_tabel (nama_kolom1, type_kolom1, nama_kolom2, type_kolom2, ); Contoh : CREATE TABLE MHS (NPM char(8) not null, Nama char(25) not null, Alamat char(30) not null); Ket : Not null bersifat optional. Create index : untuk membuat index. : CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom); Contoh : CREATE INDEX KRSx ON KRS(Kd_mk); Ket : Spesifikasi unique akan menolak key yang sama dalam file. Create view : untuk membuat view. : CREATE VIEW view_name [(column1, column2, )] AS SELECT statement FROM table_name [WITH CHECK OPTION]; Contoh : CREATE VIEW MHSv AS SELECT * FROM MHS; Ket : View_name : nama view yang akan dibuat. Column : nama atribut untuk view. Statement : atribut yang akan dipilih dari table basis data. Table_name : nama table basis data. 1
Drop database : untuk menghapus database : Drop database nama_db; Contoh : Drop database Perkuliahan; Drop table : untuk menghapus tabel : Drop table nama_table; Contoh : Drop table MHS; Drop index : untuk menghapus index : Drop index nama_index; Contoh : Drop index KRSx; Drop view : untuk menghapus view : Drop view nama_view; Contoh : Drop view MHSv; Alter table : untuk mengubah table : ALTER TABLE nama_table ADD (nama_kolom_baru type_kolom [BEFORE nama_kolom]) MODIFY (nama_kolom_lama type_kolom) DROP (nama_kolom_lama type_kolom); Contoh : ALTER TABLE MHS ADD (JKEL char(1)); SQL - Data Manipulation Language (DML) Statement DML adalah perintah-perintah yang digunakan untuk mengoperasikan atau memanipulasi isi database. SQL menyediakan 4 perintah DML yaitu Select, insert, update, dan delete. INSERT : INSERT INTO nama_table [(nama_kolom,..)] VALUES (data1,...); Contoh : INSERT INTO MKUL VALUES ( KK222, BERKAS Akses,2); Atau INSERT INTO MKUL (KDMK,MTKUL,SKS) VALUES ( KK222, BERKAS Akses,2); UPDATE : UPDATE nama_tabel SET nama_kolom=ekspresi WHERE kondisi; 2
Contoh : 1. Ubah alamat menjadi depok untuk mahasiswa yang memiliki NPM 12100748 UPDATE MHS SET Alamat= Depok WHERE NPM= 12100748 ; 2. Ubah nilai mid dengan menambahkan nilai 10 untuk kode mata kuliah KK021 UPDATE NILAI SET MID+10 WHERE KDMK= KK021 ; DELETE Contoh : DELETE FROM nama_table [WHERE kondisi]; : DELETE FROM NILAI WHERE NPM= 12100748 AND KDMK= KK021 ; SELECT : SELECT [(DISTINCT)] nama_kolom FROM nama_table [WHERE kondisi] [GROUP BY nama_kolom] [HAVING kondisi] [ORDER BY nama_kolom [ASC/DESC]]; Contoh: Satu table (simple query) Tampilkan semua data mahasiswa SELECT NPM,Nama,Alamat,Kota FROM MHS; atau SELECT * FROM MHS; Tampilkan mata kuliah yang SKSnya 2 SELECT MTKUL FROM MKUL WHERE SKS=2; Tampilkan semua data nilai untuk yang memperoleh nilai mid sekurang-kurangnya 60 atau nilai final diatas 75 SELECT * FROM NILAI WHERE MID>=60 OR FINAL>75; Tampilkan npm, kode mata kuliah dan nilai mid untuk nilai mid antara 70 sampai dengan 100 SELECT NPM,KDMK,MID FROM NILAI WHERE BETWEEN 70 AND 100; Tampilkan nama mahasiswa yang diawali denga huruf P SELECT Nama FROM MHS WHERE Nama LIKE P% ; Tampilkan nama mahasiswa untuk nama mahasiswa yang tidak mengandung unsur huruf a SELECT Nama FROM MHS WHERE Nama NOT LIKE %a% ; Tampilkan nama mahasiswa untuk nama mahasiswa yang karakter keduanya huruf u 3
SELECT Nama FROM MHS WHERE Nama LIKE _U% ; Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja SELECT DISTINCT Alamat FROM MHS; Tampilkan semua data mahasiswa dengan nama terurut dari z ke a SELECT * FROM MHS ORDER BY Nama DESC; Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal dialamat tersebut SELECT Alamat, COUNT(*) FROM MHS GROUP BY Alamat; Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal pada alamat yang jumlahnya lebih dari 1 SELECT Alamat, COUNT (*) FROM MHS GROUP BY ALAMAT HAVING COUNT (*) > 1; Tampilkan nilai mid tertinggi dan terendah untuk mata kuliah KD132 SELECT MAX(MID), MIN(MID) FROM NILAI WHERE KDMK= KD 132 ; Tampilkan rata-rata dan jumlah nilai final mata kuliah KD132 SELECT AVG(FINAL), SUM(FINAL) FROM NILAI WHERE KDMK= KD132 ; Contoh lebih dari 1 tabel 1. Tampilkan nama mahasiswa yang mempunyai nilai mid < 60 SELECT NAMA FROM MHS WHERE NPM IN (SELECT NPM FROM NILAI WHERE MID < 60); JOIN : penggabungan kolom SELECT NAMA FROM MHS, NILAI WHERE MHS.NPM = NILAI.NPM AND NILAI.MID < 60; 2. Tampilkan nama mahasiswa yang mengambil mata kuliah SIM SELECT NAMA FROM MHS WHERE NPM IN (SELECT NPM FROM NILAI WHERE KDMK IN (SELECT KDMK FROM MKUL WHERE MTKUL = SIM )); JOIN : penggabungan kolom SELECT NAMA FROM MHS, NILAI, MKUL WHERE MKUL.MTKUL = SIM AND NILAI.KDMK = MKUL.KDMK AND MHS.NPM = NILAI.NPM; 3. Tampilkan nama mahsiswa yang tidak mengambil mata kuliah KK021 SELECT NAMA FROM MHS WHERE NOT EXISTS 4
(SELECT * FROM NILAI WHERE NILAI.NPM = MHS.NPM AND KDMK = KK021 ); 4. Tampilkan npm mahasiswa yang bernama Budi atau yang memiliki nilai final > 75 SELECT NPM FROM MHS WHERE NAMA = BUDI UNION SELECT NPM FROM NILAI WHER FINAL > 75; SQL - Data Control Language (DCL) /security Statement yang digunakan untuk menjamin keamanan data. SQL menyediakan 2 perintah DCL yaitu GRANT dan REVOKE. Grant untuk memberikan hak akses sedangkan revoke untuk mencabut hak akses. : GRANT hak_akses ON nama_db TO nama_pemakai [WITH GRANT OPTION] {AS Grantor]; REVOKE hak_akses ON nama_db FROM nama_pemakai; Database Privilege Connect Resource DBA Table Privilege Alter Delete Index Insert Select[(col)] Update[(col)] All [privilege] Contoh : GRANT SELECT(Final) ON Nilai TO Avi REVOKE SELECT(Final) ON Nilai FROM Avi SQL - Data Integrity Statement yang digunakan untuk menjaga kesatuan data. Digunakan untuk memperbaiki table bila terjadi kerusakan system (system failure). : RECOVER TABLE nama_tabel; Contoh: RECOVER TABLE MHS; 5
SQL Auxiliary UNLOAD : menulis data dari table kedalam file ASCII : UNLOAD TO nama_path [DELIMITER har_pemisah ] SELECT statement; Contoh: UNLOAD TO /home/avi/text DELIMITER SELECT * FROM MHS LOAD : mengambil data dari file ASCII ke table : LOAD FROM nama_path DELIMITER char_pemisah INSERT INTO nama_table [nama_kolom]; Contoh: LOAD FROM /home/avi/text DELIMITER INSERT INTO MHS_2 RENAME : mengubah nama kolom : RENAME COLUMN nama_table nama_kolom_lama TO nama_kolom_baru; Contoh: RENAME COLUMN MHS ALAMAT TO KOTA 6