2.1. Pendahuluan
MySQL merupakan Database Management System SQL open source yang paling populer, yang dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah sebuah perusahaan komersial, yang didirikan oleh para pengembang MySQL. MySQL AB adalah perusahaan open source generasi kedua yang menyatukan nilainilai dan metodologi open source dengan suatu model bisnis yang sukses.
Berikut ini fiturfitur utama MySQL:
- MySQL adalah relational database management system
- Software MySQL adalah open source
- Database server MySQL sangat cepat, reliable, dan mudah digunakan
- Database server cMySQL bekerja dalam client/server atau embedded system
2.2.
Penyesuaian Dengan Standar Standar SQL
MySQL mendukung entrylevel SQL92.
Entrylevel berisi serangkaian keistimewaan
keistimewaan yang mendefinisikan dasardasar pemenuhan SQL92.
Oracle menyesuaikan dengan SQL89, yang mana adalah suatu subset dari tipe SQL92 dengan tambahan
tipetipe spesifik.
Beberapa tipe SQL92 dipetakan kedalam tipetipe oracle. PostgreSQL menggunakan suatu subset dari bahasa SQL9299 yang diperluas dan bahasa SQL 3. Sintak tipetipe data SQL92 dipetakan langsung kedalam tipe asli postgreSQL.
2.3. Program Program Klien MySQL
Programprogram klien
MySQL dapat dipanggil atau dijalankan dari
commandline, seperti dari sebuah console prompt Windows, atau dari sebuah UNIX prompt shell. Ketika Anda
menjalankan suatu program klien, Anda
dapat menentukan opsiopsi untuk mengontrol tindak tanduk dari program klien. Beberapa opsi menjelaskan kepada program klien tentang bagaimana menghubungi server MySQL. Beberapa opsi lainnya menjelaskan
kepada program klien aksi yang manakah yang harus dilakukan.
Program klien
mysql memungkinkan Anda mengirimkan permintaanpermintaan (query)
ke server MySQL,
dan menerima hasilnya.
Untuk menentukan opsiopsi yang didukung
oleh program mysql, jalankan perintah dengan opsi –help. Sebagai contoh, untuk mencari
tahu bagaimana menggunakan mysql , ketiklah perintah berikut ini:
shell> mysql help
Untuk mengetahui versi dari program mysql, gunakan opsi –version:
shell> mysql version
Untuk menghubungi
server menggunakan program klien, klien harus
mengetahui
pada komputer yang manakah server MySQL aktif atau berjalan. Sebuah koneksi atau hubungan bisa dilakukan secara lokal pada suatu server MySQL yang berjalan pada komputer yang sama dengan komputer yang sedang menjalankan
program klien mysql, atau
dapat dilakukan secara jarak jauh (remote) ke suatu server MySQL yang berjalan pada komputer yang berbeda dengan komputer yang sedang menjalankan program klien mysql,Anda tentunya harus memiliki user account (username dan password) yang terdaftar pada server MySQL tersebut untuk dapat melakukan koneksi ke server.
Dua buah opsi yang menunjukkan kepada klien dimanakah server MySQL berjalan, begitu
juga tipe koneksi yang dilakukan.
host=nama_komputer
atau
h nama_komputer
Opsi
ini menentukan pada komputer
yang manakah server MySQL aktif
atau berjalan. Nilai dari opsi ini dapat
berupa nama komputer atau nomor IP.
Nilai default adalah localhost.
port=nomor_port
atau
P nomor_port
Opsi ini
menunjukkan nomor port yang manakah yang dapat
dihubungi pada komputer server,
ini hanya diterapkan untuk koneksi TCP/IP.
Default nomor port MySQL adalah 3306.
Dua buah opsi yang menyediakan informasi
indentifikasi,
yaitu username dan password atau user account yang Anda akan gunakan untuk dapat mengakses server.
user=username
atau
u username
Opsi ini menentukan username untuk account MySQL Anda.
password=password
atau
ppassword
Opsi ini menentukan password untuk account
MySQL Anda. Berikut ini contohcontoh
bagaimana menggunakan opsiopsi program klien mysql untuk melakukan koneksi:
Koneksi
ke server menggunakan default nama
komputer dan default username
tanpa password:
shell> mysql
- Koneksi ke server pada komputer lokal dengan nama user 'naufal', dan meminta
mysql untuk menanyakan password Anda:
shell> mysql host=localhost password user=naufal
- Koneksi ke server dengan opsi yang sama dengan contoh sebelumnya, tetapi
menggunakan bentuk opsi singkat:
shell> mysql h localhost p u naufal
- Koneksi ke server dengan IP address yang spesifik, dengan nama user 'naufal' dan
password 'rahasia':
shell> mysql host=1
92. 1 68. 1 .33 password=rahasia user=naufal
- Koneksi ke server pada localhost dengan default username dan password dan dengan mengkompress paket data yang lewat atau melintas antara klien dan server
shell> mysql host=localhost compress
2.4.
Database Secara Umum Dan Manipulasi Tabel
Setiap server MySQL memiliki suatu direktori data yang mana didalam direktori ini tabel
tabel dan database berada dan dikelola. Server merepresentasikan hal berikut ini:
- MySQL menghubungkan masingmasing database dengan suatu direktori yang ada
didalam direktori data (ini berarti direktori data adalah direktori parent dari semua
direktoridirektori database). Sebuah direktori database memiliki nama yang sama
dengan nama
database itu sendiri. Sebagai contoh,
suatu database diberi nama
'sekolah'
maka direktori databasenya juga memiliki
nama 'sekolah' yang berada
dalam direktori
data. MySQL menggunakan direktori database
untuk mengatur
komponenkomponen database yakni tabeltabel dan indekindek. Sebuah database
bisa jadi kosong atau hanya berisi satu atau beberapa tabel. Database tidak beranak
atau tidak dapat memiliki subsub database, dengan kata lain suatu database tidak
agi mengandung atau berisi database lainnya didalamnya.
- Setiap tabel dalam suatu database terdiri dari barisbaris dan kolomkolom. Suatu
tabel bisa jadi kosong (tidak memiliki barisbaris data atau record), tetapi minimal
harus memiliki
sebuah kolom. Suatu tabel bisa
juga diindek agar meningkatkan
performa
query. Setiap tabel dihubungkan dengan
sebuah file
formaAUTO_INCREMENT,
diterapkan pada kolomkolom integer.
Digunakan
untuk menghasilkan integer dengan urutan nilai yang unik. Kolom demikian dalam
suatu tabel hanya ada satu.
- BINARY, diterapkan pada CHAR dan VARCHAR
- NULL dan NOT NULL, dapat diterapkan pada semua kolom
- DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang
diberikan.
- PRIMARY KEY dan UNIQUEt dalam direktori database yang berisi definisi
definisi
dan strukturstruktur tabel tersebut.
Nama dari file format sama dengan
nama tabel ditambah akhiran .frm. Sebagai contoh, file format untuk tabel
pelajar
dalam database
sekolah diberi nama pelajar.frm
dan diletakkan dalam direktori
sekolah yang berada dibawah direktori data server MySQL.
Bergantung pada tipe
tabel,
storage engine untuk suatu tabel biasanya akan membuat filefile tambahan
untuk
tabel tersebut.
Jika
tabel pelajar memiliki tipe MyISAM, maka
storage
engine
MyISAM akan membuat filefile data dan
indek yang diberi nama
pelajar.MYD dan pelajar.MYIyang masingmasing digunakan untuk menyimpan yang ma singmasing digunakan untuk menyimpan barisbaris data dan indekindek. Jika tabel pel ajar memiliki tipe InnoDB, MySQL
masih membuat suatu file format
pelajar.frm dalam
direktori database, tetapi storage engine
InnoDB menyimpan tabel data dan informasi indeks
kedalam InnoDB tablespace.
2.5 Storage Engine dan Tipetipe tabel
MySQL
mendukung beberapa storage engine yang
bertindak sebagai pengatur untuk
berbagai
tipe tabel yang berbeda. Storage engine
MySQL mencakup keduanya yang
mengatur tabeltabel yang transaksinya aman
(transactionsafe), dan yang mengatur
tabeltabel yang transaksinya tidak aman
(nontransactionsafe):
- Storage engine asli adalah ISAM, yang menangani tabeltabel nontransaksi (non
transactional). Storage engine ISAM telah digantikan dengan MyISAM dan sudah
lama tidak digunakan lagi. Pada MySQL 4.1 storage engine ini sudah kuno, bahkan
pada MySQL 5.0 dihilangkan.
- Storage engine MyISAM diperkenalkan pada MySQL 3.23.0. MyISAM merupakan
peningkatan untuk
menggantikan ISAM. MyISAM menangani tabeltabel
non
transaksi
(nontransactional). MyISAM memberikan kecepatan
dalam proses
penyimpanan
dan pengambilan, begitu juga
kemampuankemampuan pencarian
keseluruhan teks (fulltext). MyISAM didukung dalam seluruh konfigurasi MySQL,
dan
secara default MyISAM menjadi storage engine
yang digunakan dalam
MySQL, kecuali jika Anda mengkonfigurasi MySQL menggunakan storage engien
yang lainnya.
- Storage engine MEMORY menyediakan tabeltabel inmemory. Storage engine
MERGE ditambahkan kedalam MySQL 3.23.25. Storage engine ini memungkinkan
sekumpulan tabeltabel MyISAM yang
identik untuk dikelola sebagai suatu tabel
tunggal.
Seperti MyISAM, Storage engine MEMORY dan
MERGE menangani
tabeltabel
nontransasksi ( nontransactional), dan
keduanya juga disertakan
secara default dalam MySQL.
Catatan: Storage engine MEMORY pertama kali dikenal sebagai HEAP engine.
- Storage engine InnoDB dan BDB yang menangani tabeltabel transasctionsafe
diperkenalkan
dalam versi MySQL 3.23 selanjutnya.BDB
disertakan dalam
distribusi
binari MySQLMax pada sistem operasi –
sistem operasi yang
mendukungnya.
InnoDB juga disertakan dalam distribusi
binari MySQLMax
untuk MySQL 3.23.
Mulai dengan MySQL 4.0, InnoDB
telah disertakan secara
default dalam seluruh distribusi binari MySQL. Dalam distribusidistribusi source,
Anda dapat mengenable atau mendisable storage engine storage engine tersebut
dengan mengkonfigurasi MySQL sesuai dengan kebutuhan Anda.
- NDB cluster adalah storage engine yang digunakan oleh MySQL cluster untuk
implementasi tabeltabel yang terpisah di beberapa komputer.
Engine ini tersedia
dalam distribusi
source MySQL 4.1.2 dan distribusi binari
MySQLMax 4.1.3.
Storage
engine ini saat ini didukung hana
di Linux, Solaris, dan Mac OS X .
MySQL berniat untuk mendukung engine ini pada platform sistem operasi lainnya
seperti MS Windows, dan dalam rilis MySQL mendatang.
- Storage engine EXAMPLE adalah suatu sub engine yang tidak menangani apapun.
Anda dapat membuat tabeltabel dengan engine ini, tetapi tidak ada data yang dapat
disimpan
atau diambil dalam tabel tersebut. Engine
EXAMPLE ini disediakan
sebagai
contoh dalam kode sumber MySQL yang
menggambarkan bagaimana
memulai
membuat storage engine baru. Ini
umumnya untuk yang tertarik atau
untuk para pengembang.
- Storage engine ARCHIVE digunakan untuk penyimpanan sejumlah besar data
tanpa pengindekan dengan sebuah footprint yang sangat kecil.
Storage engine CSV menyimpan data dalam file teks dengan menggunakan tanda
koma sebagai format pemisah antar nilainilai dalam file teks tersebut.
- Storage engine BLACKHOLE menerima tetapi tidak menyimpan data, selalu
mengembalikan atau menampilkan sesuatu yang kosong.
- Storage engine FEDERATED menyimpan data dalam remote database. Dalam
MySQL
5.1, storage engine ini hanya bekerja
dengan MySQL, dengan
menggunakan MySQL C client API. Dalam rilis masa depan, dimaksudkan untuk
memungkinkannya
untuk terkoneksi dengan sumber data
lainnya dengan
menggunakan driverdriver atau metodemetode koneksi klien yang lainnya.
2.6 Opsi Opsi Kolom
Dalam MySQL, pada waktu pertama membuat tabel, atau dikemudian waktu, Anda dapat
menambah,
merubah opsiopsi kolom tabel. Opsiopsi
kolom membatasi data agar
dimasukkan sesuai dengan opsi yang telah ditetapkan.
●
UNSIGNED, membuat kolom tidak boleh memiliki nilai negatif
●
ZEROFILL, mengisi lebar data yang ditampilkan dengan nol
●
AUTO_INCREMENT, diterapkan pada kolomkolom
integer. Digunakan untuk
menghasilkan
integer dengan urutan nilai yang unik.
Kolom demikian dalam suatu
tabel hanya ada satu.
●
BINARY, diterapkan pada CHAR dan VARCHAR
●
NULL dan NOT NULL, dapat diterapkan pada semua kolom
●
DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang diberikan.
●
PRIMARY KEY dan UNIQUE
2.7 Membuat dan Menggunakan Database
Sebelum
Anda dapat membuat sebuah tabel Anda
harus terlebih dahulu membuat
Database. Perintah SQL dapat Anda ketikkan dengan huruf besar maupun kecil. Hanya saja
di
sini kita menggunakan huruf besar agar
Anda lebih mudah membedakan antara
perintah
SQL dengan objekobjek lainnya. Perlu
diingat, setelah selesai mengetikkan
perintah
SQL pada prompt MySQL, Anda wajib
mengetikkan tanda titik koma yang
menandakan akhir dari perintah SQL. Sintak penulisan perintah untuk membuat database
seperti berikut ini :
mysql> CREATE D
ATABASE database_name;
Hal yang harus diperhatikan dalam penamaan database adalah nama
idak boleh menggunakan
katakata yang menjadi kosakata SQL seperti select karena hal itu akan membuat rancu. Perlu juga diperhatikan huruf besar atau huruf kecil sebuah nama database karena pada sistem UNIX huruf besar
dan huruf kecil dibedakan.
Pada contoh dibawah ini akan dibuat
database dengan nama 'Perpustakaan' dan 'perpustakaan'.
Sesudah
Anda membuat suatu database, selanjutnya
jika Anda ingin 'perpustakaan'
menjadi database yang Anda akses saat ini maka Anda dapat mengakses database tersebut
dengan perintah sebagai berikut :
mysql>USE perpustakaan;
2.8. Manipulasi Table
2.8.1 Membuat table
Setelah
Anda memilih Database barulah Anda dapat
membuat sebuah tabel, Sintak
penulisan perintah membuat tabel sebagai berikut:
mysql> CREATE TABLE nama_tabel(
kolom1
tipe_data opsi_kolom,
kolom2 tipe_data opsi_kolom,
...........................,
kolomN tipe_data opsi_kolom,
PRIMARY KEY(nama_kolom),
INDEX (nama_kolom)
) type=tipe_tabel
2.8.2 Menghapus tabel
Untuk menghapus tabel gunakan perintah berikut ini:
mysql> DROP TABLE buku;
atau
mysql> DROP TABLE IF EXIS
T S buku;
2.8.3 Merubah tabel
ALTER TABLE memungkinkan Anda untuk merubah struktur tabel yang ada. Anda dapat
merubah tabel untuk keperluan:
- Menambah atau menghapus kolom
- Merubah nama atau definisi kolom
- Menambah atau menghapus index
- Menerapkan suatu susunan berbeda pada barisbaris
- Merubah nama tabel
ALTER TABLE bekerja dengan cara membuat
salinan tabel dari tabel yang asli
yang
bersifat
sementara (temporer). Proses perubahan
tabel dilakukan pada tabel
salinan, kemudian tabel asli dihapus,
dan yang baru dirubah namanya.
Ketika perintah ALTER TABLE sedang
dieksekusi, tabel asli masih dapat dibaca
oleh klienklien. Proses perubahan dan
penulisan terhadap tabel dihentikan sampai
tabel yang baru siap, dan kemudian
secara otomatis diarahkan ke tabel baru
tanpa kegagalan dalam proses perubahan.
Gunakan keyword MODIFY atau CHANGE,jika Anda akan melakukan perubahan
tipe data kolom. MODIFY dan CHANGE memiliki fungsi yang sama yaitu merubah tipe data
kolom, hanya saja dengan CHANGE memungkinkan nama kolom juga dapat dirubah.
2.8.4 Merubah nama tabel
RENAME merubah nama tabel, dan juga bekerja dalam perintah ALTER TABLE:
Merubah beberapa nama tabel sekaligus dapat dilakukan dengan satu perintah saja dimana
tabeltabel dipisahakan dengan tanda koma, seperti berikut
Merubah
tipe dan opsi kolom tabel dapat
dilakukan juga bersamaan dengan merubah
nama tabel dalam satu perintah seperti berikut ini:
0 komentar:
Posting Komentar