Anda di halaman 1dari 9

DASAR BAHASA SQL DALAM MYSQL

A. Tujuan
1. Mahasiswa mampu menjelaskan konsep dasar SQL pada MySQL
2. Mahasiswa mampu menggunakan perintah dasar SQL pada MySQL
3. Mahasiswa mampu menjelaskan jenis-jenis tipe data dan atribut tipe data
4. Mahasiswa mampu menggunakan tipe data dan atribut tipe data secara tepat
dalam pembuatan tabel di MySQL

B. Dasar Teori
1. Perintah Dasar SQL dalam MySQL
Materi tentang query dalam MySQL akan saling berhubungan. Sebagai
contoh, ketika membahas cara membuat tabel (query CREATE), hasilnya baru
kelihatan saat tabel ditampilkan (query SELECT). Oleh karena itu di dalam praktikum
ini akan membahas sekilas berbagai query dasar MySQL, seperti CREATE, INSERT,
UPDATE, dan SELECT. Materi yang lebih detail akan dibahas dalam praktikum
tersendiri.

No Query/ Perintah Keterangan


1 create database Perintah untuk membuat database.
nama_database;
2 show databases; Perintah untuk melihat database yang
tersedia di MySQL server
3 drop database Perintah DROP DATABASE akan
nama_database; menghapus database, termasuk seluruh
tabel dan isi dari tabel tersebut.
4 use nama_database; Perintah untuk memilih database.
5 create table nama_tabel Perintah untuk membuat tabel.
(nama_kolom
tipe_kolom);
6 show tables; Perintah untuk melihat daftar tabel dari
suatu database.
7 drop table nama_tabel; Perintah untuk menghapus tabel
8 describe/desc Perintah untuk melihat struktur tabel
nama_tabel;
9 insert into nama_tabel Perintah untuk menginput data
values (nilai_kolom1, kedalam tabel
nilai_kolom2,...);
10 select * from Perintah untuk menampilkan data suatu
nama_tabel; tabel
11 delete from nama_tabel Perintah untuk menghapus data pada
where kondisi suatu tabel

Selain menggunakan keyword DATABASE, MySQL/MariaDB juga


mendukung keyword SCHEMA. Yang juga akan membuat sebuah database. schema
sama artinya dengan database. Tapi di sistem RBDMS lain seperti ORACLE dan SQL
Server, schema merupakan sebuah bagian yang terpisah dari database.

2. Tipe Data
Hampir semua hal yang kita lakukan di MySQL melibatkan data, karena
database sendiri memang ditujukan untuk me-manajemen data. Terdapat beragam tipe
data yang disediakan oleh MySQL. Mulai dari tipe data angka (numeric), teks (string),
hingga tanggal (date). Setiap tipe data ini juga memiliki beragam jenis yang
dibedakan berdasarkan jangkauan, jenis data yang bisa disimpan, efisiensi serta cara
penyimpanan.

nama_kolom tipe_kolom
atribut;

No Tipe Data Keterangan


A Numeric Tipe data Numeric adalah tipe data angka di dalam MySQL.
Angka ini bisa berupa angka bulat maupun pecahan.
tipe data numeric MySQL dikelompokkan ke dalam 3 jenis:
a. Exact-value types: Tipe data angka yang disimpan secara
pasti dan presisi. Jenis ini terdiri dari tipe data INTEGER
dan DECIMAL.
b. The f loating-point types: Tipe data angka yang disimpan
dengan perkiraan (approximate-value). Jenis ini terdiri
dari tipe data FLOAT dan DOUBLE.
c. The BIT type: tipe data angka yang digunakan untuk
menyimpan angka biner.

1. Integer Tipe data Integer adalah tipe data angka yang terdiri dari angka
bulat tanpa nilai pecahan, seperti 127 dan 10000.
Tipe Data SIGNED UNSIGNED
TINYINT -128 to 127 0 to 255
SMALLINT -32,768 to 32,767 0 to 65,535
MEDIUMINT -8,388,608 to 8,388,607 0 to 16,777,215
INT -2,147,483,648 to 0 to 4,294,967,295
2,147,483,647
BIGINT -9,223,372,063,854,775,808 0 to
to 18,446,744,073,709,
9,223,372,063,854,775,807 551,615

Secara default bawaan MySQL, tipe data INTEGER dianggap


sebagai SIGNED yang artinya bisa menampung angka bulat
negatif dan positif. Jika ditambahkan atribut UNSIGNED,
angka negatif “dikorbankan” supaya bisa menampung nilai
positif yang lebih besar.

2. Decimal Tipe data DECIMAL digunakan untuk menampung angka


pecahan, seperti 3.14 atau 999.9999. MySQL sebenarnya
memiliki 3 jenis tipe data untuk angka pecahan, yakni
DECIMAL, FLOAT dan DOUBLE. Bedanya, tipe data
DECIMAL disimpan menggunakan sistem fixed point.

Tipe data DECIMAL memiliki 2 pengaturan yang berfungsi


untuk membatasi berapa jumlah digit yang akan disimpan
(jangkauan dari angka). Format dasarnya sebagai berikut:

DECIMAL (M,D)

M adalah total jumlah digit keseluruhan, sedangkan D adalah


jumlah digit di belakang koma (pecahan). Sebagai contoh,
DECIMAL [6,2] digunakan untuk membuat kolom 6 digit
angka
dengan 2 digit di belakang koma → 6666.66

3. Float dan Tipe data FLOAT dan DOUBLE digunakan untuk menyimpan
Double angka pecahan (sama seperti tipe data DECIMAL). Kedua tipe
data ini juga menggunakan pengaturan yang sama, yakni
dengan format:

FLOAT (M, D)
DOUBLE (M, D)

Dalam tipe data DECIMAL, maksimal nilai M = 65, dan nilai


D = 30. Untuk tipe data FLOAT dan DOUBLE, maksimal nilai
M adalah 255, dan nilai D tetap 30. Artinya, angka yang bisa
ditampung oleh tipe data FLOAT dan DOUBLE jauh lebih
besar dibandingkan tipe data DECIMAL.

4. Bit Tipe data BIT adalah tipe data khusus untuk menyimpan digit
biner, yakni angka yang terdiri dari dua digit saja: 0 dan 1.
BIT(M)
B String Tipe data string adalah sebutan untuk data teks yang terdiri dari
huruf-huruf alfabet, seperti: 'a', 'A', 'aku', dan 'Belajar MySQL’.

Untuk membuat data string, penulisannya harus di dalam tanda


kutip satu ( ' ) atau tanda kutipdua ( " ). Meskipun MySQL
mendukung tanda kutip satu dan tanda kutip dua untuk
membuat string, yang disarankan adalah menggunakan tanda
kutip satu, sesuai dengan standar bahasa SQL.

Untuk pembuatan kolom tabel, MySQL menyediakan beragam


tipe data string:
a. CHAR dan VARCHAR
b. TEXT dan BLOB
c. BINARY dan VARBINARY
d. ENUM
e. SET

5. Char dan Tipe data CHAR dan VARCHAR adalah tipe data karakter
Varchar (string) yang paling sederhana dan juga paling sering
digunakan. Format dasar penulisan tipe data CHAR dan
VARCHAR adalah sebagai berikut:

CHAR (M)
VARCHAR (M)

Dimana M berguna untuk membatasi jumlah karakter yang


dialokasikan oleh MySQL. Misalkan nilai M=5, artinya MySQL
menyediakan 5 karakter untuk kolom tersebut.

Nilai maksimal M adalah 255 untuk CHAR, dan 65.535 untuk


VARCHAR. Jika nilai M tidak di nyatakan, nilai dianggap
sebagai M=1. Disini terlihat bahwa tipe data VARCHAR
memiliki jumlah karakter maksimal yang lebih besar daripada
CHAR.

6. Text Untuk data string yang lebih besar, MySQL menyediakan tipe
data TEXT yang terdiri dari 4 jenis:

Tipe Data Ukuran Max Karakter Max


TINYTEXT 255 byte 255
TEXT 65.535 byte (64 KB) 65.535
MEDIUMTEXT 16.777.215 byte (16 MB) 16.777.215
LONGTEXT 4.294.967.295 (4GB) 4.294.967.295
Mekanisme penyimpanan data untuk tipe data TEXT sama
seperti VARCHAR, dimana MySQL hanya akan menyimpan
jumlah karakter saja.
7. Blob Tipe data BLOB adalah tipe data versi binary dari TEXT,
dimana karakter akan disimpan dalam bit. Efeknya, untuk
karakter huruf, huruf besar dan kecil akan dibedakan (‘A’ tidak
sama dengan ‘a’).

Tipe Data Ukuran Max Karakter Max


TINYBLOB 255 byte 255
BLOB 65.535 byte (64 KB) 65.535
MEDIUMBLOB 16.777.215 byte (16 MB) 16.777.215
LONGBLOB 4.294.967.295 (4GB) 4.294.967.295

Karena sifatnya yang tersimpan secara binary, tipe data BLOB


umumnya digunakan untuk menyimpan data multimedia,
seperti gambar dan musik ke dalam tabel MySQL.

8. Binary Pada dasarnya tipe data BINARY dan VARBINARY sama


dan dengan CHAR dan VARCHAR, perbedaannya hanya pada
Varbinary struktur penyimpanan dalam MySQL, dimana tipe data binary
akan disimpan secara biner (bit per bit), bukan secara karakter
seperti CHAR. Sederhananya, hal ini akan berefek pada case-
sensitif data.

Pada tipe data CHAR, jika kita menyimpan data ‘A’, maka
secara internal MySQL akan menyimpannya sebagai karakter
‘A’, dimana ‘A’ akan sama dengan ‘a’. Namun untuk tipe data
BINARY, ‘A’ akan disimpan sebagai bit dari ‘A’, yaitu 65, dan
akan berbeda dengan ‘a’, dimana nilai biner-nya 97.

BINARY (M)
VAR BINARY (M)

9. Enum Tipe data ENUM merupakan tipe data bentukan yang hanya
bisa diisi dengan 1 nilai yang sudah kita tentukan sebelumnya.
Pilihan ini dapat berisi 1 hingga 65.535 pilihan string.

Contoh penggunaan ENUM misalnya pada kolom jenis


kelamin. Untuk kolom ini pilihannya hanya ada dua: laki-laki
atau perempuan. Agar data yang diinput ke dalam tabel lebih
teratur, kita bisa membuat aturan bahwa kolom tersebut hanya
bisa diisi 2 nilai itu saja dan tidak boleh dengan nilai lain.

ENUM ('pilihan_1', 'pilihan_2',...)

10. Set Tipe data SET mirip seperti ENUM, yakni sebuah tipe data
bentukan yang pilihannya sudah di definisikan terlebih dahulu.
Namun berbeda dengan ENUM yang mengharuskan kita
memilih 1 pilihan saja, kolom dengan tipe data SET bisa diisi
lebih dari 1 pilihan. Daftar pilihan untuk tipe data SET dibatasi
antara 1 hingga 64.

Contoh penggunaan tipe data SET adalah untuk pilihan hobi.


Bisa saja seseorang memiliki lebih dari 1 hobi, namun tetap
dibatasi dari pilihan yang ada (tidak bisa menginput hobi baru).

SET ('pilihan_1', 'pilihan_2',...)

C 11. Date Tipe data DATE adalah tipe data khusus untuk menyimpan
tanggal (date), waktu (time), dan gabungan tanggal dan waktu
(datetime). Tipe data DATE bisa ditulis menggunakan tanda
kutip maupun tanpa tanda kutip.

Tipe Data Jangkauan Format


DATE 1000-01-01 to ‘CCYY-MM-DD’
9999-12-31 ‘YY-MM-DD’
‘CCYYMMDD’
‘YYMMDD’
CCYYMMDD
YYMMDD
TIME 838:59:59 to ‘hh:mm:ss’
838:59:58 ‘hhmmss’
hhmmss
DATETIME 1000-01-01 00:00:0 ‘CCYY-MM-DD hh:mm:ss’
to CCYYMMDDhhmmss
9999-12-31 23:59:59
TIMESTAMP 1970-01-01 00:00:00 ‘YY-MM-DD hh:mm:ss’
to ‘CCYYMMDDhhmmss’
2038-01-18 22:14:07 ‘YYMMDDhhmmss’
CCYYMMDDhhmmss
YYMMDDhhmmss
YEAR(2) 00 to 99 ‘YY’
YY
YEAR(4) 1901 to 2155 ‘CCYY’
CCYY
.

3. Atribut Tipe Data


Sebelumnya, kita telah mempelajari berbagai tipe data yang digunakan untuk
pembuatan tabel. Kali ini kita akan membahas perintah tambahan yang berfungsi
untuk memodifikasi tipe data tersebut. Apakah itu menambah kemampuan,
mengurangi, hingga membatasi nilai yang bisa ditampung.
Atribut tipe data ditulis setelah nama kolom dan nama tipe data. Jika atribut
tersebut lebih dari, dipisahkan dengan tanda spasi. adang dikenal juga sebagai
constraints, column modifier atau column attributes. Berikut format dasarnya:
Nama_kolom tipe_kolom
atribut1 atribut2 dst;

No Atribut Keterangan
1 NULL Dalam pemrograman, nilai NULL adalah sebutan
untuk ‘tidak ada data’. NULL ini berbeda dengan
angka 0 maupun string kosong. Angka nol tetap
mewakili sebuah angka (tipe data number), begitu
pula dengan string kosong yang tetap berupa tipe
data string.

Meskipun tidak ditulis, secara default (bawaan


MySQL) menganggap setiap kolom tertulis atribut
NULL.

2 NOT NULL Atribut NOT NULL merupakan kebalikan dari


atribut NULL. Jika sebuah kolom memiliki atribut
NOT NULL, kita tidak bisa mengisi nilai NULL ke
kolom tersebut.

Atribut NOT NULL biasa dipakai untuk membatasi


bahwa sebuah kolom harus berisi nilai dan tidak
boleh kosong (NULL).

3 DEFAULT Apabila atribut DEFAULT tidak ditulis pada


kolom dalam MySQL, maka akan dianggap sebagai
NULL.

Atribut default berfungsi untuk memberikan nilai


default ke dalam sebuah kolom. Nilai default ini
baru akan dipakai jika tidak ada nilai yang diinput
ke kolom tersebut.

4 SIGNED Atribut SIGNED khusus digunakan pada tipe data


number. Fungsinya untuk menandakan bahwa tipe
data number mendukung angka positif dan negatif.
Atribut ini secara default sudah ‘melekat’ ke
seluruh tipe data number sehingga tidak perlu
ditulis.

5 UNSIGNED Atribut UNSIGNED digunakan untuk


memperbesar jangkauan tipe data positif integer
dengan cara mengalihkan jatah dari nilai negatif ke
positif.
Kolom integer yang ditambahkan atribut
UNSIGNED tidak lagi bisa menyimpan angka
negatif, akan tetapi jangkauan angka positifnya
menjadi 2 kali lipat lebih besar.

4 ZEROFILL Atribut ZEROFILL berfungsi untuk mengisi angka


0 di sebelah kiri selama belum sesuai dengan
jumlah display width.

5 CHARACTER SET Charset berurusan dengan ketersediaan jenis


dan COLLATION karakter, sedangkan collation berfungsi untuk
mengatur proses pengurutan dan pencarian.

Dampak perbedaan antar charset tidak begitu


terasa. Charset ascii sekalipun sudah mendukung
penuh seluruh alphabet latin yang ada di dalam teks
berbahasa indonesia (huruf A-Z dan a-z).

Collation sepintas juga tidak terlalu tampak


fungsinya. Huruf a akan diurutkan lebih dulu dari
pada huruf b, huruf b lebih dulu daripada huruf c,
dst.

Collation ini baru terlihat untuk karakter yang


punya banyak huruf a, seperti bahasa negara
eropa timur. Untuk bahasa ini ada huruf à, á, â, ã, ä
dan å.

6 BINARY Atribut BINARY adalah atribut khusus untuk


kolom dengan tipe data CHAR, VARCHAR dan
TEXT. Efeknya akan menambah collation binary
ke dalam kolom tersebut.

7 ON UPDATE Atribut ON UPDATE secara khusus digunakan


untuk tipe data TIMESTAMP. Tipe data
TIMESTAMP adalah tipe data tanggal dan waktu
dalam format ‘CCYYMMDD hh:mm:ss’, seperti
2017-08-08 18:18:49.

Fitur untuk tipe data TIMESTAMP seperti ini


sebenarnya berasal dari 2 buah atribut yang aktif
secara default:
a. DEFAULT CURRENT_TIMESTAMP
b. ON UPDATE CURRENT_TIMESTAMP

Penggunaan atribut DEFAULT


CURRENT_TIMESTAMP dan ON UPDATE
CURRENT_TIMESTAMP memang sedikit
membingungkan. Karena jika tidak ditulis,
keduanya langsung aktif. Berikut aturan
penggunaannya:
a. Jika sebuah kolom TIMESTAMP tidak ditulis
kedua atribut ini, maka DEFAULT
CURRENT_TIMESTAMP dan ON UPDATE
CURRENT_TIMESTAMP akan aktif.
b. Jika sebuah kolom TIMESTAMP ditulis atribut
DEFAULT CURRENT_TIMESTAMP saja,
atribut ON
b. UPDATE CURRENT_TIMESTAMP tidak
aktif, termasuk jika menggunakan nilai default
lain seperti DEFAULT 0.
c. Jika sebuah kolom TIMESTAMP ditulis atribut
ON UPDATE CURRENT_TIMESTAMP saja,
nilai default yang digunakan adalah 0.
Prilaku dimana atribut DEFAULT
CURRENT_TIMESTAMP dan ON UPDATE
CURRENT_TIMESTAMP akan aktif apabila
tidak ditulis, hanya berlaku untuk kolom
TIMESTAMP pertama dari sebuah tabel. Untuk
kolom TIMESTAMP kedua, atribut ini harus
ditulis agar bisa aktif.

8 AUTO_INCREMENT Atribut AUTO_INCREMENT merupakan salah


satu atribut yang paling banyak dipakai. Atribut ini
berfungsi untuk men-generate (menghasilkan)
angka naik secara otomatis, mulai dari 1, 2, 3, dst.

kolom dengan atribut AUTO_INCREMENT harus


di definisikan sebagai ‘key’ atau index, misalnya
sebagai PRIMARY KEY atau UNIQUE.

9 PRIMARY KEY PRIMARY KEY adalah atribut untuk membuat


suatu kolom menjadi primary key. Dalam teori
database, primary key adalah kolom utama yang
berfungsi sebagai identitas setiap baris. Dalam satu
tabel, hanya bisa terdapat 1 primary key (tidak
boleh lebih).

Karena fungsinya sebagai ‘identitas’, data di dalam


kolom primary key tidak boleh kosong (NOT
NULL), dan tidak boleh berulang (setiap data harus
unik).

10 UNIQUE Atribut UNIQUE digunakan untuk membatasi


kolom agar tidak boleh memiliki data yang sama
(data kolom harus unik).

Anda mungkin juga menyukai