SQL atau Structured Query Languange adalah bahasa standar dalam basis data yang digunakan untuk melakukan
manipulasi data. SQL dapat dikelompokkan menjadi 3 kelompok, yaitu : DDL, DML dan DCL.
A. Data Definition Language (DDL)
DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut
(kolom), batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini
adalah CREATE, ALTER, dan DROP.
1. CREATE : digunakan memberi perintah pada database untuk membuat sebuah tabel baru. Membuat Tabel, Syntax :
CREATE TABLE NameTabel
(
Field TipeData (FieldSize) [NULL | NOT NULL]
[optional constraints]
);
2. ALTER : digunakan untuk memodifikasi column dan constraints dari tabel yang sudah dibuat. Constraint :
digunakan untuk membatasi nilai yang akan diinputkan ke dalam field dan untuk menetapkan relasi antar tabel.
3. ADD & DROP : digunakan untuk menambah & menghapus
Syntax : ALTER TABLE NamaTabel ADD Field TipeData (FieldSize) [NULL | NOT NULL];
ALTER TABLE NamaTabel DROP Field TipeData;
B. Data Manipulation Language (DML)
DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis data, misalnya untuk
pengambilan, penyisipan, pengubahan dan penghapusan data. Perintah yang termasuk dalah kategori DML adalah :
INSERT, DELETE, UPDATE dan SELECT.
1. INSERT : digunakan untuk menyisipkan/memasukan data ke dalam tabel, syntax :
INSERT INTO NameTabel [(Field, ...)]
VALUES (IsiRecord, ...);
2. DELETE : digunakan untuk menghapus record dalam tabel, syntax :
DELETE FROM NameTabel WHERE Kondisi;
3. UPDATE : digunakan untuk memperbaharui record yang ada dalam tabel, syntax :
UPDATE NamaTabel SET Field = IsiRecord WHERE Kondisi;
4. SELECT : digunakan untuk mengambil record dari tabel, syntax :
SELECT Field(s) FROM NamaTabel(s);
a. Where : digunakan jika ada kondisi
b. Order by : digunakan untuk mengurutkan secara Ascending (Asc) ataupun Descending (Desc)
c. Like Operator : * (Mewakili banyak karakter), ? (Mewakili 1 karakter), # (Mewakili 1 angka)
d. Operator Pembanding : >, <, >=, <=, <>, =
e. Operator Logika : And, Or, Not, Between, In, Like
f. Fungsi Agregat : SUM, Count, Avg, Max, Min
g. Group By : digunakan untuk mengelompokan data, setidaknya menggunakan 1 fungsi agregat, syntax :
SELECT Field, Agregat (FieldAgregat) AS FieldBaru FROM NamaTabel GROUP BY Field;
h. Having : digunakan untuk menentukan kondisi bagi klausa GROUP BY, syntax :
SELECT Field, Agregat (FieldAgregat) AS FieldBaru FROM NamaTabel GROUP BY Field Having
kondisi;
i. Any : Digunakan untuk mengambil record dari query utama yang sesuai dengan sebagian record pada subquery,
syntax : SELECT * FROM NamaTabel where Field OperatorPembanding ANY (select Field from Tabel);
j. All : Digunakan untuk mengambil record dari query utama yang sesuai dengan semua record pada subquery,
syntax : SELECT * FROM NamaTabel where Field OperatorPembanding ALL (select Field from Tabel);
k. Inner Join : digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan syarat
dibelakang on (tidak boleh null), syntax :
SELECT * FROM Tabel1 inner join Tabel2 on Tabel1.Field= Tabel2.Field;
l. Left Join : setiap record yang ditentukan di sebelah kiri kata LEFT JOIN, syntax :
SELECT * FROM Tabel1 left join Tabel2 on Tabel1.Field= Tabel2.Field;
m. Right : setiap record yang ditentukan di sebelah kanan kata RIGHT JOIN, syntax :
SELECT * FROM Tabel1 right join Tabel2 on Tabel1.Field= Tabel2.Field;
C. Data Controll Languange (DCL)
DCL merupakan bahasa yang digunakan untuk pengaturan akses seseorang user terhadap data. Catatan : user sudah
harus terdaftar. Misalnya Memberikan atau mencabut hak akses kepada user.
1. Memberikan hak akses pada user
GRANT hak_atau_privileges ON nama_database.nama_tabel TO nama_user. Menggunakan MySQL
2. Mencabut hak akses pada user
REVOKE hak_atau_privileges ON nama_database.nama_tabel TO nama_user. Menggunakan MySQL
5. Mengcopy Record/ data dari Tabel Menu ke Tabel Menu1 secara langsung
SELECT Kode, Menu, Item, Harga
INTO Menu1
FROM Menu;
6. Mengupdate Record/ Data Harga kode S003 dari 36.000 menjadi 37.000
UPDATE Menu SET Harga = 37000 WHERE Kode = "S003";
7. Menghapus Record/ Data Kode S003
DELETE FROM Menu WHERE Kode = "S003";
8. Menambahkan Record dari Tabel Menu1 dengan kode S003 ke Tabel Menu
INSERT INTO Menu (Kode, Menu, Item, Harga)
SELECT Kode, Menu, Item, Harga FROM Menu1 where kode="S003";
9. Menghapus Tabel Menu1
DROP TABLE Menu1;
10. Menampilkan Menampilkan Record, Field Kode dan Menu dari Tabel Menu
SELECT Kode, Menu FROM Menu;
11. Menampilkan seluruh Record dan Field Tabel Menu
SELECT * FROM Menu;
12. Menampilkan Tabel Menu, diurutkan berdasarkan Menu secara Ascending
SELECT * FROM Menu Order by Menu;
13. Menampilkan Tabel Menu, diurutkan berdasarkan Menu secara Descending
SELECT * FROM Menu Order by Menu DESC;
14. Menampilkan Tabel Menu, diurutkan berdasarkan Item dan Harga secara Ascending
SELECT * FROM Menu Order by Item, Harga;
15. Menampilkan Menu yang diawali huruf B
SELECT * FROM Menu Where Menu like “B*”;
16. Menampilkan Harga yang 90.000an
SELECT * FROM Menu Where Harga like '9####';
17. Menampilkan Kode yang urutan huruf ke 2-4 adalah 001
SELECT * FROM Menu Where Kode like '?001';
32. Menampilkan seluruh data dari Tabel Faktur dan Tabel Menu, dengan relasi berdasarkan field kode
SELECT * FROM faktur inner join menu on faktur.kode=menu.kode;
33. Menampilkan filed No_Faktur, Kode, Pembeli, Jumlah (dari tabeFaktur) dan field Menu, Harga (dari tabel Menu)
SELECT Faktur.No_Faktur, Faktur.kode, Faktur.Pembeli, Faktur.Jumlah, Menu.Menu, Menu.Harga
FROM Faktur INNER JOIN Menu ON Faktur.kode = Menu.Kode;
34. Menampilkan record Tabel Faktur & Tabel Menu berdasarkan record tabel sebelah kiri syntax left join
SELECT * FROM menu left join faktur on faktur.kode=menu.kode;
35. Menampilkan record Tabel Faktur & Tabel Menu berdasarkan record tabel sebelah kanan syntax right join
Select * from faktur right join menu on faktur.kode=menu.kode;