Pengertian SQL
SQL (Structure Query Language) adalah bahasa query database yang
digunakan untuk menyimpan dan mengelola data dalam Relational Database. SQL
saat ini di gunakan untuk melakukan semua jenis operasi data di RDBMS (MySql,
Oracle, Infomix, Sybase, MS Access). Di dalam mengelola database ini kita
mengenal adanya Query SQL. Apa Query SQL itu? Di artikel ini akan di bahas
lengkap tentang Query SQL beserta penerapannya.
Query SQL
Untuk memanipulasi data
yang di simpan di dalam database relasional, SQL mendefiniskan beberapa cara
diantaranya adalah:
DDL: Data
Definition Language
DDL merupakan query SQL yang
memungkinkan kita untuk melakukan perubahan struktur pada tabel seperti
pembuatan tabel, mengubah tabel, menghapus tabel, dan lainnya. DDL bersifat
Auto-Committed yang artinya semua perubahan akan tersimpan secara permanen di
dalam database.
Di bawah ini beberapa query DDL:
Query DDL |
Deskripsi |
Create |
Untuk membuat
tabel baru atau database baru |
Alter |
Untuk melakukan perubahan struktur pada
tabel seperti menambahkan baris (Add), Mengganti nama baris (Change),
memberikan nama (Rename), atau menghapus baris (Drop) |
Truncate |
Untuk menghapus
data pada tabel |
Drop |
Untuk menghapus tabel dan database |
Rename |
Untuk memberi
nama tabel |
Penerapan Query
DDL:
Query
“CREATE” DDL membuat database:
CREATE DATABASE <NAMA DATABASE>; Contoh: CREATE DATABASE Presensi; |
Query di atas akan membuat database
dengan nama “Presensi” yang akan menjadi skema kosong tanpa tabel apapun. Untuk
membuat tabel di dalam database “Presensi” maka kita bisa menggunakan perintah
Create kembali seperti di bawah ini.
Query
“CREATE” DDL membuat tabel:
CREATE TABLE <NAMA TABEL> ( nama_kolom1 tipeData1, nama_kolom2 tipeData2 ); Contoh: CREATE TABLE MHS( nim_mhs VARCHAR(10) NOT NULL PRIMARY KEY, nama_mhs VARCHAR(30) ); |
Query di atas akan membuat tabel
baru dengan nama “MHS” pada database “Presensi” sebanyak 2 kolom yaitu nim_mhs, dan nama_mhs. Kolom nim_mhs akan
menyimpan data dengan jenis varchar hingga 10 karakter, bersifat Primary Key
dan tidak boleh kosong. Sedangkan untuk nama_mhs akan
menyimpan data dengan jenis varchar hingga 30 karakter.
Kita juga bisa menambahkan nama
database bersamaan dengan nama tabel menggunakan operator “.” Misalnya kita
memiliki database dengan nama “Presensi” dan kita akan membuat tabel dengan
nama MHS, maka query nya sebagai berikut:
CREATE TABLE MHS.Presensi( nim_mhs VARCHAR(10) NOT NULL PRIMARY KEY, nama_mhs VARCHAR(30) ); |
Query
“ALTER” DDL menambahkan kolom:
Untuk menambahkan kolom baru pada
tabel (Add), kita bisa menggunakan query Alter seperti di bawah ini:
ALTER TABLE nama_tabel ADD ( nama_kolom1 tipeData1, nama_kolom2 tipeData2 ); Contoh: ALTER TABLE MHS ADD ( alamat_mhs VARCHAR(50), jurusan_mhs VARCHAR(20) ); |
Query di atas akan menambahkan 2 kolom
baru pada tabel “MHS” dengan nama alamat_mhs
dan jurusan_mhs dimana alamat_mhs akan menyimpan data dengan
jenis varchar hingga 50 karakter dan jurusan_mhs
akan menyimpan data dengan jenis varchar hingga 20 karakter.
Query
“ALTER” DDL menambahkan kolom dengan nilai default:
Query Alter juga bisa di gunakan untuk
menambahkan kolom dengan nilai default. Nilai default artinya ketika tidak ada
nilai yang di masukkan ke dalam kolom sehingga kita bisa menggunakan query
Alter sebagai berikut:
ALTER TABLE nama_tabel ADD ( nama_kolom tipeData DEFAULT nilai_default ); Contoh: ALTER TABLE MHS ADD ( tahun_angkatan YEAR
DEFAULT ‘2016’ ); |
Query di atas akan menambahkan kolom
baru pada tabel ‘MHS’ dengan nama tahun_angkatan
dengan nilai default = ‘2016’.
Query
“ALTER” DDL modifikasi kolom yang sudah ada:
Kita bisa melakukan modifikasi pada
kolom yang sudah ada pada sebuah tabel dengan query di bawah ini:
ALTER TABLE nama_tabel MODIFY ( nama_kolom tipeData ); Contoh: ALTER TABLE MHS MODIFY ( jurusan_mhs VARCHAR(30) ); |
Dari query di atas, kolom jurusan_mhs
dari yang semula menyimpan data dengan jenis varchar hingga 20 karakter diubah menjadi
30 karakter.
Query
“ALTER” DDL memberi nama pada kolom:
Fungsi alter lainnya adalah untuk
memberi nama baru pada kolom yang sudah ada pada sebuah tabel. Query nya adalah
sebagai berikut:
ALTER TABLE nama_tabel RENAME nama_kolom_lama TO nama_kolom_baru; Contoh: ALTER TABLE MHS MODIFY alamat_mhs TO alamat; |
Dari query di atas kita akan memberi nama
baru pada kolom alamat_mhs menjadi alamat.
Query
“ALTER” DDL menghapus kolom:
Untuk menghapus sebuah kolom, kita bisa
menggunakan query di bawah ini:
ALTER TABLE nama_tabel DROP ( nama_kolom ); Contoh: ALTER TABLE MHS DROP ( tahun_angkatan ); |
Query di atas akan menghapus kolom
tahun_angkatan pada tabel MHS.
Query
“TRUNCATE” DDL menghapus kolom:
Query Truncate berfungsi untuk
menghapus data pada tabel tanpa merusak struktur tabel itu sendiri dimana
ketika query ini di eksekusi, primary key (Auto-increment) juga akan di
inisialisasi. Perintah Truncate kurang lebih sama dengan perintah DELETE pada
perintah DML.
TRUNCATE TABLE nama_tabel; Contoh: TRUNCATE TABLE MHS; |
Dari query di atas seluruh record
yang ada pada tabel MHS akan di hapus.
Query
“DROP” DDL menghapus tabel dan database:
Query Drop di gunakan untuk
menghapus tabel dan database. Berbeda dengan query Truncate, query Drop akan
merusak struktur tabel dan data yang di simpan di dalamnya.
DROP TABLE nama_tabel; Contoh: DROP TABLE MHS; |
Untuk query drop database perintahnya dapat di lihat pada gambar di bawah ini:
DROP DATABASE nama_database; Contoh: DROP DATABASE Presensi; |
Query
“RENAME” DDL memberi nama pada tabel:
Query Rename di gunakan untuk
memberikan nama baru pada tabel yang sudah ada.
RENAME TABLE nama_tabel_lama TO nama_tabel_baru; Contoh: RENAME TABLE MHS TO Mahasiswa ; |
Query di atas akan mengganti nama tabel
yang sebelumnya “MHS” menjadi “Mahasiswa”.
DML: Data
Manipulation Language
DML merupakan query SQL yang berfungsi
untuk memanipulasi data yang di simpan pada tabel setelah query DDL di buat. DML
tidak bersifat Auto-Committed artinya perubahan yang di lakukan pada database
tidak bersifat permanen sehingga query yang di lakukan dapat di batalkan.
Di bawah ini beberapa query DML:
Query DML |
Deskripsi |
Insert |
Untuk menambahkan
baris baru |
Update |
Untuk memperbaharui baris yang ada |
Delete |
Untuk menghapus
baris |
Merge |
Untuk menggabungkan dua baris atau dua
tabel |
Penerapan Query DML:
Query
“INSERT” DML:
Query Insert di gunakan untuk
memasukkan data pada tabel.
INSERT INTO nama_tabel VALUES (data1,data2,data3,...data-n); Contoh: INSERT INTO Mahasiswa VALUES (‘165610062’,’Angel’,’Yogyakarta’,’SI’); |
Query di atas akan memasukkan data
pada tabel “Mahasiswa”. Jika tipe data berupa integer maka data yang ada pada
VALUES tidak di berikan tanda petik . Untuk lebih jelasnya bisa di lihat pada
tabel di bawah ini:
nim_mhs |
nama_mhs |
alamat_mhs |
jurusan_mhs |
165610062 |
Angel |
Yogyakarta |
SI |
Query
“UPDATE” DML:
Query Update di gunakan untuk
memperbaharui isi data pada tabel.
UPDATE nama_tabel SET nama_kolom1 = data_baru1, nama_kolom2 = data_baru2 WHERE kondisi; Contoh: UPDATE Mahasiswa SET alamat_mhs = Jakarta WHERE nim_mhs =
‘165610062’; |
Klausa WHERE di gunakan untuk
memperbaharui data tertentu. Seperti contoh di atas kita hanya akan
memperbaharui data alamat_mhs pada tabel Mahasiswa dimana nim_mhs =
‘165610062’. Jika klausa WHERE ini tidak di gunakan maka perintah UPDATE akan
memperbaharui semua isi data pada kolom alamat_mhs.
nim_mhs |
nama_mhs |
alamat_mhs |
jurusan_mhs |
165610062 |
Angel |
Jakarta |
SI |
Query
“DELETE” DML:
Query DELETE di gunakan untuk
menghapus data pada tabel.
DELETE FROM nama_tabel; Contoh: DELETE FROM Mahasiswa; |
Query di atas akan menghapus seluruh
data pada tabel mahasiswa. Kita juga bisa menambahkan klausa WHERE pada
perintah DELETE.
Perbedaan
QUERY TRUNCATE dan DELETE
Walaupun sama-sama menghapus data pada
tabel, perintah TRUNCATE berbeda dengan perintah DELETE. Jika perintah DELETE
menghapus semua record pada tabel, perintah TRUNCATE tidak hanya menghapus
record saja namun melakukan inisialisasi ulang tabel.
Contoh:
Kita memiliki tabel dengan jumlah
baris sebanyak 6 disertai dengan Primary key Auto-increment. Jika kita
menggunakan perintah DELETE, maka semua baris akan terhapus dan ketika kita
memasukkan data baru maka Primary key Auto-increment akan dimulai dari 7.
Berbeda dengan perintah TRUNCATE, semua baris akan terhapus dan ketika memasukkan
data baru maka Primary key Auto-increment akan di mulai dari 1 sama seperti
saat membuat tabel baru.
TCL: Transaction
Control Language
TCL merupakan query SQL yang berfungsi
untuk terus memeriksa perintah dan pengaruh lain terhadap database. Query pada
TCL dapat membatalkan perubahan yang dibuat oleh perintah lain dengan
mengembalikan data ke dalam keadaan semula. Hal ini dapat membuat perubahan sementara
menjadi permanen.
Di bawah ini beberapa query TCL:
Query TCL |
Deskripsi |
Commit |
Untuk menyimpan
secara permanen |
Rollback |
Untuk membatalkan perubahan |
Savepoint |
untuk menyimpan
sementara |
Penerapan Query TCL:
Query
“COMMIT, ROLLBACK, SAVEPOINT” TCL:
Ketika kita menggunakan perintah
INSERT, UPDATE, DELETE pada perintah DCL, perubahan yang di lakukan tidak
permanen artinya perintah-perintah tersebut dapat di batalkan. Agar perintah-perintah
tersebut permanen kita bisa menggunakan query COMMIT.
Untuk query ROLLBACK sendiri di
gunakan untuk mengembalikan keadaan database ke keadaan terkahir yang di
lakukan. Jika kita telah menggunakan perintah UPDATE untuk membuat beberapa
perubahan ke dalam database tetapi perubahan tersebut tidak diperlukan, maka
kita dapat menggunakan perintah ROLLBACK untuk mengembalikan perubahan
tersebut, jika perubahan tersebut tidak dilakukan menggunakan perintah COMMIT.
Sedangkan untuk perintah SAVEPOINT
digunakan untuk menyimpan sementara transaksi sehingga kita dapat melakukan
rollback ke titik tersebut kapan pun diperlukan.
Menggunakan perintah ROLLBACK dan
SAVEPOINT pada tabel jurusan.
id_jurusan |
nama_jurusan |
SI |
Sistem
Informasi |
TI |
Teknik
Informatika |
Dari tabel di atas kita akan mencoba menerapkan
perintah ROLLBACK dan SAVEPOINT.
INSERT INTO jurusan VALUES('MI','MI'); COMMIT; UPDATE jurusan SET nama_jurusan = ' Manajemen
Informatika ' WHERE id_jurusan = 'MI'; SAVEPOINT A; INSERT INTO
jurusan VALUES('KA', 'Komputerisasi
Akuntansi'); SAVEPOINT B; SELECT * FROM
jurusan; |
Tabel jurusan setelah melakukan query
di atas:
id_jurusan |
nama_jurusan |
SI |
Sistem
Informasi |
TI |
Teknik
Informatika |
MI |
Manajemen Informatika |
KA |
Komputerisasi Akuntansi |
Selanjutnya kita gunakan perintah
ROLLBACK untuk mengembalikan perubahan data pada savepoint B.
ROLLBACK TO
B; SELECT * FROM
jurusan; |
Setelah dilakukan perintah ROLLLBACK,
maka tabel jurusan yang semula berisi 4 record menjadi 3 record seperti di
bawah ini:
id_jurusan |
nama_jurusan |
SI |
Sistem
Informasi |
TI |
Teknik
Informatika |
MI |
Manajemen Informatika |
DCL: Data Control
Language
DCL merupakan query yang berfungsi
untuk memberikan dan mengambil kembali otoritas dari setiap pengguna database, auditan penggunaan database, alokasi space, dan
definisi space.
Di bawah ini beberapa query DCL:
Query DCL |
Deskripsi |
Grant |
Untuk memberikan
hak izin akses user untuk mengkases tabel dalam database |
Revoke |
Untuk membatalkan hak izin akses user |
Hak akses (Privileges) terdiri dari 2 tipe:
1. Tipe system : tipe ini merupakan hak akses yang di gunakan untuk membuat sesi, tabel dan hak akses system lainnya.
2. Tipe object : tipe ini merupakan hak akses yang berisi perintah yang di gunakan untuk melakukan operasi pada tabel di database.
QL: Data Query
Language
DQL merupakan query yang
berfungsi untuk mengambil data dari tabel berdasarkan kondisi yang user
terapkan.
Di bawah ini beberapa query DQL:
Query DQL |
Deskripsi |
Select |
Untuk mengambil
informasi dari satu atau lebih tabel |
Query SELECT digunakan untuk mengambil data pada tabel
baik sebagian atau seluruhnya dengan menambahkan kondisi berupa klausa WHERE.
Lihat tabel mahasiswa di
bawah ini:
nim_mhs |
nama_mhs |
alamat_mhs |
jurusan_mhs |
165610062 |
Indah |
Kalimantan |
Sistem Informasi |
155610058 |
Roni |
Lombok |
Sistem Informasi |
155410058 |
Cantika |
Yogyakarta |
Teknik Informatika |
155410028 |
Budi |
Yogyakarta |
Teknik Informatika |
1. Query SELECT
menampilkan isi kolom tertentu pada tabel
SELECT nim_mhs, nama_mhs FROM mahasiswa; |
Query
di atas akan mengambil dan menampilkan isi kolom nim_mhs dan nama_mhs pada
tabel mahasiswa.
nim_mhs |
nama_mhs |
165610062 |
Indah |
155610058 |
Roni |
155410058 |
Cantika |
155410028 |
Budi |
2. Query SELECT
menampilkan seluruh isi kolom pada tabel
SELECT * FROM mahasiswa; |
Query SELECT dengan menggunakan karakter * di
atas akan mengambil dan menampilkan seluruh isi kolom pada tabel mahasiswa.
nim_mhs |
nama_mhs |
alamat_mhs |
jurusan_mhs |
165610062 |
Indah |
Kalimantan |
Sistem Informasi |
155610058 |
Roni |
Lombok |
Sistem Informasi |
155410058 |
Cantika |
Yogyakarta |
Teknik Informatika |
155410028 |
Budi |
Yogyakarta |
Teknik Informatika |
3. Query SELECT
menampilkan isi kolom berdasarkan kondisi
Untuk mengatur kondisi
pada query SELECT, kita bisa menggunakan klausa WHERE seperti di bawah ini:
SELECT * FROM mahasiswa WHERE nim_mhs = ‘165610062’; |
Query di atas akan menampilkan seluruh isi kolom pada tabel mahasiswa dimana data mahasiswa yang akan ditampilkan adalah mahasiswa dengan nim_mhs =”165610062”.
nim_mhs |
nama_mhs |
alamat_mhs |
jurusan_mhs |
165610062 |
Indah |
Kalimantan |
Sistem Informasi |
Menampilkan
kolom tertentu menggunakan klausa WHERE:
SELECT nim_mhs, nama_mhs
FROM mahasiswa WHERE nim_mhs = ‘165610062’; |
Query di atas akan menampilkan isi kolom (nim_mhs dan nama_mhs) pada tabel mahasiswa dimana data mahasiswa yang akan ditampilkan adalah mahasiswa dengan nim_mhs = '165610062'.
nim_mhs |
nama_mhs |
165610062 |
Indah |
0 Komentar