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 Create table Create index Create view
drop drop drop drop
database table index view
alter table
Contoh Penerapan : Create database : untuk membuat database. Syntax : CREATE DATABASE nama_db; Contoh : CREATE DATABASE Perkuliahan; Create table : untuk membuat table. Syntax : 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. Syntax : 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. Syntax : 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 Syntax : Drop database nama_db; Contoh : Drop database Perkuliahan; Drop table : untuk menghapus tabel Syntax : Drop table nama_table; Contoh : Drop table MHS; Drop index : untuk menghapus index Syntax : Drop index nama_index; Contoh : Drop index KRSx; Drop view : untuk menghapus view Syntax : Drop view nama_view; Contoh : Drop view MHSv; Alter table : untuk mengubah table Syntax : 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 Syntax
: 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 Syntax
: 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 Syntax Contoh
SELECT Syntax
: DELETE FROM nama_table [WHERE kondisi]; : DELETE FROM NILAI WHERE NPM=”12100748” AND KDMK=”KK021’;
: 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. Syntax : 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). Syntax : RECOVER TABLE nama_tabel; Contoh: RECOVER TABLE MHS; 5
SQL – Auxiliary UNLOAD : menulis data dari table kedalam file ASCII Syntax : UNLOAD TO “nama_path” [DELIMITER “har_pemisah”] SELECT statement; Contoh: UNLOAD TO “/home/avi/text” DELIMITER “|” SELECT * FROM MHS LOAD Syntax
: 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 Syntax : RENAME COLUMN nama_table nama_kolom_lama TO nama_kolom_baru; Contoh: RENAME COLUMN MHS ALAMAT TO KOTA
6