Top Banner
1 BAB 1 MYSQL 1.1 Pendahuluan MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB, yang kala itu bernama TcX DataKonsult AB, sejak sekitar 1994–1995, meski cikal bakal kodenya bisa disebut sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL pada waktu itu juga memang untuk mengembangkan aplikasi Web untuk klien TcX adalah perusahaan pengembang software dan konsultan database. Kala itu Michael Widenius, atau “Monty”, pengembang satu-satunya di TcX, memiliki aplikasi UNIREG dan rutin ISAM yang dibuat sendiri dan sedang mencari antarmuka SQL untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL, atau “mini SQL”. Barangkali mSQL adalah satu-satunya kode database open source yang tersedia dan cukup sederhana saat itu, meskipun sudah ada Postgres. Namun ternyata, menurut Monty, mSQL tidaklah cukup cepat maupun fleksibel. Versi pertama mSQL bahkan tidak memiliki indeks. Setelah mencoba menghubungi David Hughes pembuat mSQL dan ternyata mengetahui bahwa
29

Database dan MySQL

May 24, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Database dan MySQL

1

BAB 1

MYSQL

1.1 Pendahuluan

MySQL dikembangkan oleh sebuah perusahaan Swedia bernama MySQL AB, yang

kala itu bernama TcX DataKonsult AB, sejak sekitar 1994–1995, meski cikal bakal

kodenya bisa disebut sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL

pada waktu itu juga memang untuk mengembangkan aplikasi Web untuk klien TcX

adalah perusahaan pengembang software dan konsultan database. Kala itu Michael

Widenius, atau “Monty”, pengembang satu-satunya di TcX, memiliki aplikasi

UNIREG dan rutin ISAM yang dibuat sendiri dan sedang mencari antarmuka SQL

untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL, atau “mini SQL”.

Barangkali mSQL adalah satu-satunya kode database open source yang

tersedia dan cukup sederhana saat itu, meskipun sudah ada Postgres. Namun ternyata,

menurut Monty, mSQL tidaklah cukup cepat maupun fleksibel. Versi pertama mSQL

bahkan tidak memiliki indeks. Setelah mencoba menghubungi David Hughes pembuat

mSQL dan ternyata mengetahui bahwa David tengah sibuk mengembangkan versi

dua, maka keputusan yang diambil Monty yaitu membuat sendiri mesin SQL yang

antarmukanya mirip dengan mSQL tapi memiliki kemampuan yang lebih sesuai

kebutuhan. Lahirlah MySQL.

Nama MySQL (baca: mai es ki el) tidak jelas diambil dari mana. Ada yang

bilang ini diambil dari huruf pertama dan terakhir nama panggilan Michael Widenius,

Monty. Ada lagi yang bilang kata My diambil dari nama putri Monty, yang memang

diberi nama My—karena Monty memang aslinya seorang Finlandia. Tapi sebetulnya

kalau source code MySQL dilirik, prefiks my memang sudah terbubuhi di mana-mana

Page 2: Database dan MySQL

2

prefiks ini sering menjadi prefiks umum kalau seseorang membuat kode kustom

tersendiri untuk sesuatu. Kalau Anda betul-betul penasaran mana yang benar,

mungkin bisa bertanya langsung kepada Monty.

MySQL versi 1.0 dirilis Mei 1996 secara terbatas kepada empat orang. Baru di

bulan Oktober versi 3.11.0 dilepas ke publik. Namun mula-mula kode ini tidak

diberikan di bawah lisensi General Public License, melainkan lisensi khusus yang

intinya kurang lebih begini: “Source code MySQL dapat dilihat dan gratis, serta

server MySQL dapat dipakai tanpa biaya tapi hanya untuk kebutuhan nonkomersial.

Untuk kebutuhan komersial (misal : mengemas dan menjual MySQL, atau

menyertakan MySQL dalam program komersial lain) Anda harus bayar lisensi.”

Sementara distribusi Windows MySQL sendiri dirilis secara shareware.

Barulah pada Juni 2000 MySQL AB mengumumkan bahwa sejak versi 3.23.19,

MySQL adalah software bebas berlisensi GPL. Artinya, “Source code MySQL dapat

dilihat dan gratis, serta server MySQL dapat dipakai tanpa biaya untuk kebutuhan apa

pun. Tapi jika Anda memodifikasi source code, Anda juga harus melepasnya di bawah

lisensi yang sama, yaitu GPL.” Kini perusahaan MySQL AB, yang beranggotakan

sekitar 10 programmer dan 10 karyawan lain itu, memperoleh pemasukan terutama

dari jasa konsultasi seputar MySQL.

Versi publik pertama, yang hanya berjalan di Linux dan Solaris serta sebagian

besar masih belum terdokumentasi itu, dengan berangsur-angsur diperbaiki dan

ditambah fitur demi fiturnya tapi tetap dengan fokus utama pengembangan pada

kelangsingan dan kecepatan. Artinya, fitur yang menyebabkan MySQL menjadi

lambat tidaklah ditambahkan, atau ditunda dulu, atau ditambahkan tapi menjadi fitur

yang opsional.

Versi awal MySQL ini, meski sudah bisa dipakai untuk aplikasi Web

sederhana, belumlah memadai sama sekali untuk aplikasi bisnis. Contohnya, JOIN

sederhana sudah ada, tapi tidak ada HAVING baru di bulan Desember ditambahkan.

Sudah ada tipe data TIMESTAMP dan kolom autoupdate, tapi tidak ada system-

generated number (sequence) baru di akhir 1996 juga ditambahkan modifier kolom

Page 3: Database dan MySQL

3

AUTO_INCREMENT. Sudah ada LIMIT tapi GROUP BY dan ORDER BY memiliki

keterbatasan. Dan seterusnya.

Barulah di versi-versi akhir 3.22—sepanjang 1998–1999—MySQL menjadi

semakin popular dan dilirik orang. Stabilitasnya sudah baik. Kecepatannya meningkat.

Sudah tersedia di berbagai platform, termasuk Windows. Seri 3.22 ini banyak dipakai

di berbagai instalasi, mungkin hingga sekarang, sehingga MySQL AB tetap

memberikan dukungan technical support untuk seri ini.

1.2 Relational Database Management System (RDBMS)

MySQL adalah Relational Database Management System (RDBMS) yang

didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana

setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk

turunan yang bersifat komersial.

MySQL sebenarnya merupakan turunan salah satu konsep utama dalam

database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah

konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan

pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah

secara otomatis.

Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja

optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user

maupun program-program aplikasinya.

Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan

database server lainnya dalam query data. Hal ini terbukti untuk query yang

dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari

PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.

Page 4: Database dan MySQL

4

1.3 Fitur MySQL

Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi

penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi

teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan

MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Seri 3.23. Di seri

3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai

sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali

menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona

baru yang potensial. Seri 4.x.

Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL

berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak

dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key

constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored

procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap

berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan

MySQL sebagai database open source terpopuler.

1.4 Keistimewaan MySQL

Sebagai database server yang memiliki konsep database modern, MySQL memiliki

banyak sekali keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh

MySQL, antara lain :

a. Portabilitas, MySQL dapat berjalan stabil pada berbagai sistem operasi seperti

Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih

banyak lagi.

b. Perangkat lunak sumber terbuka, MySQL didistribusikan sebagai perangkat

lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara

gratis.

Page 5: Database dan MySQL

5

c. Multi-user, MySQL dapat digunakan oleh beberapa pengguna dalam waktu

yang bersamaan tanpa mengalami masalah atau konflik.

d. Performance tuning, MySQL memiliki kecepatan yang menakjubkan dalam

menangani query sederhana, dengan kata lain dapat memproses lebih banyak

SQL per satuan waktu.

e. Ragam tipe data, MySQL memiliki ragam tipe data yang sangat kaya, seperti

signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-

lain.

f. Perintah dan Fungsi, MySQL memiliki operator dan fungsi secara penuh yang

mendukung perintah Select dan Where dalam perintah (query).

g. Keamanan, MySQL memiliki beberapa lapisan keamanan seperti level

subnetmask, nama host, dan izin akses user dengan sistem perizinan yang

mendetail serta sandi terenkripsi.

h. Skalabilitas dan Pembatasan, MySQL mampu menangani basis data dalam

skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu

tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung

mencapai 32 indeks pada tiap tabelnya.

i. Konektivitas, MySQL dapat melakukan koneksi dengan klien menggunakan

protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).

j. Lokalisasi, MySQL dapat mendeteksi pesan kesalahan pada klien dengan

menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa

Indonesia belum termasuk di dalamnya.

k. Antar Muka, MySQL memiliki antar muka (interface) terhadap berbagai

aplikasi dan bahasa pemrograman dengan menggunakan fungsi API

(Application Programming Interface).

Page 6: Database dan MySQL

6

l. Klien dan Peralatan, MySQL dilengkapi dengan berbagai peralatan (tool) yang

dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang

ada disertakan petunjuk online.

m. Struktur tabel, MySQL memiliki struktur tabel yang lebih fleksibel dalam

menangani ALTER TABLE, dibandingkan basis data lainnya semacam

PostgreSQL ataupun Oracle.

Dengan keistimewaan di atas ada beberapa alasan yang menjadikan MySQL

sehingga sangat populer, diantaranya :

a. Bersifat free dan open source (FOSS).

b. Banyak digunakan di web hosting dengan paket yang sangat ekonomis.

c. Mendukung berbagai storage engine yang bisa kita ganti pada level table.

d. Memiliki komunitas pengguna yang luas dan saling membantu.

e. Besar dan luasnya komunitas pengembang / developer MySQL.

f. Waktu yang singkat dalam siklus pengembangan dan perbaikan kesalahan.

g. Arsitektur yang sangat baik dengan pilihan berbagai storage engine.

h. Kaya akan fitur dan utilitas baik dari komunitas maupun korporasi.

i. Memiliki support berbayar untuk pelanggan korporasi (corporate customers)

sehingga terjamin.

1.5 Ketentuan Memberi Perintah dalam MySQL

Seperti halnya dalam membuat setiap program kita harus terlebih dahulu mengetahui

ketentuan - ketentuan yang harus dibuat dalam memberi perintah kepada program

tersebut. Begitu halnya juga seperti MySQL, berikut ini merupakan beberapa

ketentuan dalam memberi perintah di MySQL :

a. Setiap perintah harus diakhiri dengan tanda titik koma (;) atau dengan

memberikan perintah \g atau \G. Namun, pada umumnya user menggunakan

tanda titik koma untuk mengakhiri perintah pada MySQL.

Page 7: Database dan MySQL

7

b. Setiap perintah akan disimpan dalam buffer (memori sementara) untuk

menyimpan histori perintah-perintah yang pernah diberikan.

c. Perintah-perintah yang bukan SQL dapat dipendekkan dengan menggunakan \

dan huruf depan perintah.

d. Perintah help atau \h digunakan untuk menampilkan daftar dan aturan

memberikan perintah di lingkungan MySQL.

e. Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case

sensitive, tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf

besar atau pun huruf kecil.

f. Aturan case sensitive diterapkan pada penamaan objek-objek dalam database

seperti nama database atau nama table, namun aturan ini hanya ada dalam

lingkungan Unix dan Linux.

g. Untuk melihat perintah-perintah yang sudah pernah kita ketikkan, tekan

tombol tanda panah atas.

1.6 Bahasa Pemrograman

Terdapat beberapa API (Application Programming Interface) tersedia yang

memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa

pemrograman untuk dapat mengakses basis data MySQL.

Beberapa aplikasi komputer tersebut antara lain: bahasa pemrograman C, C++,

C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa

pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman

Python, Ruby, REALbasic dan Tcl.

Page 8: Database dan MySQL

8

Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap

bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis

data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.

1.7 Normalisasi dan Pemodelan

Normalisasi, skema, entiti-atribut, primary key (PK) dan foreign key (FK), tabel entiti,

tabel relasi, OLTP & OLA semuanya adalah istilah-istilah yang umum dijumpai

dalam pemodelan fisik database. Sayangnya, banyak programer pemula tidak

memiliki kemampuan modeling. Sehingga jika disuruh mendesain skema database

(sekumpulan tabel-tabel beserta nama field dan tipenya) hasilnya tidak optimal bahkan

berantakan. Skema yang buruk berakibat terjadinya duplikasi data, tidak scalable,

performance yang buruk, tidak memenuhi requirements, dsb.

Modeling tentunya tidak bisa diajarkan dalam 1–2 hari. Anda perlu membaca

buku-buku mengenai pemodelan database dan belajar dari pengalaman maupun dari

model-model yang sudah ada. Tapi beberapa nasihat yang mungkin bisa saya berikan

di sini adalah sebagai berikut :

Satu, langkah pertama dalam pemodelan adalah menemukan entiti-entiti. Entiti

bisa dibilang “objek” yang akan kita geluti. Misalnya, customer, produk, dan

transaksi. Setiap entiti umumnya ditaruh dalam satu tabel, tabel ini disebut tabel entiti.

Langkah kedua adalah mencari atribut-atribut entiti tersebut. Misalnya tabel

customers memiliki atribut sapaan, nama, alamat (jalan + kota + kodepos + propinsi +

negara), tanggal record ini ditambahkan, dsb.

Langkah ketiga adalah mencari relasi di antara entiti-entiti. Umumnya relasi

adalah satu dari: 1-1, 1-many, many-many. Misalnya, relasi antara transaksi dan

produk adalah many-many, artinya sebuah transaksi pembelian dapat berisi banyak

produk dan sebuah produk tentu saja dapat dibeli dalam lebih dari satu transaksi.

Setiap relasi juga akan ditempatkan pada tabel, yaitu tabel relasi.

Page 9: Database dan MySQL

9

Dua, dalam pemodelan tidak ada istilah model yang benar atau salah. Yang

ada adalah model yang tepat dan tidak tepat untuk keperluan tertentu. Misalnya, untuk

aplikasi sederhana modelnya sederhana. Semakin kompleks aplikasi, model pun

semakin rumit (jumlah entiti, relasi, dan atribut akan bertambah). Pada umumnya,

seiring kompleksitas bertambah, yang tadinya atribut akan berubah menjadi entiti

dikarenakan adanya kenyataan hubungan 1-many/many-many antara atribut.

Contohnya, tabel customers memiliki atribut alamat. Jika kita ingin mendukung

banyak alamat untuk satu customers, maka alamat akan menjadi entiti dan menempati

tabel sendiri. Lalu kita membuat tabel relasi customers-alamat.

Page 10: Database dan MySQL

10

BAB 2

SINTAKS DALAM MYSQL

Berikut ini akan diberikan pengenalan tentang sintaks SQL dalam MySQL yang

sederhana dan paling sering digunakan baik untuk penggunaan biasa ataupun untuk

administratif. Berikut adalah beberapa sintaks dasar SQL dalam MySQL.

2.1 Level Database

2.1.1 Membuat database

Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau

anda tidak memiliki privilege. Sintaksnya :

create database nama_db;

2.1.2 Menghapus database

Untuk menghapus database beserta seluruh table di dalamnya. Perintah ini tidak

berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya :

drop database nama_db;

2.1.3 Menggunakan database

Untuk menjadikan database menjadi default dan referensi dari table yang nantinya

anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak

memiliki privilege. Sintaksnya :

Page 11: Database dan MySQL

11

use nama_db;

2.1.4 Menampilkan database

Untuk menampilkan daftar yang ada dalam system saat itu. Sintaksnya :

show databases;

2.2 Level Tabel

2.2.1 Membuat tabel

Untuk membuat table minimal anda harus menentukan namanya dan tipe kolom yang

anda inginkan. Sintaks yang paling sederhana (tanpa ada definisi lain) adalah :

CREATE TABLE nama_tbl

(kolom1 tipekolom1(),kolom2 tipekolom2(), …)

Contoh, Anda ingin membuat table dengan nama profil yang memiliki kolom

nama (bertipe char, lebar 20), kolom umur (bertipe integer), kolom jenis_kelamin

(bertipe enum, berisi M dan F). Sintaksnya :

CREATE TABLE profil (

nama CHAR(20), umur INT NOT NULL,

jenis_kelamin ENUM(‘F’,’M’) )

Sedangkan perintah yang agak lengkap dalam membuat sebuah table adalah

dengan menyertakan definisi tertentu. Misalnya perintah seperti ini :

CREATE TABLE peserta (

Nama CHAR(30) NOT NULL,

BidangStudi ENUM(‘TS’,’WD’) NOT NULL,

PRIMARY KEY (No),

INDEX (Nama, BidangStudi) )

Page 12: Database dan MySQL

12

Perintah di atas berarti membuat table peserta dengan kolom No sebagai

PRIMARY KEY yaitu indeks table yang unik yang tidak bisa diduplikat dengan

atribut AUTO_INCREMENT yaitu kolom yang otomatis dapat mengurutkan angka

yang diisikan padanya. Sedangkan kolom Nama dan BidangStudi dijadikan indeks

biasa.

2.2.2 Membuat indeks pada tabel

Menambahkan indeks pada table yang sudah ada baik yang unik ataupun yang biasa.

Sintaksnya :

CREATE INDEX nama_index ON nama_tbl (nama_kolom)

CREATE UNIQUE INDEX nama_index ON nama_tbl (nama_kolom)

2.2.3 Menghapus tabel

Untuk menghapus table dalam database tertentu. Jika dilakukan maka semua isi,

indeks dan atribut lain akan terhapus. Sintaksnya :

DROP TABLE nama_tbl

2.2.4 Menghapus indeks

Untuk menghapus indeks pada suatu table. Sintaksnya :

DROP INDEX nama-index ON nama_tbl

2.2.5 Melihat informasi tabel

Untuk melihat table apa saja yang ada di database tertentu. Sintaksnya :

SHOW TABLES FROM nama_db

Page 13: Database dan MySQL

13

Sedangkan untuk melihat deskripsi table atau informasi tentang kolom

gunakan sintaks :

DESC nama_tbl nama_kolom

atau

SHOW COLUMNS FROM nama_tbl FROM nama_db

2.2.6 Mendapatkan atau menampilkan informasi dari tabel

Untuk menampilkan isi table dengan option-option tertentu. Misalnya untuk

menampilkan seluruh isi table digunakan :

SELECT * FROM nama_tbl

Untuk menampilkan kolom-kolom tertentu saja :

SELECT kolom1,kolom2,... FROM nama_tbl

Untuk menampilkan isi suatu kolom dengan kondisi tertentu

SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom

2.2.7 Modifikasi struktur tabel

Dapat digunakan untuk mengganti nama table atau mengubah strukturnya seperti

manambah kolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom

dsb. Sintaks umum :

ALTER TABLE nama_tbl action

Untuk menambah kolom baru di tempat tertentu dapat menggunakan :

ALTER TABLE nama_tbl

ADD kolom_baru type() definisi

Page 14: Database dan MySQL

14

Untuk menambah kolom_baru bertipe integer setelah kolom1 digunakan :

ALTER TABLE nama_tbl

ADD kolom_baru INT NOT NULL AFTER kolom1

Untuk menambah indeks baru pada table tertentu baik yang unik ataupun yang biasa:

ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom)

ALTER TABLE nama_tbl ADD UNIQUE nama_indeks (nama_kolom)

ALTER TABLE nama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom)

Untuk mengubah nama kolom dan definisinya, misalnya mengubah nama

kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan lebar 30

digunakan:

ALTER TABLE nama_tbl

CHANGE kolom_baru new_kolom CHAR(30) NOT NULL

Untuk menghapus suatu kolom dan seluruh atributnya, misal menghapus

kolom1 :

ALTER TABLE nama_tbl DROP kolom1

Untuk menghapus indeks baik yang unik ataupun yang biasa digunakan :

ALTER TABLE nama_tbl DROP nama_index

ALTER TABLE nama_tbl DROP PRIMARY KEY

2.2.8 Modifikasi informasi dalam tabel

Untuk menambah record atau baris baru dalam table, sintaksnya :

INSERT INTO nama_tbl (nama_kolom) VALUES (isi_kolom)

atau

INSERT INTO nama_tbl SET nama_kolom=isi_kolom

Page 15: Database dan MySQL

15

Misalnya untuk menambah dua baris pada table profil dengan isi nama =

deden & ujang dan isi umur = 17 & 18 adalah :

INSERT INTO profil (nama,umur) VALUES (deden,17), (ujang,18)

atau

INSERT INTO profil SET nama=deden, umur=17

INSERT INTO profil SET nama=ujang, umur=18

Untuk memodifikasi record atau baris yang sudah ada yang bersesuaian

dengan suatu kolom. Misalnya untuk mengubah umur deden menjadi 18 pada contoh

di atas dapat digunakan sintaks :

UPDATE profil SET umur=18 WHERE nama=deden

Untuk menghapus record atau baris tertentu dalam suatu table. Misalnya untuk

menghapus baris yang ada nama ujang digunakan sintaks :

DELETE FROM profil WHERE nama=ujang

Jika WHERE tidak disertakan maka semua isi dalam table profil akan terhapus.

2.3 Tipe-tipe Dalam MySQL

MySQL dapat mengetahui beberapa tipe data antara lain :

2.3.1 Data numerik

MySQL dapat menerima masukan berupa angka-angka yang dibagi atas integer

(angka tanpa pecahan) dan floating-point (angka dengan pecahan). MySQL juga

mengerti notasi scientific yaitu integer atau floating-point yang diikuti tanda ‘e’ atau

‘E’, tanda ‘+’ atau ‘-‘. Misalnya angka 1.34E+12 atau 3.23e-5.

Page 16: Database dan MySQL

16

2.3.2 Data karakter/string

Merupakan deretan huruf yang membentuk kata yang diapit oleh tanda petik (‘ ’) atau

tanda petik ganda (“ ”).

2.3.3 Data waktu

Merupakan data yang berisi tanggal (date) dan jam (time) misalnya “2001-10-15”

untuk tanggal dengan format YYYY-MM-DD dan “12:45:15” untuk jam dengan

format hh:mm:ss.

2.4 Tipe-tipe Kolom MySQL

Setiap table yang dibuat dalam database selalu terdiri atas kolom-kolom. Katika anda

membuatnya dengan perintah CREATE TABLE, anda harus menentukan tipe masing-

masing kolom. Tiap tipe kolom memiliki karakteristik berikut :

a. Jenis harga apa yang dapat diisikan

b. Berapa banyak ruang yang dapat menampung harga tersebut

c. Bagaimana harga dari tipe tersebut dibandingkan dan disaring

d. Apakah tipe tersebut boleh mengisi dengan NULL atau tidak

e. Apakah tipe tersebut boleh diindeks atau tidak

Secara garis besar kolom MySQL terbagi menjadi tiga tipe yaitu :

a. Tipe kolom Numerik

b. Tipe kolom Karakter/String

c. Tipe kolom Waktu

Page 17: Database dan MySQL

17

2.4.1 Tipe numerik

Tipe ini untuk harga integer dan floating-point. Untuk integer kolom haruslah

PRIMARY KEY atau indeks yang unik jika ia diberi atribut AUTO_INCREMENT

(dapat otomatis mengurutkan angka). Jika diberikan atribut UNSIGNED berarti angka

tidak boleh negatif. Sedangkan atribut ZEROFILL menandakan bahwa angka diawali

dengan angka nol.

a. TINYINT, berarti integer dengan range yang sangat kecil yaitu –27 sampai

27-1 atau 0 sampai 28-1 jika UNSIGNED. Atribut yang dibolehkan adalah

AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah

NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 1 byte.

b. SMALLINT, berarti integer dengan range yang kecil yaitu –215 sampai 215-1

atau 0 sampai 216-1 jika UNSIGNED. Atribut yang dibolehkan adalah

AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah

NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 2 byte.

c. MEDIUMINT, berarti integer dengan range yang sangat kecil yaitu –223

sampai 223-1 atau 0 sampai 224-1 jika UNSIGNED. Atribut yang dibolehkan

adalah AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default

adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 3 byte.

d. INT, berarti integer dengan range yang normal yaitu –231 sampai 231-1 atau 0

sampai 232-1 jika UNSIGNED. Atribut yang dibolehkan adalah

AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah

NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 4 byte.

e. BIGINT, berarti integer dengan range yang sangat kecil yaitu –263 sampai

263-1 atau 0 sampai 264-1 jika UNSIGNED. Atribut yang dibolehkan adalah

AUTO_INCREMENT,UNSIGNED, dan ZEROFILL. Harga default adalah

NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 8 byte.

Page 18: Database dan MySQL

18

f. FLOAT, berarti floating-point dengan range kecil yaitu antara

+1.175494351E-38 sampai +3.402823466E+38 serta dengan single presisi.

Atribut yang dibolehkan adalah ZEROFILL. Harga default NULL jika bisa

atau 0 jika NOT NULL. Tempat penyimpanan 4 byte.

g. DOUBLE, berarti floating-point dengan range besar yaitu antara

+2.22507385072014E-308 sampai +1.7976931348623157E308 serta dengan

double presisi. Atribut yang dibolehkan adalah ZEROFILL. Harga default

NULL jika bisa atau 0 jika NOT NULL. Tempat penyimpanan 8 byte.

h. DECIMAL(M,D) atau NUMERIC(M,D), berarti floating-point yang tersimpan

sebagai string (1 byte untuk setiap digit, tanda desimal, atau tanda ’-‘). Range

harga sama seperti DOUBLE. Atribut yang dibolehkan adalah ZEROFILL.

Tempat penyimpanan sebesar M byte. Jika D diisi 0 berarti tidak punya nilai

desimal.

2.4.2 Tipe string

Tipe data berikut ini merupakan tipe data yang digunakan sebagai tempat

penyimpanan karakter, antara lain :

a. CHAR(M), karakter dengan panjang 0 sampai M byte. Atribut yang

dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “

jika NOT NULL. Tempat pemyimpanan M byte.

b. VARCHAR, variabel karakter dengan panjang 0 sampai M byte. Atribut yang

dibolehkan adalah BINARY. Harga default adalah NULL jika bisa atau “ “

jika NOT NULL. Tempat pemyimpanan M+1 byte.

c. TINYTEXT, teks berukuran kecil dengan panjang 0 sampai 28-1 byte. Harga

default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan

sebanyak panjang harga plus 1 byte.

Page 19: Database dan MySQL

19

d. TEXT, teks yang normal dengan panjang 0 sampai 216-1 byte. Harga default

adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat penyimpanan

sebanyak panjang harga plus 2 byte.

e. MEDIUMTEXT Teks berukuran sedang dengan panjang 0 sampai 224-1 byte.

Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat

penyimpanan sebanyak panjang harga plus 3 byte.

f. LONGTEXT, teks berukuran besar dengan panjang 0 sampai 232-1 byte.

Harga default adalah NULL jika bisa atau “ “ jika NOT NULL. Tempat

penyimpanan sebanyak panjang harga plus 4 byte.

g. ENUM(“harga1”,”harga2”,…), berarti kolom hanya boleh diisi dengan salah

satu dari harga yang ada. Harga default adalah NULL jika bisa atau harga1 jika

NOT NULL. Tempat penyimpanan adalah 1 byte untuk enumerasi dengan

anggota 1 sampai 255 dan 2 byte untuk enumerasi dengan anggota 256 sampai

65535.

h. SET(“harga1”,”harga2”,…), berarti kolom boleh dikosongi atau diisi dengan

beberapa harga dari daftar harga yang ada. Harga default adalah NULL jika

bisa atau ” “ jika NOT NULL. Tempat penyimpanan adalah 1 byte untuk set

dengan anggota 1 sampai 8, 2 byte untuk set dengan anggota 9 sampai 16, 3

byte untuk set dengan anggota 17 sampai 24, 4 byte untuk set dengan anggota

25 sampai 32, atau 8 byte untuk set dengan anggota 33 sampai 64.

2.4.3 Tipe Waktu

Tipe data berikut ini merupakan tipe data yang digunakan sebagai tempat

penyimpanan data waktu, antara lain :

Page 20: Database dan MySQL

20

a. DATE, untuk kolom tanggal dengan format YYYY-MM-DD dan range antara

“1000-01-01” sampai “9999-12-31”. Harga default adalah NULL jika bisa atau

“0000-00-00” jika NOT NULL. Tempat penyimpanan 3 byte.

b. TIME, untuk kolom jam dengan format hh:mm:ss atau -hh:mm:ss untuk harga

negatif. Range harga antara “-838:59:59” sampai “838:59:59”. Harga default

adalah NULL jika bisa atau “00:00:00” jika NOT NULL. Tempat

penyimpanan 3 byte.

c. DATETIME, gabungan antar hari dan jam dengan format YYYY-MM-DD

hh:mm:ss dan range antar “1000-01-01 00:00:00” sampai “9999-12-31

23:59:59”. Harga default adalah NULL jika bisa atau “0000-00-00 00:00:00”

jika NOT NULL. Tempat penyimpanan 8 byte.

d. TIMESTAMP, hampir sama dengan DATETIME tapi dengan format

YYYYMMDDhhmmss dan range antara 19700101000000 sampai suatu saat

di tahun 2037. Harga default adalah hari dan jam saat itu. Tempat

penyimpanan 4 byte.

e. YEAR, untuk kolom tahun dengan format YYYY dan range antara 1900

sampai 2155. Harga default adalah NULL jika bisa atau 0000 jika NOT

NULL. Tempat penyimpanan 3 byte.