SQL merupakan singkatan dari
Structured Query Language. SQL atau juga sering disebut sebagai query merupakan suatu bahasa (
language)
yang digunakan untuk mengakses database. SQL dikenalkan pertama kali
dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan
untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM,
Microsoft atau Oracle). Hampir semua software database mengenal atau
mengerti SQL. Jadi, perintah SQL pada semua software database hampir
sama.
Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.
1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini
database dan
table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau
record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
- SELECT
- INSERT
- UPDATE
- DELETE
3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan
pengaturan hak akses user MySQL, baik terhadap server, database, tabel
maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
Membuat, Menampilkan, Membuka dan Menghapus Database
1. Membuat Database
Sintaks umum membuat database baru adalah:
CREATE DATABASE [IF NOT EXISTS] nama_database;
Bentuk perintah di atas akan membuat sebuah database baru dengan nama
nama_database. Aturan penamaan sebuah database sama seperti aturan
penamaan sebuah variabel, dimana secara umum nama database boleh terdiri
dari huruf, angka dan under-score (_). Jika database yang akan dibuat
sudah ada, maka akan muncul pesan error. Namun jika ingin otomatis
menghapus database yang lama jika sudah ada, aktifkan option IF NOT
EXISTS.Setiap kita membuat database baru, maka sebenarnya MySQL akan
membuat suatu folder (direktori) sesuai dengan nama databasenya yang
ditempatkan secara default di \mysql\data. Di dalam folder tersebut
nantinya akan terdapat file-file yang berhubungan dengan tabel dalam
database.
Berikut ini contoh perintah untuk membuat database baru dengan nama “
mahasiswa” :
CREATE DATABASE mahasiswa;
Jika query di atas berhasil dieksekusi dan database berhasil dibuat, maka akan ditampilkan pesan sebagai berikut :
Query OK, 1 row affected (0.02 sec)
2. Melihat Database
Untuk melihat database yang baru saja dibuat atau yang sudah ada, dapat menggunakan perintah sebagai berikut :
SHOW DATABASES;
Hasil dari perintah di atas akan menampilkan semua database yang
sudah ada di MySQL. Berikut ini contoh hasil dari query di atas :
+--------------+
| Database |
+--------------+
| mahasiswa |
| mysql |
| test |
+--------------+
3 rows in set (0.02 sec)
3. Membuka Database
Sebelum melakukan manipulasi tabel dan record yang berada di
dalamnya, kita harus membuka atau mengaktifkan databasenya terlebih
dahulu. Untuk membuka database “mahasiswa”, berikut ini querynya :
USE mahasiswa;
Jika perintah atau query di atas berhasil, maka akan ditampilkan pesan sebagai berikut :
Database changed
4. Menghapus Database
Untuk menghapus suatu database, sintaks umumnya adalah sbb :
DROP DATABASE [IF EXISTS] nama_database;
Bentuk perintah di atas akan menghapus database dengan nama
nama_database. Jika databasenya ada maka database dan juga seluruh tabel
di dalamnya akan dihapus. Jadi berhati-hatilah dengan perintah ini!
Jika nama database yang akan dihapus tidak ditemukan, maka akan
ditampilkan pesan error. Aktifkan option IF EXISTS untuk memastikan
bahwa suatu database benar-benar ada.
Berikut ini contoh perintah untuk menghapus database dengan nama “mahasiswa” :
DROP DATABASE mahasiswa;
Membuat, Mengubah dan Menghapus Table
1. Membuat Table
Bentuk umum perintah SQL untuk membuat tabel baru adalah sbb:
CREATE TABLE nama_tabel (
field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key)
);
Bentuk umum di atas merupakan bentuk umum pembuatan tabel yang sudah
disederhanakan. Penamaan tabel dan field memiliki aturan yang sama
dengan penamaan database.
MySQL menyediakan berbagai tipe data dengan spesifikasi dan panjang
masing-masing. Tipe data untuk field dalam MySQL diantaranya ditampilkan
pada tabel berikut ini :
JENIS TIPE |
TIPE |
KETERANGAN |
NUMERIK |
TINYINT |
-128 s/d 127 SIGNED
0 s/d 255 UNSIGNED |
SMALLINT |
-32768 s/d 32767 SIGNED
0 s/d 65535 UNSIGNED. |
MEDIUMINT |
-8388608 s/d 8388607 SIGNED
0 s/d 16777215 UNSIGNED |
INT |
-2147483648 s/d 2147483647 SIGNED
0 s/d 4294967295 UNSIGNED. |
BIGINT |
-9223372036854775808 s/d 9223372036854775807 SIGNED
0 s/d 18446744073709551615 UNSIGNED. |
FLOAT |
Bilangan pecahan presisi tunggal |
DOUBLE |
Bilangan pecahan presisi ganda |
DECIMAL |
Bilangan dengan desimal |
|
|
|
DATE/TIME |
DATE |
Tanggal dengan format YYYY-MM-DD |
DATETIME |
Tanggal dan waktu dengan format :
YYYY-MM-DD HH:MM:SS |
TIMESTAMP |
Tanggal dan waktu dengan format :
YYYYMMDDHHMMSS |
TIME |
Waktu dengan format HH:MM:SS |
YEAR |
Tahun dengan format YYYY |
|
|
|
STRING |
CHAR |
0 – 255 karakter |
VARCHAR |
0 – 255 karakter |
TINYTEXT |
String dengan panjang maksimum 255 karakter |
TEXT |
String dengan panjang maksimum 65535 karakter |
BLOB |
String dengan panjang maksimum 65535 karakter |
MEDIUMTEXT |
String dengan panjang maksimum 16777215 karakter |
MEDIUMBLOB |
String dengan panjang maksimum 16777215 karakter |
LONGTEXT |
String dengan panjang maksimum 4294967295 karakter |
LONGBLOB |
String dengan panjang maksimum 4294967295 karakter |
|
|
|
KHUSUS |
ENUM |
Tipe data dengan isi tertentu |
SET |
Tipe data dengan isi tertentu |
Sebagai contoh, kita akan membuat tabel baru dengan struktur sebagai berikut :
Nama tabel:
mhs
No |
Nama Field |
Tipe |
Panjang |
1 |
nim |
Varchar |
10 |
2 |
nama |
Varchar |
30 |
3 |
tgllahir |
Date |
- |
4 |
alamat |
Text |
- |
Untuk membuat tabel tersebut di atas, query atau perintah SQL-nya adalah sebagai berikut :
CREATE TABLE mhs (
nim varchar(10) NOT NULL,
nama varchar(30) NOT NULL,
tgllahir date,
alamat text,
PRIMARY KEY(nim)
);
Jika query untuk membuat tabel di atas berhasil dijalankan, maka akan ditampilkan pesan sebagai berikut :
Query OK, 0 rows affected (0.16 sec)
Pada perintah di atas, beberapa hal yang perlu diperhatikan :
- CREATE TABLE merupakan perintah dasar dari pembuatan table.
- mhs merupakan nama tabel yang akan dibuat.
- Nim, nama, tgllahir dan alamat merupakan nama field
- Varchar, date dan text merupakan tipe data dari field
- NOT NULL merupakan option untuk menyatakan bahwa suatu field tidak boleh kosong.
- PRIMARY KEY merupakan perintah untuk menentukan field mana yang akan dijadikan primary key pada tabel.
- 10 dan 30 di belakang tipe data merupakan panjang maksimal dari suatu field
- Untuk tipe data date dan text (dan beberapa tipe data lainnya) panjang karakter maksimalnya tidak perlu ditentukan.
- Jangan lupa akhiri perintah dengan titik-koma (;)
Selanjutnya untuk melihat tabel mhs sudah benar-benar sudah ada atau belum, ketikkan perintah berikut ini :
SHOW TABLES;
Perintah di atas akan menampilkan seluruh tabel yang sudah ada dalam
suatu database. Contoh hasil dari perintah di atas adalah sebagai
berikut :
+---------------------+
| Tables_in_mahasiswa |
+---------------------+
| mhs |
+---------------------+
1 rows in set (0.01 sec)
Untuk melihat struktur tabel “mhs” secara lebih detail, cobalah perintah atau query sebagai berikut :
DESC mhs;
DESC merupakan singkatan dari DESCRIBE (dalam query bisa ditulis
lengkap atau hanya 4 karakter pertama) dan mhs adalah nama tabel yang
akan dilihat strukturnya. Dari perintah di atas, akan ditampilkan
struktur tabel mhs sebagai berikut :
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| nim | varchar(10) | | PRI | | |
| nama | varchar(30) | | | | |
| tgllahir | date | YES | | NULL | |
| alamat | text | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Dari struktur tabel mhs yang ditampilkan di atas, dapat diketahui bahwa :