Mysql
Mysql
190
terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom. Didalam PHP telah menyediakan fungsi untuk koneksi ke basis data dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL sebagai sarana untuk mengumpulkan informasi.
8.1.1. Pengertian
Database MYSQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MYSQL. Sebenarnya software MYSQL mempunyai dua macam lisensi. Lisensi pertama bersifat open source dengan menggunakan GNU General Public Lisensi dan lisensi kedua berupa lisensi komersial standar (standard commercial license) yang dapat dibeli dari MYSQL AB. MYSQL dapat didefinisikan sebagai sistem manajemen database. Database sendiri merupakan struktur penyimpanan data. Untuk menambah, mengakses dan memproses data yang disimpan dalam sebuah database komputer, diperlukan sistem manajemen database seperti MYSQL Server. Selain itu MYSQL dapat dikatakan sebagai basis data terhubung (RDBMS).
191
Database terhubung menyimpan data pada tabel-tabel terpisah. Hal tersebut akan menambah kecepatan dan fleksibilitasnya. Server database MYSQL mempunyai kecepatan akses tinggi, mudah digunakan dan andal. MYSQL dikembangkan untuk menangani database yang besar secara cepat dan telah sukses digunakan selama bertahun-tahun sehiingga membuat server MYSQL cocok untuk mengakses database diinternet. Dan MYSQL juga merupakan sistem client-server yang terdiri atas multithread SQL Server yang mendukung software client dan library yang berbeda. Fitur utama MYSQL adalah ditulis dalam bahasa C dan C+ +, bekerja dalam berbagai platform, menyediakan mesin penyimpan transaksi dan nontransaksi, mempunyai library yang dapat ditempelkan pada aplikasi yang berdiri sendiri sehingga aplikasi tersebut dapat digunakan pada komputer yang tidak mempunyai jaringan dan mempunyai sistem password yang fleksibel dan aman, dapat menangani basis data dalam skala besar.
192
memiliki tipe sendiri-sendiri. MYSQL mengenal beberapa tipe data field yaitu : Tipe data numerik Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan floating point. Integer digunakan untuk data bilangan bulat sedangkan floating point digunakan untuk bilangan desimal. Tipe data numerik selengkapnya dapat dilihat pada tabel 8.1 berikut ini: Tabel 8.1 Tipe Data Numerik Tipe Data TINYINT SMALLINT MEDIUMINT INT, INTEGER FLOAT DOUBLE Kisaran Nilai (-128)-127 atau (0-255) (-32768)-32767 atau (0-65535) (-3888608)-8388607 atau 0-16777215 (-2147683648)-(21447683647) atau 04294967295 (-3.4 E+38)-(-1.17E-38), 0 dan 1.175E38-3.4e+38 (-1.79E+308)-(-2.225E-308), 2.225E-308 1.79E+308 0 dan
193
String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data string dapat dilihat pada tabel 8.2 berikut: Tabel 8.2 Tipe Data String Tipe Data CHAR VARCHAR TINYTEXT TEXT MEDIUMTEXT LONGTEXT Kisaran Nilai 1-255 karakter 1-255 karakter 1-255 karakter 1-65535 karakter 1-16777215 karakter 1-424967295 karakter
Tipe data char() dan varchar() Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya. Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya bergantung pada berapa jumlah karakter yang ditetapkan pada saat field tersebut dideklarasikan. Pada tipe data varchar() besarnya memori penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat pada tabel 8.3 berikut ini:
194
Tabel 8.3 Letak Perbedaan Jumlah Memori Nilai ab abcd abcdefgh Tipe data tanggal Untuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME, DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error) apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat pada tabel 8.4 berikut ini: Char(4) Memori ab abcd abcd Penyimpanan 4 bytes 4 bytes 4 bytes 4 bytes Varchar Memori (4) ab abcd abcd Penyimpanan 1 byte 3 bytes 5 bytes 5 bytes
Tabel 8.4 Tipe Data Tanggal Tipe Data DATETIME Kisaran Nilai Memori Penyimpanan 1000-01-01 00:00 sampai 3 byte
195
9999-12-31 23:59:59 1000-01-01 sampai 9999- 8 byte 12-31 1970-01-01 sampai 2037 -839:59:59 838:59:59 1901 sampai 2155 00:00:00 4 byte sampai 3 byte 1 byte
Tabel 8.5 Operator aritmatika MYSQL Operator + * / Mod () Contoh: Keterangan Tambah Kurang Kali Bagi Modulus
196
Operator Pembandingan Suatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai sintax sebagai berikut: WHERE expr operator value. Tabel 8.6 menunjukan operator pembanding pada MYSQL berikut ini: Tabel 8.6 Operator Pembanding MYSQL Operator = > < >= <= <> Contoh: Keterangan Sama Dengan Lebih Besar Lebih Kecil Lebih Besar atau Sama Dengan Lebih Kecil atau Sama Dengan Tidak Sama Dengan
Operator Logika Operator ini digunakan untuk membandingkan dua nilai variabel yang bertipe boolean. Tabel 8.7 berikut menunjukkan operator logika pada MYSQL: Tabel 8.7 Operator Logika MYSQL
197
Operator Karakter Operator untuk membentuk pencarian string yang sesuai dengan nilai yang mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3 symbol khusus berikut ini dapat dilihat pada tabel 8.8 berikut ini: Tabel 8.8 Tabel Operator Karakter Operator % _ [] Contoh: Keterangan Sembarang karakter berapapun
jumlahnya Sembarang satu karakter Sembarang karakter yang terletak dalam kurung siku
Operator Lain-lain
198
Operator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan (range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.9 berikut ini: Tabel 8.9 Operator lain-lain Operator IN BETWEEN Contoh: Keterangan Dalam Diantara
Fungsi Agregat Fungsi agregat (kadangkala disebut fungsi grup atau fungsi ringkasan) adalah fungsi yang disedikan oleh SQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data. Fungsi sendiri adalah seuatu kumpulan instruksi yang menghasilkan sebuah nilai jika dipanggil. Fungsi ini juga digunakan pada data numeric untuk menghitung nilai baik rata-rata dan jumlah dari sekumpulan data maupun pencarian jumlah baris dalam tabel. Untuk lebih jelasnyadapat dilihat dalam tabel 8.10 berikut ini:
199
Tabel 8.10 Fungsi Agregat Operator COUNT SUM AVG MAX MIN Contoh: Keterangan Menghitung jumlah baris suatu field Menjumlahkan data-data numerik pada suatu tabel Menghitung rata-rata suatu field Menghitung nilai maksimum suatu field Menghitung nilai minimum suatu field
200
sudah merupakan bahasa yang lazim digunakan dalam dunia database. Bahasa SQL dapat digolongkan bahasa generasi ke-4 yang tidak berupa bahasa yang berstruktur dan beraturan seperti C dan Pascal (golongan bahasa generasi ke-3). Oleh karena itu bahasa SQL mudah dipelajari. Pernyataan (statement) SQL dapat digolongan atas tiga golongan yaitu: Data Definition Language (DDL) yang mendefinisikan struktur suatu data. Perintah-perintah SQL yang termasuk DDL antara lain adalah: CREATE untuk membuat ALTER untuk mengubah DROP untuk menghapus
Data Manipulation Language (DML) yang dapat mencari (query) dan mengubah (modify) suatu tabel. Perintah-perintah SQL yang tergolong DML diantaranya: SELECT untuk membaca INSERT untuk memasukkan UPDATE untuk mengubah DELETE untuk menghapus
201
Data Control Language (DCL) yang mengatur hak-hak (privilege) untuk seorang pemakai database.Perintah-perintah SQL yang trgolong DCL diantaranya: GRANT REVOKE
Semua bahasa pemrograman mempunyai aturan gramatika. Beberapa aturan perlu diperhatikan pada saat menuliskan perintah-perintah bahasa SQL pada MYSQL adalah: 1. Semua pernyataan SQL ditutup dengan tanda koma (,). 2. Perintah SQL dapat ditulis dalam satu baris atau dipisah-pisah dalam beberapa baris agar mudah dibaca. 3. SQL tidak membedakan huruf besar atau kecil (not case sensitive), tergantung bagaimana isi tabel dimasukkan. 4. Isi dari tabel peka terhadap huruf besar atau kecil tergantung bagaimana isi tabel dimasukkan. 5. Pernyataan SQL harus ditulis menurut sintaks tertentu. 6. Pernyataan SQL dapat diberikan baris komentar untuk dokumentasi serta menjelaskan maksud pemrograman.
202
CREATE DATABASE <nama_database>; Jika ada komentar Query OK berarti database telah terbuat. Contoh: CREATE DATABASE unijoyo;
203
PERINTAH SELECT: SELECT adalah pernyataan yang berguna untuk memperoleh data dari sebuah atau beberapa table. Dengan dukungan berbagai klausa seperti WHERE dan GROUP BY, SELECT dapat digunakan untuk memperoleh data dalam bentuk yang sederhana hingga bentuk yang kompleks seperti untuk memperoleh ringkasan data. Contoh:
PERINTAH INSERT: Pernyataan INSERT digunakan untuk menambah data. Perintah INSERT dalam SQL adalah:
204
INSERT INTO nama table [(nama kolom 1, nama kolom 2, .., nama kolom n)] VALUE ( Ekspresi [.Ekspresi].) | Query); Contoh :
PERINTAH DELETE: Perintah DELETE digunakan untuk menghapus data pada table. Bentuk umum pernyataan DELETE : DELETE FROM nama table [WHERE kondisi]; Contoh:
PERINTAH UPDATE: Pernyataan UPDATE berguna untuk mengubah data. Bentuk umum perintah UPDATE : UPDATE nama table SET kolom 1 = nilai baru 1, kolom 2 = nilai baru 2, ., kolom n = nilai baru n [WHERE kondisi]; Contoh :
205
PERINTAH ALTER: Perintah ini digunakan untuk mengubah (modify) table yang telah dibuat, seperti: menambah kolom baru, mengubah ukuran kolom, dan mengubah aturan-aturan yang berlaku untuk suatu kolom. Syntaxnya yang dapat dipakai sebagai berikut: ALTER TABLE nama table [ADD (nama kolom) MODIFY (nama kolom) DROP nama constraint ]; Contoh:
PERINTAH DROP: Apabila bermaksud untuk menghapus suatu table karena table tersebut tidak diperlukan maka bisa melakukannya dengan memakai pernyataan DROP TABLE. Dengan syntaxnya: DROP TABLE nama table [CASCADE CONSTRAINTS]; Contoh:
206
8.3. Predikat MYSQL Predikat diletakkan setelah klausa WHERE untuk pencarian record database agar mendapatkan string, karakter atau range tertentu. 1. LIKE dan NOT LIKE LIKE digunakan untuk mendapatkan record yang memenuhi sebagian kriteria pencarian yaitu mencari data yang menyerupai atau seperti. Perintah LIKE sering dikombinasikan dengan tanda persen (%) dan underscore (_). % digunakan di awal atau akhir teks kriteria sedangkan _ dimanapun diinginkan. Syntax dasar dari SELECT yang melibatkan LIKE adalah: select kolom1, kolom2, [] FROM NAMA_TABEL WHERE kolom_tabel LIKE %string%; NOT LIKE merupakan lawan dari LIKE. Semua data yang masuk kriteria LIKE secara otomatis tidak masuk kriteria NOT LIKE. 2. BETWEEN Digunakan untuk menyeleksi nilai-nilai yang berada dalam kisaran (range), misalnya menampilkan student yang
207
mempunyai IPK antara 3,00 sampai 3,50. Sintaks perintah SELECT dengan BETWEEN adalah select kolom1, kolom2, [] FROM NAMA_TABEL WHERE nama_kolom BETWEEN nilai1 and nilai2; 3. LIMIT Memungkinkan pembatasan jumlah record yang diambil dari database. Sintaks: select kolom1, kolom2, [] FROM NAMA_TABEL LIMIT jumlah_limit; 4. INNER JOIN JOIN digunakan bersama SELECT untuk mengkombinasikan kolom dari satu tabel dengan kolom pada tabel lain. Proses utama yang dilakukan oleh JOIN adalah mencocokkan nilai pada field kunci pada kedua table. INNER JOIN mengembalikan semua baris sebagai hasil yang memenuhi suatu kondisi 5. LEFT JOIN Suatu LEFT JOIN mengembalikan semua baris sisi kiri kondisional bahkan jika tidak ada sisi kanan yang memenuhi sekalipun
208
6. RIGHT JOIN Suatu RIGHT JOIN akan menampilkan baris-baris sisi kanan kondisional yang memenuhi atau tidak memenuhi kondisi. 7. UNION Untuk menggabung dua tabel, menempatkan dua query terpisah secara bersama membentuk satu table. UNION akan memberikan hasil terbaik saat menggunakan dua tabel dengan kolom serupa karena setiap kolom harus mempunyai tipe data sama. Sintaks dasar: select kolom1, kolom2 FROM NAMA_TABEL UNION select kolom1, kolom2 FROM NAMA_TABEL; 8. UNION ALL Memilih semua baris dari setiap tabel dan mengkombinasikannya ke dalam satu tabel. Perbedaan antara UNION dan UNION ALL yaitu UNION ALL tidak akan menghapus (mengeliminir) baris-baris yang sama ( duplicate rows) hanya mengambil semua baris dari semua tabel sesuai query yang dikirim ke server database. 9. Sub-Query
209
Merupakan query SELECT yang ditempatkan di dalam suatu pernyataan SQL lain. Dapat diletakkan sebagai bagian dari query utama : SELECT, INSERT, UPDATE, DELETE, SET, DO. Sintaks: select kolom1, kolom2, kolom3 [] FROM NAMA_TABEL WHERE kolom_tabel = (select kolom1, kolom2, kolom3 [] FROM NAME_TABEL_LAIN);
210
2.
digunakan. Contoh:
3.
database melalui link nama koneksi. Fungsi ini mengembalikan nilai FALSE baik CREATE, UPDATE, DELETE, DROP, dll. Contoh:
4.
hasil query yang dilakukan. Pembacaan ini dilakukan mulai dari record pertama sampai nilai terakhir. Tiap record dibaca, dibentuk
211
menjadi array dengan index numeric dari 0 sampai dengan n-1 dan index assosiatif dengan index adalah nama field dari table. 5. mysql_fetch_row(hasil_query) Fungsi ini mempunyai hampir sama dengan
mysql_fetch_array tetapi array hasil pembacaan data hanya menggunakan index numeris saja yang dimulai dari 0 untuk kolom pertama samapai n-1 untuk kolom terakhir hasil query.
6.
mysql_result(hasil_query, no_record,nama_field), Fungsi ini berguna untuk mengambil langsung nilai hasil
query pada suatu baris dan kolom tertentu (satu sel) dengan menyebutkan parameter variabel hasil proses query, no_record, untuk nomor baris (dimulai dari 0) dan nama field. 7. mysql_num_field(hasil_query) Fungsi berguna untuk mendapatkan jumlah field dari hasil query. Contoh:
8.
mysql_num_rows(hasil_query)
212
Fungsi ini berguna untuk mendapatkan jumlah baris dari hasil query. Menghasilkan suatu array yang berisi seluruh kolom dari sebuah baris pada suatu himpunan hasil. Mengambil data secara baris per baris. Data yang diambil dalam bentuk array (elemen dari array adalah field-field dari tabel data). Contoh:
8.5.
Kesimpulan
MYSQL termasuk jenis RDBMS (Relasional Database Management System). Database MYSQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat Open Source. MYSQL mengenal beberapa tipe data field yaitu : Tipe data numerik, Tipe data string, Tipe data char() dan varchar() serta Tipe data tanggal. MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi diantaranya: Operator Aritmetika, Operator Pembandingan, Operator Logika, Operator Karakter, Operator Lain-lain seperti: IN, BETWEEN dan Fungsi Agregat.
Dengan menggunakan query, maka dapat melihat, mengubah dan menganalisis data dengan berbagai titik pandang yang dikehendaki. Yang dimaksud dengan query pada MYSQL adalah query yang diciptakan dengan pernyataan-pernyataan SQL. SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengakses basis data
213
relasional. Pernyataan (statement) SQL dapat digolongan atas tiga golongan yaitu: Data Definition Language (DDL), Data Manipulation Language (DML) dan Data Control Language (DCL). Predikat diletakkan setelah klausa WHERE untuk pencarian record database agar mendapatkan string, karakter atau range tertentu. Seperti : LIKE dan Not Like, Between, Limit, Inner Join, Left Join, Right Join, Union dan lain sebagainya. PHP juga menyediakan fungsi untuk koneksi ke database dengan sejumlah fungsi untuk pengaturan baik menghubungkan maupun memutuskan koneksi dengan server database MySQL. Fungsi koneksi ke server database mengunakan pola yang sama yaitu server, port, user, password. Fungsi-fungsi tersebut adalah: mysql_connect (host, user, password), mysql_select_db (nama_database, nama_koneksi), mysql _query(perintah_query, nama_kondisi), mysql_fetch_array (hasil_query), mysql mysql_fetch_row(hasil_query) dan lain sebagainya.
214
d. semua nama mahasiswa yang berawalan D, R atau A. 2. Apakah statement SELECT berikut ini apat dijalankan dengan benar? SELECT nama, pekerjaan, gaji as salary FROM pegawai; 3. Temukan empat kesalahan pada statement SELECT berikut: SELECT no_pegawai, nama_pegawai, gaji x 12 gaji setahun FROM pegawai; 4. Buatlah query untuk menampilkan nama dan gaji dari pegawai yang memiliki gaji lebih dari 2000000. 5. Tampilkan nama dan gaji untuk semua pegawai yang memiliki gaji yang tidak berada dalam range antara 1000000 sampai 3000000.
215