Pengertian SQL “Query Language”
SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya. SQL biasanya berupa perintah sederhana yang berisi instruksi-instruksi untuk manipulasi data. Perintah SQL ini sering juga disingkat dengan sebutan ‘query‘.
Sejarah SQL
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny Oracle yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran John Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.
Standarisasi SQL
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing.
Pemakaian Dasar SQL
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI.
Jenis-jenis perintah SQL
Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya. Terdapat 3 jenis perintah dasar SQL : Data Definition Language, Data Manipulation Language dan Data Control Language.
- Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan dengan pembuatan struktur tabel maupun database. Termasuk diantaranya : CREATE, DROP, ALTER, dan RENAME.
- Data Manipulation Language (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada dalam tabel, tentang bagaiman menginput, menghapus, memperbaharui serta membaca data yang tersimpan di dalam database. Contoh perintah SQL untuk DML : SELECT, INSERT, DELETE, dan UPDATE.
- Data Control Language (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel. Termasuk diantaranya : GRANT dan REVOKE.
Selain ketiga jenis perintah SQL, terdapat juga 2 jenis SQL tambahan : Transaction Control Language, dan Programmatic SQL.
- Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi. Proses transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua, atau tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistem database perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harus dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah : COMMIT, ROLLCABK, dan SET TRANSACTION.
- Programmatic SQL berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai struktur database. Contoh perintah seperti : DECLARE, EXPLAIN, PREPARE, dan DESCRIBE.
Data Definition Language (DDL)
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.
Contoh :
CREATE
CREATE : digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah:
CREATE DATABASE membuat sebuah basis data baru.
· CREATE DATABASE nama_basis_data
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif.
· CREATE TABLE nama_tabel
Secara umum, perintah ini memiliki bentuk:
· CREATE TABLE [nama_tabel]
· (
· nama_field1 tipe_data [constraints][,
· nama_field2 tipe_data,
· ...]
· )
Atau Seperti ini :
- CREATE TABLE [nama_tabel]
- (
- nama_field1 tipe_data [,
- nama_field2 tipe_data,
- ...]
- [CONSTRAINT nama_field constraints]
- )
DROP TABLE
Digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :
Semua data dan struktur dari table akan dihapus Semua transaksi pending akan di-commit Semua indeks akan dihapus Perintah drop ini tidak bisa di-rollback Sebagai contoh, jika kita ingin menghapus tabel dept, maka yang harus dilakukan adalah :
- DROP TABLE dept;
ALTER
Menambahkan kolom baru untuk menambah kolom baru, syntax umumnya sebagai berikut :
- ALTER TABLE table
- ADD (column datatype [DEFAULT expr]
- [, column datatype]...);
Kita dapat memodifikasi kolom dengan mengubah tipe datanya, ukuran dan nilai defaultnya. Sintaks dari perintah ALTER TABLE untuk memodifikasi kolom sebagai berikut :
- ALTER TABLE table
- MODIFY (column datatype [DEFAULT expr]
- [, column datatype] ... );
Contoh :
- ALTER TABLE dept
- MODIFY (dname VARCHAR2(30));
View
View adalah tabel bayangan. Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database. Syntax untuk melakuakn VIEW adalah :
- CREATE VIEW <namaTabel> AS
- <SQLQuery>
Trigger
Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi pada tabel. Proses modifikasi berupa: Insert, Update dan delete. Syntax pembuatan Trigger:
- CREATE TRIGGER <namaTrigger> ON TABLE <namaTabel>
- FOR [DELETE] [,] [INSERT] [,] [UPDATE]
- AS <perintahSQL>
Contoh perintah DML :
Penambahan data pada sebuah tabel
Syntax:
- INSERT INTO nama_tabel(field ke-1, ….. field ke-n)
- VALUES(nilai_field_ke-1, …. nilai_field_ke-n);
Pembaruan data pada sebuah tabel
Syntax
- UPDATE nama_tabel
- SET nama_field = data_baru
- WHERE nama_field = data_lama;
- Penghapusan data pada sebuah tabel
Syntax:
- DELETE FROM nama_tabel
- [ WHERE kondisi];
- Pemilihan data dari satu atau beberapa tabel
Syntax :
- SELECT [DISTINCT] select_list
- FROM table_source
- [WHERE search_condition]
- [GROUP BY group_by_expression]
- [HAVING search_condition]
- [ORDER BY order_expression [ASC | DESC] ]
Dengan nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter non huruf pada nama kolom. tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key). Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.
Data Manipulation Language (DML)
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah query yang digunakan untuk memanipulasi data dalam tabel, seperti menambah, merubah atau menghapus data. Perintah ini tidak terkait dengan struktur dan metadata dari objek-objek yang berada pada tabel-tabel databaseyang umum dilakukan adalah:
- SELECT untuk menampilkan data
- INSERT untuk menambahkan data baru
- UPDATE untuk mengubah data yang sudah ada
- DELETE untuk menghapus data
Contoh :
SELECT
SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga kadang-kadang istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama.
SELECT adalah yang perintah paling sering SQL digunakan dan mempunyai format umum yang berikut:
- SELECT [DISTINCT / ALL] {* I [columnExpression [AS newName]] [,…..]}
- FORM TableName [alias] [,…..]
- [WHERE condition]
- [GROUP BY Column list] [HAVING condition]
- [ORDER BY Column list]
columnExpression menampilkan suatu nama kolom atau suatu ungkapan, TableName adalah nama dari suatu tabel database ada atau view bahwa mempunyai untuk akses, dan alias adalah suatu singkatan opsional untuk TableName.
Urutan memproses suatu statement SELECT adalah :
- FROM Menetapkan tabel atau tabel itu untuk digunakan
- WHERE Menyaring baris yang tunduk kepada beberapa kondisi
- GROUP BY Membentuk kelompok baris dengan kolom yang sama nilainya
- HAVING Menyaring kelompok yang tunduk kepada beberapa kondisi
- SELECT Menetapkan kolom yang adalah untuk nampak keluaran
- ORDER BY Menetapkan order/ pesanan keluaran
Order yang menentukan di dalam statemen SELECT tidak bisa diubah. Satu-Satunya dua ketentuan wajib dua hal pertama itu: : SELECT and FROM : sisanya adalah opsional
Perintah select bisa digunakan dengan:
- kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan.
- kondisi_aggregat adalah syarat khusus untuk fungsi aggregat.
INSERT
Untuk menyimpan data dalam tabel dipergunakan sintaks:
- INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
- Contoh:
- INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass');
Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.
UPDATE
Untuk mengubah data menggunakan sintaks:
- UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]
- Contoh:
- UPDATE Msuser set password="123456" where username="abc"
DELETE
Untuk menghapus data dipergunakan sintaks:
- DELETE FROM [nhew andiz] [KONDISI]
- Contoh:
- DELETE FROM TEST WHERE NAMA='test';
DCL (Data Control Language)
DCL (Data Control Language) adalah salah satu bentuk SQL yang digunakan untuk melakukan suatu control pada data yang ada atau disimpan dalam suatu database. Control yang dimaksud disini adalah memberikan privileges atau hak akses kepada user yang akan mengakses data pada suatu database.
DCL memiliki 2 syntaks yang paling umum, yaitu:
- GRANT untuk mengizinkan pengguna tertentu untuk melakukan tugas tertentu.
- REVOKE untuk membatalkan sebelumnya diberikan atau ditolak izin.
GRANT
Perintah GRANT digunakan oleh administrator untuk menambah izin baru kepada pengguna database. Ini memiliki sintaks yang sangat sederhana, yang didefinisikan sebagai berikut:
- GRANT [privilege]
- ON [object]
- TO [user]
- [WITH GRANT OPTION]
Berikut rundown pada masing-masing parameter yang ada di perintah GRANT diatas
1. Privilege
Privilege dapat berupa kata kunci ALL (untuk memberikan berbagai izin) atau izin database tertentu atau seperangkat perizinan. Contohnya meliputi CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE, dan CREATE VIEW.
2. Object
Obyek dapat berupa objek database. Pilihan privilege yang valid akan bervariasi berdasarkan jenis objek database Anda masukan dalam klausa on ini. Biasanya objek berupa database, fungsi, store procedural, tabel atau view.
3. Pengguna/User
Menjelaskan pengguna/user database yang akan diberikan privilege (hak istimewa) terhadap database.
REVOKE
Perintah REVOKE digunakan untuk menghapus akses database dari pengguna sebelumnya yang diberikan akses GRANT tersebut. Syntaksnya adalah:
- REVOKE [GRANT OPTION FOR] [permission]
- ON [object]
- FROM [user]
- [CASCADE]
Berikut rundown yang ada pada parameter dari perintah REVOKE diatas :
1. Permission
Menentukan hak akses database yang ingin di hapus dari pengguna yang telah diidentifikasi
2. Object
Obyek dapat berupa objek database. Pilihan privilege yang valid akan bervariasi berdasarkan jenis objek database Anda masukan dalam klausa on ini. Biasanya objek berupa database, fungsi, store procedural, tabel atau view.
3. User/Pengguna
Menjelaskan pengguna/user database yang akan diberikan privilege (hak istimewa) terhadap database.
4. CASCADE
Opsi CASCADE juga mencabut izin tertentu dari setiap pengguna bahwa pengguna tertentu diberikan izin.
Download Doc.