BAB I
PENDAHULUAN
I.1
RDBMS MYSQL
Kebanyakan dari database tergantung pada Database Management System (DBMS) untuk mengelola data yang tersimpan dalam sistem database dan menyiapkan data agar tersedia bagi pengguna yang ingin mengakses informasi tertentu. Sebuah DBMS terdiri atas satu perangkat server dan client yang
komprehensif (meliputi banyak hal) yang mendukung berbagai macam tugas-tugas administratif dan yang berhubungan dengan data. Beberapa perangkat DBMS menyediakan beberapa tipe perangkat client, yang mengijinkan anda untuk berinteraksi secara langsung dengan data yang tersimpan dalam database.
Minimal sekali, sebuah DBMS harus dapat menyimpan data dan mengijinkan data tersebut dapat diambil kembali dan dimodifikasi, sekaligus melindungi data terhadap suatu operasi yang dapat merusak atau menyebabkan ketidakkonsistenan (inkonsistensi) data. Bagaimanapun, kebanyakan sistem menyediakan lebih banyak kemampuan. Secara umum, beberapa DBMS saat ini mendukung tipe-tipe fungsional berikut:
Managing storage Maintaining security
Maintaining metadata Managing transactions
Supporting connectivity Optimizing performance
Providing back-up and recovery mechanisms
Processing requests for data retrieval and modification
RDBMS = Relational Database Management System.
(keterhubungan) di antara tabel-tabel tersebut. MySQL termasuk salah satu “pemain” besar dalam pasar RDBMS.
I.2
FITUR-FITUR MYSQL
1. Scalability
MySQL saat ini dapat menangani database yang cukup besar. Beberapa organisasi atau perusahaan yang telah menerapkannya antara lain: Yahoo!, Cox Communications, Google, Cisco, Texas Instruments, UPS, Sabre Holdings, HP, The Associated Press, dan lain-lain. Bahkan NASA dan Biro Sensus US telah mengimplementasikan MySQL Solutions. Menurut dokumentasi produk MySQL, beberapa database yang digunakan oleh MySQL AB, perusahaan yang membuat MySQL, berisi 50 juta rekod, dan beberapa pengguna MySQL melaporkan bahwa database mereka berisi 60.000 tabel dan 5 milyar baris. 2. Portability
Beberapa sistem operasi yang dapat menjalankan MySQL: Unix, Linux, Windows, OS/2, Solaris, dan MacOS. MySQL juga dapat berjalan pada arsitektur yang berbeda-beda, mulai dari PC pada level bawah sampai level tinggi seperti mainframe.
3. Connectivity
MySQL mendukung jaringan secara penuh dan socket TCP/IP, socket Unix, dan named pipes (penamaan). Di lain hal, MysQL dapat diakses dari manapun pada internet, dan multiple (banyak) pengguna dapat mengakses database MySQLsecara simultan (bersamaan). MySQL juga menyediakan API (Application Programming Interface) untuk mendukung konektivitas dengan beberapa aplikasi yang ditulis dengan menggunakan C, C++, Perl, PHP, Java, dan Python.
4. Security
MySQL meliputi sistem yang handal untuk mengontrol akses ke data. System menggunakan sebuah host dan struktur berbasis client yang mengontrol siapa saja yang dapat mengakses informasi tertentu dan tingkatan akses ke informasi tersebut. MySQL juga mendukung protokol SSL (Secure Sockets Layer) untuk membuat suatu koneksi yang terenkripsi.
5. Speed
(www.mysql.com) menyediakan hasil-hasil tes benchmark yang menunjukkan hasil kecepatan dalam penerapan MySQL.
6. Ease of Use
MySQL mudah untuk di-instal dan diterapkan. Pengguna dapat mendapatkannya dan menjalankannya dalam beberapa menit setelah men-downloadnya. Pada tingkat administratif, MySQL secara relatif mudah dioptimalkan, terutama jika dibandingkan dengan produk RDBMS lainnya.
7. Open Source Code MYSQL AB menyediakan source code MYSQL bagi siapa saja untuk men-download dan menggunakannya. Filosofi dari open source adalah mengijinkan audiens umum untuk berpartisipasi dalam me-review, menguji coba, dan mengembangkan kode.
I.3
PENGGUNAAN MYSQL SAAT INI
1. Database Backend for a Web Site 2. Usage Logger
3. Data Warehousing 4. Integrated Database 5. Embedded Database
I.4
LISENSI MYSQL
MySQL merupakan proyek open source, sehingga source code dari MySQL tersedia secara bebas. Sejak Juni 2000 (versi 3.23.19) GNU Public License (GPL) telah valid untuk MySQL. Hal ini meyakinkan bahwa MySQL akan terus berlanjut menjadi bebas tersedia.
I.5
PENGGUNAAN MYSQL DENGAN LISENSI OPEN SOURCE
MySQL dapat digunakan tanpa biaya/ongkos jka aplikasi dikembangkan secara lokal dan digunakan tidak untuk tujuan komersil.
Free use for those who never copy, modify, or distribute.
MySQL dapat digunakan secara bebas dalam website. Demikian juga, sebuah ISP bisa menyediakan MySQL pada pelanggannya tanpa harus membayar lisensi MySQL.
I.6
PENGGUNAAN MYSQL DENGAN LISENSI KOMERSIL
Anda tidak boleh mengubah atau memperluas MySQL (database server) atau menjual versi baru atau produk yang dibuat tanpa menyediakan source code yang tersedia secara bebas.
BAB
✁
STALASI MYSQL
MySQL adalah aplikasi yang relatif mudah untuk menginstal, dan dapat diinstal pada sejumlah platform. Untuk menginstal MYSQL, kita harus membuat beberapa keputusan awal persis apa yang ingin kita instal, dan kemudian kita harus men download file yang diperlukan.
Memilih Versi MYSQL
Software MySQL dalam berbagai versi dapat Anda download. kita juga dapat mengikuti produk terbaru yang paling stabil atau men-download versi MySQL pada tingkat pengembangan tertentu. Dalam memilih versi MySQL kita juga harus mempertimbangkan dari segi kestabilan dan fitur yang disediakan. Kedua hal ini terkadang tidak didapati pada satu versi tertentu.
Jenis-jenis versi download dalam berbagai tingkatan : Alpha:
Versi pada tingkatan ini belum mengalami uji testing sepenuhnya, perubahan besar masih bisa saja terjadi, dan fitur-fitur baru juga masih ada kemungkinan ditambahkan. Beta:
Versi berikut dari alpha. Pada tingkatan ini, semua kode telah diuji dan tidak ada penambahan fitur baru / utama. Versi MySQL dalam tahap beta ini bisa dianggap sudah stabil.
Gamma atau Release Candidate (RC)
Saat versi beta telah diluncurkan dan dianggap stabil, kemudian berjalan tanpa menghadapi masalah yang cukup signifikan, maka produk ini akan dipromosikan ke tingkatan atau tahapan gamma. Pada poin ini, hanya perbaikan kecil saja yang akan dilakukan.
Production atau Generally Available (GA)
Produk pada versi ini sudah dianggap paling stabil. Telah berjalan pada site (tempat) yang berbeda-beda dengan tanpa masalah yang cukup berarti. Pada tahapan ini, hanya perbaikan yang sifatnya kritis saja yang akan diterapkan.
MySQL 3.23.n
MySQL 3.23 merupakan versi yang paling banyak digunakan oleh penyedia Internet (ISP).
MySQL 4.0.n
Versi pertama pada seri ini adalah 4.0.0, diluncurkan pada Oktober 2001.Sejak Maret 2003 (versi 4.0.12), MySQL 4.0.n telah dianggap stabil dan direkomendasikan untuk penggunaan produksi. Versi terbarunya adalah 4.0.23. Dibanding versi 3.23, versi terbarunya muncul hanya untuk memperbaiki bug.
MySQL 4.1.n
Versi pertama adalah 4.1.0, sudah bisa di-download sejak April 2003. Sejak Oktober 2004 (versi 4.1.7) telah dianggap stabil dan direkomendasikan untuk penggunaan produksi. MySQL 5.0.n Versi pertama adalah 5.0.0. Telah tersedia sejak Desember 2003 untuk didownload. Versi terbarunya adalah 5.0.25 (September 2006).
MySQL 5.1.n
Versi minor terakhir pada versi ini (September 2006) adalah 5.1.22 Untuk versi MySQL yang lebih lengkap Anda bisa mengunjungi www.mysql.com
Semua produk, dalam tahap / tingkat apapun mereka diluncurkan, tentunya sudah diuji apakah mereka sudah aman digunakan.
MEMILIH PLATFORM
Anda dapat meng-instal MySQL dalam berbagai macam sistem operasi dan arsitektur komputer.
Linux
Kita dapat menjalankan MySQL pada berbagai versi Linux dan banyak tipe dari arsitektur komputernya, meliputi : x86, S/390, IA64, Alpha, PPC, dan AMD64.
Windows
Kita dapat menjalankan MySQL pada berbagai versi Windows, meliputi: Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, dan Windows 2003.
Solaris
Kita dapat menjalankan MySQL pada Solaris 8 dan 9 pada banyak tipe arsitektur komputer, meliputi: 32-bit SPARC, 64-bit SPARC, dan 32-bit x86.
Kita dapat menjalankan MySQL pada FreeBSD pada banyak tipe arsitektur, meliputi: x86 dan LinuxThreads.
Mac OS X
Kita dapat menjalankan pada Mac OS X 10.2 dan 10.3
Platform yang tersebut di atas tidak menampilkan daftar lengkapnya, hanya menyediakan gambaran umum dari berbagai macam pilihan yang dapat Kita gunakan.
Pada akhirnya, pilihan platform kita mungkin akan menjadi terbatas karena lingkungan di mana kita bekerja atau karena kita tidak ingin main-main dengan upgrade dan perubahan platform sampai kita menghabiskan waktu bekerja dengan MySQL. Untuk keperluan hanya belajar MYSQL , pilihan platform tidak begitu penting pada saat ini, meskipun dapat menjadi faktor penting di masa depan. Dalam hal apapun, selalu pastikan untuk memeriksa platform terbaru yang ada.
MEMILIH TIPE DISTRIBUSI
Jenis distribusi mengacu pada format yang MySQLYANG tersedia untuk download dan instalasi. Distribusi MySQL mendukung dua jenis:
Binaries
Merupakan paket instalasi yang sudah dikompres dan berisi file-file yang sudah di-compile sehingga Anda dapat meng-instal MySQL tanpa harus bekerja atau memanipulasi source code –nya. Tipe binaries tersedia untuk beberapa system operasi (misal, Linux, Solaris, dan FreeBSD) dan dikemas dalam file tar terkompres. Selain dalam bentuk file yang biasanya untuk meng-instal tersedia juga dalam bentuk file terkompresi. Untuk instalasi linux, tersedia tipe RPM Package Manager (RPM), tipe .dmg untuk Mac OS X, dan file zip untuk Windows.
Source Code
Distribusi ini berisi source code untuk MySQL. Kode yang didistribusikan belum dicompile, jadi terserah Anda untuk meng-compile–nya dulu sebelum instalasi. File source code disimpan dalam tiga jenis format : RPM untuk linux dan file zip untuk Windows.
MEMILIH EDISI MYSQL
Standard:
Ini adalah edisi dasar dari MySQL dan dalam edisi ini sudah mencakup fungsifungsi yang tersedia, yang sudah diuji secara penuh.
Max
Edisi ini meliputi semua fitur-fitur yang tersedia dalam edisi Standar ditambah fitur-fitur yang banyak tidak diperlukan pengguna atau mereka belum pernah diuji secara penuh. Edisi ini juga meliputi the Berkeley DB storage engine.
Debug
Binary debug di-compile dengan tambahan data debug, yang dapat mempengaruhi performansi. Binary-binary tidak dimaksudkan untuk penggunaan dalam lingkungan produksi.
Untuk kebanyakan pengguna, termasuk pengguna MySQL pemula, edisi Standar telah menyediakan pada Anda semua fitur yang Anda perlukan untuk mempelajari MySQL dan membuat aplikasi yang terhubung ke MYSQL.
MENDOWNLOAD FILE DISTRIBUSI
Tahap-tahap untuk mendownload file-file yang diperlukan: 1. Buka http://dev.mysql.com/downloads.
2. Klik link untuk versi database dan klient yang anda ingin install. 3. Dari daftar file, cari platform yang berlaku, jenis distribusi, dan edisi..
4. Klik link mirror untuk mendownload file yang anda innginkan, kemudian pilih sebuah mirror.
5. Download file
Bila Anda men-download file dari situs MySQLWeb, perhatikan bahwa file mengikuti penamaan khusus konvensi. Untuk file biner dasar, file menggunakan format berikut:
mysql-<edition>-<version>-<platform>.tar.gz
MENGINSTAL MYSQL
Berikut langkah-langkah instalasi:
1. Log In di Windows dengan akun yang mempunyai hak administrative 2. Windows Explorer, dan cari file setup MySQL atau file zip.
3. Jalankan file setup tersebut. Setelah itu akan muncul gambar Setup Wizard
4. Klik Next, maka akan muncul pilihan yang menggambarkan tipe-tipe setup yang dapat Anda lakukan.
Sebaiknya anda memilih instalasi Typical. Dalam tipe ini semua fungsional yang anda butuhkan sudah disuguhkan. Setelah anda sudah terbiasa, jika ingin lebih mengetahui apa yang anda insta, pilih custom dan pilih komponen-komponen yang ingin anda install.
6. Klik install untuk memulai instalasi. Akan muncul layar Installing MySQL Server yang menyajikan kepada anda progress instalasi yang terjadi,
Untuk kali ini, lewati saja pembuatan akunnya dan lanjutkan dengan instalasi. Anda dapat membuat akun kapan saja.
7. Pilih opsi Skip Sign-Up, dan klik Next. Layar Wizard Completed
8. Pastikan bahwa pilihan Configure the MySQL Server now terpilih, dan klik Finish.
MENGKONFIURASI MYSQL SERVER
Setelah Anda menyelesaikan tahapan instalasi MySQL, Anda dapat menjalankan MySQL Server Instance Configuration Wizard untuk mengatur system anda. Panduan ini memungkinkan Anda untuk menentukan tipe konfigurasi, install MySQL sebagai service, dan mengatur inisial security setting (keamanan). Jika Anda memilih pilihan Configure the MySQL Server now pada layar terakhir dari MySQL
Setup Wizard, MySQL Server Instance Configuration Wizard secara otomatis dipanggil. Anda juga dapat memanggil panduannya dari Start Menu Windows (sebagai bagian dari grup program MySQL).
Setelah Anda menjalankan MySQL Server Instance Configuration Wizard, Anda dapat mengikuti langkah-langkah berikut untuk mengatur MySQL Server:
2. Klik Next. Layar berikutnya akan menyajikan pada Anda panduan untuk memilih tipe konfigurasi. MySQL Server Instance Configuration Wizard memungkinkan Anda untuk memilih pilihan Detailed Configuration atau pilihan Standard Configuration. Pilihan Detailed Configuration mengajak Anda untuk menuju proses identifikasi konfigurasi setting yang spesifik dengan lingkungan Anda. Misal, Anda dapat menspesifikasikan apakah Anda bekerja pada komputer developer, server, atau dedicated. Anda juga dapat menspesifikasikan setting konfigurasi sebagaimana tipe-tipe utama dari database yang ditunjang, jumlah pengguna secara konkuren, dan setting port. Jika Anda memilih opsi Standard Configuration, MySQL Server akan di-set dengan konfigurasi untuk tujuan umum. Untuk saat ini Anda pilih saja yang Standar.
Pada layar tersebut juga terdapat pilihan yang mengijinkan Anda untuk mengatur MySQL sebagai service. Jika Anda bekerja pada Windows NT/2000/XP/Server 2003, Anda dapat menjalankan MySQL sebagai service, dimana hal ini memang direkomendasikan untuk digunakan. Secara default, pilihan Install as Windows Service terpilih, MySQL dipilih dalam daftar drop-down untuk Service Name, dan pilihan Launch the MySQL Server automatically juga terpilih. Selain itu, pada MySQL versi 5 ini juga disediakan layanan pilihan Include Bin
Directory in Windows PATH. Secara default pilihan ini tidak terpilih. Jika Anda memilihnya maka setiap aplikasi yang ada di direktori Bin (MySQL) dapat dipanggil dari direktori manapun pada struktur direktori Windows, misal dari command line atau Run
4. Pastikan setting default terpilih; lalu klik Next. pada tampilan ini mengijinkan Anda untuk memodifikasi inisial security settings
otomatis dibuat di MySQL. Jika Anda memilih opsi Modify Security Settings, Anda juga dapat memilih Root mungkin hanya koneksi dari localhost pilihan, yang digunakan untuk menentukan bahwa user root tidak dapat terhubung ke server MySQL jarak jauh. Namun untuk keamanan sebaiknya Anda tidak memilihnya. Sehingga akun Root hanya bisa diakses oleh/dari localhost saja. Anda juga dapat memilih opsi Create An Anonymous Account, dimana mengijinkan Anda untuk membuat akun anonymous (tidak diketahui) pada MySQL server.
5. Pastikan Anda memilih opsi Modify Security Settings, kemudian masukkan password root yang baru di textbox New root password dan di textbox Confirm. Pastikan bahwa hanya root koneksi dari localhost dan bahwa pilihan Create An Anonymous Account opsi tidak dipilih. Kemudian klik Next.
6. Klik Execute. Akan muncul layar seperti yang menyediakan dengan laporan status (dengan opsi yang di-checklist) yang menandakan bahwa setiap tugas telah dikerjakan. Jika proses konfigurasi telah lengkap, semua tugas seharusnya di-checklist.
7. Klik Finish. Panduan konfigurasi akan tertutup, dan MySQL siap untuk digunakan.
EDISI MYSQL SERVER
BAB III
BEKERJA DENGAN MYSQL
Database Dasar
✑✟☛✟✒✟✓✔ ✏✕ ✓✖✄ ✟✠✏ ☎✞☎✓☛✗✟✓☎ ✠✟☛ ✟✒✟✓✔ ✕✟✞✘ ✒✔✗☎✓☎ ☛✟✒✔✄ ✕✟✞✘ ✒✔✗✙✟☎☛✟✞ ✠✔✞✘✟✞ ✚✔✞✘✟✏✟✞✟✞☎✞✓☛✟✄ ✟✓☎✛ ✕✌✜✢, ✠☎☛✔☛✟✚✙✟✞✚✔✞✘ ✘✣✞✟✏✔✞✕☎✏✚✟✞✆✣✞✘ ✓☎, ✠✟✞✏✔✏✒✔ ✗☎✙✟✞✠✟☛ ✟ ✕✟✞✘☛✔✗✙✟☎☛ ✠✔✞✘✟✞ ✓☎✓☛✔✏ ✒✟✞☛✣✟✞✛✕✌✜✢ ✠✟✞ ✣✞☛✣✙ ✤✎ ✞✟ ✥✟✙☛✣✆✣✞✘ ✓☎✎ ✞✟✄ ☎☛✟✓✦✑✟☛✟✒✟✓✔ ✏✕ ✓✖✄✡✟✗✣✓✠☎☎✞☎✓☎ ✟✄ ☎✓✟✓☎✓✔✒✔✄✣✏✂ ✞✠✟✠✟✚✟☛✏✣✄ ✟☎✏✔✞✘ ✘ ✣✞✟✙✟✞✛ ✕✌✜✢.
✧✟✠✟✠✟✓✟✗✞✕✟☞✠✟☛ ✟✒✟✓✔✏✕✓✖✄☛✔ ✗✏✟✓✣✙ 15 ☛✟✒✔✄. ★✟✒✔✄✒✔ ✗☎✙✣☛✏✔✏✒✔ ✗☎✙✟✞✘✟✏✒✟✗✟✞ ✓☎✞✘✙✟☛✠✟☛ ✟✕✟✞✘✠☎✓✔✗☛✟✙✟✞✠✟✄ ✟✏✓✔☛☎✟✚☛✟✒✔✄.
✑☎✗✔✙☛✎✗☎ ✩ ✓☎
✪✎✄✣✏ ✞✓_priv Berisi data kontrol akses untuk setiap kolom dalam
tabel tertentu.
db Mengandung hak akses data yang mendefinisikan
jenis hak pengguna diberikan pada database tertentu.
func Berisi data tentang fungsi-fungsi yang ditetapkan
pengguna yang telah
telah ditambahkan ke MySQL.
help_category, help_keyword,
help_relation, help_topic
Berisi data yang terkait dengan sistem bantuan
MySQL.
host Mengandung hak akses data yang mendefinisikan
jenis keistimewaan sebuah host yang diberikan pada
database tertentu.
tables_priv Berisi hak akses untuk setiap tabel dalam database
tertentu.
time_zone,
time_zone_leap_second,
time_zone_name,
time_zone_transition,
time_zone_transition_type
Berisi data yang terkait dengan fungsi zona waktu di
MySQL.
user Mengandung hak akses data yang mendefinisikan
bahwa pengguna dapat melakukan koneksi ke server
mengakses MySQL, dan jenis hak global bahwa
pengguna memiliki hak untuk mengakses database
MySQL.
The Grant Tables
Sebuah tabel grant adalah salah satu tabel dalam database mysql yang digunakan untuk
mengontrol akses ke MySQL dan database MySQL. Secara default, MySQL membuat lima tabel
grant berikut ini:
• columns_priv
• db
• host
• tables_priv
• user
Tabel grant menentukan pengguna mana yang dapat mengakses MySQL, dari komputer
mana dia dibolehkan mengakses, aksi apa yang dapat dilakukan pengguna tersebut, dan pada
obyek mana aksi tersebut dapat dilakukan. Misal, tabel grant mengijinkan Anda untuk
menspesifikasikan pengguna mana yang dapat menampilkan data pada database tertentu dan
pengguna mana yang dapat mengupdate data secara aktual.
Aksi-aksi yang diijinkan untuk dapat dilakukan oleh pengguna dan data yang dapat
merekan akses dikontrol oleh sekumpulan privileges (hak). Berikut ini adalah table yang
mendaftar masing-masing hak yang tersedia dalam MySQL dan aksi-aksi apa saja yang
diijinkan untuk dapat dilakukan oleh pengguna.
Perintah isi
Select_priv Querydata ke database.
Insert_priv Memasukkan data ke dalam database.
Update_priv Update data dalam database.
Delete_priv Menghapus data dalam database.
Create_priv Membuat suatu tabel dalam database.
Drop_priv Menghapus suatu tabel ddalam database.
Reload_priv Mengambil data di tabel grant ke dalam MySQL.
Shutdown_priv Mematikan server MySQL.
Process_priv Menampilkan daftar proses-proses dari MySQ
Grant_priv Memberikanprivileges(hak) pada obyek-obyek database.
References_priv Fungsionalitas ini belum didukung, namun maksud dari hak ini
muncul agar mengijinkan pengguna mengkonfigurasi
batasanforeign key(kunci tamu/asing)
Index_priv Membuat dan menghapus indeks dalam database.
Alter_priv Mengubah obyek-obyek dalam database.
Show_db_priv Menampilkan semua database.
Super_priv Mengerjakan tugas administratif tingkat lanjut.
Create_tmp_table_pri Membuat tabel temporer.
Lock_tables_priv Menempatkanlock(kunci) pada tabel.
Execute_priv Menjalankan stored procedure (prosedur tersimpan). Pada
versi 5.0 sudah mulai didukung.
Repl_slave_priv Membaca log binary untuk suatu master replikasi.
Repl_client_priv Meminta informasi mengenai servermasterdanslaveyang
digunakan untuk replikasi.
Table_priv Mengakses tabel tertentu dalam database.
Column_priv Mengakses kolom tertentu pada tabel dalam database.
Tabel User
Tabel user merupakan tabel grant utama dalam database mysql. Tabel ini mengontrol
siapa yang bisa membuat koneksi ke MySQL, dari host mana mereka bisa terkoneksi, dan hak
superuser yang mana yang mereka miliki. Sebuah hak superuser diterapkan secara global ke
MySQL. Sebuah pengguna yang merupakan superuser dapat mengerjakan tugas-tugas yang
ditentukan oleh hak tersebut pada database manapun dalam sistem. Setiap pengguna MySQL
didaftar dalam table user, baik diberikan hak dalam tabel tersebut atau tidak. Tabel user
menyediakan jangkauan terluas dalam implementasi MySQL, kemudian diikuti tabel db dan
host. Jika seorang pengguna tidak terdaftar dalam tabel user, maka pengguna tersebut tidak
MENGGUNAKAN PROGRAM-PROGRAM DALAM MYSQL
Menspesifikasikan Pilihan Program
Sebagian besar program MySQL mendukung banyak pilihan yang dapat Anda
tentukan ketika Anda menjalankan program. Sejumlah pilihan yang mungkin Anda
memilih untuk menyertakan dengan satu program mungkin menjadi sedikit berat,
terutama jika Anda harus mengetikkan pilihan mereka berulang-ulang. Sehingga,
MySQL mendukung berbagai cara untuk menentukan pilihan yang tersedia untuk
program-program anda:
•Command prompt entries:
anda dapat menentukan pilihan dan, ketika diketikan perintah pada
command prompt.
•Configuration files:
Anda dapat menambahkan opsi untuk file konfigurasi yang spesifik untuk
suatu program atau tersedia untuk semua program-program client.
•Aliases:
Jika sistem operasi Anda mendukung pembuatan alias, Anda dapat membuat
alias yang mendefinisikan pilihan spesifik yang ingin Anda tetapkan.
•Scripts:
Anda dapat membuat sebuah shell script yang mendefinisikan program dan
pilihan,kemudian Anda dapat memanggil script tersebut dari dalam shell.
•Environment variables:
Anda dapat mengatur variabel lingkungan yang mempengaruhi operasional
program MySQL.
Menspesifikasikan Pilihan di Command Prompt
Beberapa perintah yang dapat dilakukan untuk menentukan pilihan:
direktori Deskripsi
mysqlaccess --help menentukan pilihan yang tersedia dengan
menggunakan pilihan bantuan.
lso access help by using a shorter
version of the command:
mysqlaccess -?
mengakses petunjuk dengan menggunakan
versi pendek.
nama pendek untuk setiap opsi.dan memiliki
banyak pilihan.
mysql -u root Menentukan pilihan dengan menggunakan
nama pendek untuk pilihan itu,
mysql -uroot Menentukan pilihan dengan menggunakan
nama pendek untuk pilihan itu, tanpa
memisahkan nama dari nilai-nilai.
mysql -u root -p Menentukan pilihan dengan tambahan
password pilihan (-p).
mysql test -u root -p Menentukan pilihan dengan mengetikan nama
database setelah nama program.
Menentukan Pilihan dalam File Konfigurasi
Sebuah file konfigurasi (atau pilihan file) dikutip oleh sejumlah program
MySQL ketika program-program diluncurkan. Berisi file konfigurasi pengaturan yang
sebanding dengan pilihan yang dapat Anda tentukan pada baris perintah saat Anda
menjalankan program. Setiap pilihan yang tersedia pada baris perintah tersedia untuk
digunakan dalam file konfigurasi. Untuk memasukkan pilihan pengguna dalam file
konfigurasi, yang dapat dimasukan dalam command prompt, sebagai berikut:
mysqladmin --user=root
Jika Anda akan menyertakan pilihan ini pada sebuah file konfigurasi, anda
akan mengetikan berikut:
user=root
Anda kemudian dapat menambahkan lebih banyak pilihan pada baris di
bawahnya, seperti pilihan menggunakan perintah baris, tempat pilihan dalam file
konfigurasi di baris terpisah, sebagai berikut:
[mysqladmin] host=server12 user=root user=pw1
Baik Linux dan Windows (dan juga sistem operasi lain) mendukung file-file
konfigurasi. File-file konfigurasi adalah cara mudah untuk menentukan pilihan
program Anda. Hal ini terutama berguna untuk program-program yang membutuhkan
konfigurasi, yang Anda butuhkan untuk menentukan adalah nama program pada
prompt perintah, sedangkan Pilihan diterapkan secara otomatis.
File-file Lybrary, Script, dan Program Server
MySQL menyertakan sejumlah file-file program, script, dan library yang berkaitan dengan operasi server. Tabel berikut menyediakan deskripsi dari masing-masing file. Untuk mempelajari opsi mana yang tersedia untuk tiap-tiap file, ketikka nama file, bersamaan dengan opsi --help di command prompt, dan tekan Enter.
File Terkait Server Deskripsi
libmysqld File library yang digunakan untuk meng-embed(menanam) server
MySQL ke aplikasi lain. File libmysqld sebenarnya bukan
merupakan program, namun dia dapat digunakan dengan program
stand-alonelain sehingga mereka bisa menyertakan server MySQL.
mysql.server Filescriptyang dapat Anda gunakan di sistem Unix untuk
memulai dan mengakhiri server MySQL secara otomatis.
mysql_install_db Filescriptyang membuat dan mendiami inisial database (mysql dan
test) setelah MySQL telah di-instal.
mysqld File program server MySQL. Program mysqld harus sedang
berjalan untuk mendukung koneksi client dikarenakan
akses ke data harus melalui server.
mysqld-max File program server MySQL yang menyertakan tambahan
fitur yang terdapat pada file program mysqld standar.
mysqld_multi Filescriptyang dapat Anda gunakan untuk mengelola
banyak proses mysqld.Scriptdapat memulai dan
mengakhiri server sebagaimana laporan status terkini
mereka.
mysqld_safe Filescriptyang memulai server MySQL secara otomatis,
restartjika diperlukan, dan mengawasinya. Penggunaan
script mysqld_safe merupakan cara yang
Program-program Client
Program-program client MySQL mengijinkan Anda untuk berinteraksi dengan server
MySQL dan data yang tersimpan di MySQL. Tabel berikut ini menjelaskan programprogram client yang terdapat dalam MySQL.
Program Client Deskripsi
myisamchk Memeriksa dan memperbaiki tabel MyISAM. Sebaiknya Anda
tidak menggunakan utilitas myisamchk saat server sedang
berjalan.
myisampack Mengkompres tabel MyISAM ke tabelread-onlyuntuk
mengurangi kebutuhan penyimpanan.
mysql Mendukung akses data di database MyQL. Anda dapat
menggunakan utilitas ini dalam mode interaktif atau batch.
Mode interaktif mengijinkan Anda untuk mengakses data
secara langsung dan melakukanqueryterhadap database.
Mode batch mengijinkan Anda untuk mengeksekusi query yang
tersimpan dalam filescriptdan menyimpan hasilqueryke file.
mysqladmin Menyediakan antarmuka administratif untuk instalasi MySQL.
Anda dapat mengerjakan berbagai macam tugas-tugas
administratif, seperti mendapatkan informasi konfigurasi MySQL,
mengatur password, menghentikan server, membuat dan
menghapus database, dan menerapkan hak akses.
mysqlbinlog Menampilkan file log update biner dalam suatu format teks.
mysqlcheck Memeriksa dan memperbaiki tabel MyISAM. Anda harus
menggunakan utilitas mysqlcheck saat server sedang jalan,
dimana berbeda dari myisamchk, dimana Anda seharusnya
tidak mengunakannya saat server sedang jalan.
mysqldump Menyalin data dalam tabel database ke dalam file teks. Hal ini
dapat berguna jika Anda ingin mem-backupdata, membuat
database pengujian, atau memindahkan database ke server
lainnya.
mysqlimport Menyalin data dari file teks ke dalam tabel dalam database
MySQL.
daftar tabel dalam database, atau informasi mengenai tabel
tertentu.
perror Menampilkan deskripsi dari kodeerror(kesalahan) sistem atau
kodeerrorpenanganan tabel untuk tabel MyISAM, ISAM, dan
DBD.
UTILITAS MYSQL
1. Menggunakan MYSQL mode interaktif
Ketika Anda menggunakan utilitas mysql dalam mode interaktif, Anda memanggil tool dari command prompt. Misal, Anda ingin login di host dengan nama SERVER1 pada database mysql dengan user root. Untuk melakukannya Anda akan menspesifikasikan perintah berikut ini:
mysql mysql –h SERVER1 –u root –p
Jika Anda menyertakan opsi ini dalam file konfigurasi, maka Anda tidak perlu menspesifikasikannya di command prompt, kecuali Anda ingin menimpa opsi-opsi yang telah ditentukan dalam file konfigurasi. Jika Anda tidak ingin menimpa opsiopsi yang sudah ditentukan, maka Anda hanya perlu menuliskan nama filenya saja.
Untuk menampilkan perintah apa saja yang terdapat dalam mysql client utility, Anda dapat mengetikkan help di mysql prompt-nya.
Help
2. Menggunakan MYSQL dalam mode batch
Menggunakan utilitas client mysql dalam mode batch menyediakan pada Anda jalan untuk mengeksekusi pernyataan-pernyataan dalam file dari shell command prompt, tanpa harus ke utilitas mysql. Perintahnya adalah:
mysql –u nama_user –p < <file sumber>
File sumber dapat berupa file teks yang berisi pernyataan SQL dan perintah mysql. Jika Anda mengeksekusi perintah ini, hasil yang dikembalikan oleh query ditampilkan di command prompt. Anda juga dapat menyimpan hasilnya ke file lain, yaitu dengan perintah:
mysql –u nama_user –p < <file sumber> > <file target>
ASSIGNING ACCOUNT PASSWORD
Misal, kita ingin memberikan password baru pada akun pengguna
mysqladmin –u nama_user password pasw_baru
Untuk selanjutnya pengguna tersebut harus menggunakan password baru yang telah diberikan. Jika ingin mengubah password lama yang sudah diberikan sebelumnya, maka Anda harus menyediakan passwordnya yang lama, ketika ditanya untuk memasukkan password lama.
mysqladmin –u nama_user –p password pasw_baru
Selain cara di atas, Anda juga bisa memberikan password melalui utilitas mysql client. Setelah Anda login di mysql client, berikan perintah berikut:
BAB V
✫ ✬✭✮✯✰ ✱
A
✲✮✳A
✴A
✵✶✷ ✸✹✸✺✻✼✽ ✽✺✾✿ ✺❀ ✺✿ ✺❁ ✺✸✿ ✺❀ ✺❂ ✺✻✹✸❃ ✻❄❁
Sebelum Anda dapat melakukan hal apapun dengan data dalam database, data harus sudah ada.
Untuk alasan inilah, pernyataan SQL yang perlu Anda pelajari adalah memasukkan data dalam
database. Ketika Anda menambahkan data dalam database, sebenarnya Anda menambahkannya ke
tabel-tabel secara individu dalam database tersebut.
✵✶✷ ✶✷ ✸✹✾❅❅✼✾✺✽✺✾❆ ✹❇ ✾❃ ✺❀ ✺✺✾❈✾✻✹❇❀✼✾❀✼✽✸✹✾✺✸❂ ✺❉ ✽ ✺✾✿✺❀ ✺
Pernyataan INSERT merupakan metode yang paling umum digunakan untuk memasukkan data
secara langsung ke dalam sebuah tabel.
Berikut ini adalah sintaks dalam pernyataan INSERT :
<pernyataan insert>::=
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO]
{<opsi nilai> | <opsi set> | <opsi❊❋●❋❍t>}
< opsi nilai >::=
<nama tabel> [(<nama kolom> [{, < nama kolom >}...])]
VALUES ({<ekspresi> | DEFAULT} [{, {< ekspresi > | DEFAULT}}...])
[{, ({<ekspresi > | DEFAULT} [{, {< ekspresi > | DEFAULT}}...])}...]
< opsi set >::=
< nama tabel >
SET < nama kolom >={< ekspresi > | DEFAULT}
[{, < nama kolom >={< ekspresi > | DEFAULT}}...]
< opsi❊❋●❋❍t>::=
<pernyataan■❏❑❏▲t>
Anda dapat menggunakan pernyataan INSERT untuk menambahkan data ke tabel manapun dalam
database MySQL. Ketika Anda menambahkan data Anda harus melakukannya dari baris ke baris,
Anda harus memasukkannya dengan tepat satunilai per kolom. Jika Anda menspesifikasikan nilai
yang lebih sedikit dari jumlah kolom yang ada, nilai default atau null akan dimasukkan ke kolom yang
nilainya tidak dispesifkasikan.
Sekarang perhatikan baris pertama sintaks pada pernyataan INSERT:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO]
Sebagaimana Anda lihat, pada bars pertama memerlukan kata kunci INSERT dan sejumlah opsi-opsi.
Opsi pertama adalah LOW_PRIORITY dan DELAYED. Anda dapat menyertakan salah satu dari opsi ini,
tidak bisa keduanya. Jika Anda menspesifikasikan LOW_PRIORITY, pernyataan tidak akan dieksekusi
sampai tidak ada koneksi klien yang sedang mengakses tabel yang sama dimana pernyataan INSERT
juga sedang mengakses. Hal ini dapat menyebabkan penundaan yang lama sementara Anda
menunggu pernyataan tersebut dieksekusi. Pada saat itu, Anda tidak dapat melakukan aksi apapun.
Jika Anda menspesifikasikan DELAYED, eksekusi juga akan ditunda, namun Anda dapat melanjutkan
untuk melakukan aksi lain sementara pernyataan INSERT berada dalam antrian. Opsi LOW_PRIORITY
dan DELAYED dapat digunakan hanya untuk memasukkan data terhadap tabel MyISAM dan ISAM.
Opsi berikut yang dapat Anda tentukan adalah klausa IGNORE. Opsi ini diterapkan terutama pada
pernyataan INSERT yang menambahkan banyak baris ke suatu tabel. Jka Anda menspesifikasikan
IGNORE, baris-baris yang ditambahkan akan diacuhkan jika mereka berisi sebuah nilai yang
terduplikasi terhadap nilai dari ▼ ◆ ❖P◗ ◆y❘❏y atau❖❙ ❚❏x unik. Pernyataan INSERT melanjutkan untuk
menambahkan baris-baris yang tersisa. Jika Anda tidak menspesifikasikan IGNORE, nilai-nilai yang
terduplikasi akan membatalkan proses penambahan data.
Menggunakan alternatif <opsi nilai> pada pernyataan INSERT
Alternatif <opsi nilai> pada pernyataan INSERT mengijinkan Anda untuk menambahkan satu atau
lebih baris ke suatu tabel. Sintaksnya adalah sebagai berikut:
<nama tabel> [(<nama kolom> [{, < nama kolom >}...])]
VALUES ({<ekspresi> | DEFAULT} [{, {<ekspresi> | DEFAULT}}...])
[{, ({<ekspresi> | DEFAULT} [{, {<ekspresi> | DEFAULT}}...])}...]
Sebagaimana Anda lihat dalam sintaks, Anda harus menyediakan nama tabel dan sebuah klausa
VALUES. Anda juga mempunyai pilihan untuk menspesifikasikan satu atau lebih kolom setelah nama
tabel. Jika Anda menspesifikasikan nama kolom, mereka harus ditutup dalam tanda kurung dan
dipisahkan oleh koma.
Sekali Anda menspesifikasikan nama tabel dan kolom opsional, Anda harus menspesifikasikan klausa
VALUES. Klausa harus menyertakan minimal satu nilai, dimana direpresentasikan oleh <ekspresi>
atau kata kunci DEFAULT. Jika Anda menyertakan nama kolom setelah nama kolom, klausa VALUES
harus menyertakan sebuah nilai untuk setiap kolom, sesuai dengan daftar kolom yang ada. Jika Anda
tidak menentukan nama kolom, Anda harus menyediakan sebuah nilai untuk setiap kolom dalam
tabel, sesuai dengan daftar kolom yang terdefinisi dalam tabel.
Kita akan membuat pernyataan pemasukan data berdasarkan definisi tabel berikut:
CREATE TABLE CD
(
IDCD SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NamaCD VARCHAR(50) NOT NULL,
Copyright YEAR,
JumlahDisk TINYINT UNSIGNED NOT NULL DEFAULT 1,
JumlahStok TINYINT UNSIGNED,
JumlahCadangan TINYINT UNSIGNED NOT NULL,
JumlahTersedia TINYINT UNSIGNED NOT NULL,
TipeCD VARCHAR(20),
WaktuPenambahan TIMESTAMP
);
Jika Anda lupa dengan penjelasan elemen-elemen dalam definisi tabel silakan dibaca modul pada
Tabel dalam definisi ini, dimana bernama CD, menyimpan informasi mengenai compact disks. Anggap saja Anda ingin menggunakan pernyataan INSERT untuk menambah informasi mengenai CD
Anda yang bernamaSurgamu – Koleksi Ungu. Anda dapat menset pernyataan Anda dalam berbagai cara. Pertama adalah menentukan nilai dari setiap kolom, tanpa menspesifikasikan nama dari kolom,
contoh:
INSERT INTO CD
VALUES (NULL, ‘Surgamu – Koleksi Ungu’,2006, 2, 10, 3,
JumlahStok - JumlahCadangan, ‘Slow’, NULL);
Dalam pernyataan ini, baris pertama berisi kata kunci perintah INSERT, opsional kata kunci INTO, dan
nama tabel (CD). Klausa VALUES meliputi sebuah nilai untuk setiap kolom, dimasukkan secara
berurut dimana sesuai dengan urutan penampakan kolom dalam definisi tabel. Nilai-nilai ditutup
dalam tanda kurung dan dipisahkan oleh koma.
Kolom pertama diisi dengan NULL. Nilai ini digunakan pada kolom IDCD, dimana dikonfigurasi
dengan opsi AUTO_INCREMENT dan merupakanprimary key. Dengan menspesifikasikan NULL, nilai inkrementasi berikutnya secara otomatis ditambahkan pada kolom tersebut ketika Anda
menambahkan baris ini ke tabel. Karena ini adalah baris pertama yang ditambahkan ke tabel, nilai 1
dimasukkan ke kolom IDCD.
Nilai berikut dalam klausa VALUES adalah menunjuk pada kolom NamaCD. Karena nilainya string, dia
ditutup dengan tanda kutip satu pada kedua sisinya.
Catatan, untuk menambahkan karakter tertentu dalam string , Anda harus memakai tanda
backslash. Misal:
String = ’Do’a Ibu’
Anda harus menuliskan ’Do\’a Ibu’
Begitu juga untuk tanda kutip ganda (”),backslash(\), persen (%), danunderscore(_).
Empat nilai berikut yang ditentukan dalam klausa VALUES adalah data tanggal dan numerik yang
menunjuk kolom-kolom dalam definisi tabel (Copyright = 2006, JumlahDisk =2, JumlahStok = 10, dan
Nilai yang diberikan untuk kolom JumlahTersedia (JumlahStok-JumlahCadangan) adalah merupakan
ekspresi yang menggunakan dua nama kolom dan tanda operator aritmatika minus (-) untuk
mengurangi nilai sebanyak pada kolom JumlahCadangan dari nilai pada kolom JumlahStok untuk
memperoleh jumlah total CD yang tersedia untuk dijual. Dalam hal ini totalnya adalah 7.
Nilai berikutnya adalah Slow, dimana dimasukkan pada kolom TipeCD. Nilai terakhir adalah NULL,
dimana digunakan untuk kolom WaktuPenambahan. Kolom dikonfigurasi sebagai kolom
TIMESTAMP, yang berarti bahwa waktu dan tanggal sekarang ditambahkan secara otomatis pada
kolom tersebut.
Cara lain untuk menambahkan tanggal sekarang adalah dengan menggunakan fungsi NOW(),
daripada NULL. Jika hanya tanggal saja, Anda dapat mengugnakan fungsi CURDATE() atau CURTIME()
untuk waktu.
Berikut ini juga contoh untuk menambahkan data ke tabel CD:
INSERT LOW_PRIORITY INTO CD (NamaCD, Copyright, JumlahDisk, JumlahStok,
JumlahCadangan, JumlahTersedia, TipeCD)
VALUES (‘Opick – Semesta Bertasbih’, 2006, DEFAULT, 13, 2,
JumlahStok - JumlahCadangan, ‘Nasyid’);
Dalam pernyataan ini, kolom IDCD dan WaktuPenambahan tidak dispesifikasikan. Karena IDCD
merupakan kolom AUTO_INCREMENT, sebuah nilai inkrementasi secara otomatis ditambahkan ke
kolom tersebut. Dan karena kolom WaktuPenambahan merupakan kolom TIMESTAMP, waktu dan
tanggal sekarang dimasukkan ke kolomnya.
Untuk kolom JumlahDisk, DEFAULT digunakan. Ini menandakan bahwa nilai default harus
dimasukkan ke kolom. Dalam hal ini, nilai 1. Sebaliknya, nilai yang tertera sama dengan nilai yang
Anda lihat sebelumnya. Dalam contoh terakhir ini terdapat opsi LOW_PRIORITY dalam klausa
INSERT. Sehingga, pernyataan ini tidak diproses dan klien akan terus menunggu sampai semua
koneksi klien telah selesai mengakses tabel yang dituju.
Sekarang kita akan menampilkan sebagian data dari tabel CD, misal IDCD, NamaCD, dan JumlahDisk,
+---+---+--- +
| IDCD | NamaCD | JumlahDisk |
+---+---+--- +
| 1 | Surgamu – Koleksi Ungu | 2 |
| 2 | Opick – Semesta Bertasbih | 1 |
+---+---+--- +
2 rows in set (0.00 sec)
Contoh lain yang lebih sederhana:
INSERT INTO CDs (NamaCD)
VALUES (‘GIGI ’);
Sedangkan berikut ini contoh untuk menambahkan banyak baris sekaligus:
INSERT INTO CDs (NamaCD, Copyright, JumlahDisk,
JumlahStok, JumlahCadangan, JumlahTersedia,
VALUES (‘Slank 99’, 1999, 1, 9, 0,
JumlahStok-JumlahCadangan, ‘Blues’),
(‘Metallica The Unforgiven’, 1990, 1, 14, 2,
JumlahStok-JumlahCadangan, ‘Metal’),
(‘Boomerang – Bawalah Aku’, 1988, 1, 6, 1,
JumlahStok-JumlahCadangan, ‘Rock’);
❯❱❲ ❱❳ ❨❩❬❭❭ ❪ ❬❫❴❫ ❬❵ ❩❛ ❬❜❫❝❫❫ ❬❛ ❩❵❞❫❡ ❩❪ ❬❝ ❪❴❨❩❬❫ ❨❢❫ ❣❴❫ ❬❤❫❝❫
Selain pernyataan INSERT untuk menambahkan data ke dalam tabel, Anda juga dapat menggunakan
pernyataan REPLACE. Perbedaan dengan INSERT adalah bagaimana nilai dalam kolom primary key
menambahkannya dalam baris tersebut. Pernyatan REPLACE akan menghapus baris lama dan
menambahkan baris yang baru.
Sintaksnya adalah:
Sedangkan berikut ini contoh untuk menambahkan banyak baris sekaligus:
<pernyataan replace>::=
REPLACE [LOW_PRIORITY | DELAYED] [INTO]
{< opsi nilai > | < opsi set > | < opsi select >
<opsi nilai>::=
< nama tabel > [(<nama kolom > [{, < nama kolom >}...])]
VALUES ({<ekspresi > | DEFAULT} [{, {< ekspresi > | DEFAULT}}...])
[{, ({<ekspresi > | DEFAULT} [{, {< ekspresi > | DEFAULT}}...])}...]
<opsi set>::=
<nama tabel>
SET < nama kolom >={<ekspresi> | DEFAULT}
[{, < nama kolom >={<ekspresi> | DEFAULT}}...]
<opsi select>::=
<nama tabel> [(<nama kolom> [{, < nama kolom >}...])]
<pernyataan select>
Contoh.
Terdapat definisi tabel sebagai berikut:
CREATE TABLE Inventori
(
IDProduk SMALLINT UNSIGNED NOT NULL PRIMARY KEY,
JumlahStok SMALLINT UNSIGNED NOT NULL,
JumlahPemesanan SMALLINT UNSIGNED NOT NULL,
Karakteristik utama dalam tabel Inventori adalah kolom IDProduk dikonfigurasi sebagaiprimary key. Dia tidak menggunakan opsi AUTO_INCREMENT, sehingga Anda harus menyediakan sebuah nilai
untuk kolom ini. Berikut ini contoh pernyataan REPLACE untuk menambahkan data pada setiap
kolom dalam tabel Inventori:
REPLACE LOW_PRIORITY INTO Inventori
VALUES (101, 20, 25, ‘2006-10-14’);
Anda dapat menampilkan nilai-nilai yang telah Anda tambahkan dalam tabel Inventori dengan
mengeksekusi perintah SELECT berikut:
SELECT * FROM Inventori
Misalkan Anda ingin menambahkan data baru sebagai berikut:
REPLACE LOW_PRIORITY INTO Inventori
VALUES (101, 10, 25, ‘2006-10-16’);
Dalam pernyataan tersebut juga disertakan nilai 101. Hasilnya, baris yang asli dengan nilai IDProduk
tersebut akan dihapus dan baris baru akan ditambahkan.
✐❥❦ ❧♠♥♦ ♣qrst ♠rstsrs✉s ❧rst s✈s ✇♠❧① ✇② ✉
Pernyataan utama yang digunakan untuk memodifikasi data dalam database MySQL adalah
pernyataan UPDATE. Sintaksnya adalah sebagai berikut :
<pernyataan update>::=
UPDATE [LOW_PRIORITY] [IGNORE]
<single table update> | <joined table update>
<single table update>::=
SET <nama kolom>=<ekspresi> [{, <nama kolom>=<ekspresi>}...]
[WHERE <definisi where>]
[ORDER BY <nama kolom> [ASC | DESC] [{, <nama kolom> [ASC | DESC]}...]]
[LIMIT <jumlah baris>]
<joined table update>::=
<nama tabel> [{, <nama tabel>}...]
SET <nama kolom>=<ekspresi> [{, <nama kolom>=<ekspresi>}...]
[WHERE <definisi where>]
Baris pertama dari sintaks berisi kata kunci perintah UPDATE bersamaan dengan opsi LOW_PRIORITY
dan IGNORE, keduanya seperti yang Anda lihat pada pernyataan INSERT. Anda sebaiknya
menggunakan opsi LOW_PRIORITY ketika Anda ingin menunda eksekusi pernyataan UPDATE sampai
tidak ada lagi koneksi klien yang sedang mengakses tabel target. Anda sebaiknya menggunakan opsi
IGNORE jika Anda ingin update dilanjutkan meskipun ditemukan nilai duplikat padaprimary keydan indeksunique. (Baris dengan nilai duplikat tidak diupdate).
③④⑤⑥ ⑦⑧⑨⑩❶ ④❶ ⑩❷④❸❶⑦⑤⑥⑥ ⑩ ❸(SINGLE TABLE)
Untuk mengupdate tabel tunggal dalam database MySQL, dimana tidak ada kondisi join yang diambil
ke dalam akun untuk melakukan peng-update-an, Anda sebaiknya membuat pernyataan UPDATE
yang menggunakan alternatif <single table update>, dimana ditunjukkan sintaks berikut ini :
<single table update>::=
<nama tabel>
SET <nama kolom>=<ekspresi> [{, <nama kolom>=<ekspresi>}...]
[WHERE <definisi where>]
[ORDER BY <nama kolom> [ASC | DESC] [{, <nama kolom> [ASC | DESC]}...]]
[LIMIT <jumlah baris>]
Sebagaimana terlihat pada sintaks, Anda harus menspesifikasikan nama tabel dan klausa SET. Klausa
SET meliputi, minimal, sebuah nama kolom dan ekspresi yang berhubungan, dihubungkan dengan
menyertakan lebih dari satu kolom, Anda harus memisahkan pasangan kolom/ekspresi dengan
koma.
❹❺❻❼ ❺❽❾
Membuat tabel Buku.
CREATE TABLE Buku
(
IDBuku SMALLINT NOT NULL PRIMARY KEY,
NamaBuku VARCHAR(40) NOT NULL,
Stok SMALLINT NOT NULL
)
ENGINE=INNODB;
Memasukkan data ke dalam tabel Buku.
INSERT INTO Buku
VALUES (101, ‘Noncomformity: Writing on Writing’, 12),
(102, ‘The Shipping News’, 17),
(103, ‘Hell\’s Angels’, 23),
(104, ‘Letters to a Young Poet’, 32),
(105, ‘A Confederacy of Dunces’, 6),
(106, ‘One Hundred Years of Solitude’, 28);
Tabel berikut adalah tabel Pembelian, yang menyertakan foreign key yang mereferensi ke tabel Buku.
CREATE TABLE Pembelian
(
IDPembelian SMALLINT NOT NULL PRIMARY KEY,
IDBuku SMALLINT NOT NULL,
Kuantitas TINYINT (40) NOT NULL DEFAULT 1,
TanggalBeli TIMESTAMP,
FOREIGN KEY (IDBuku) REFERENCES Buku (IDBuku)
ENGINE=INNODB;
Memasukkan data ke dalam tabel Pembelian.
INSERT INTO Pembelian
VALUES (1001, 103, 1, ‘2006-10-12 12:30:00’),
(1002, 101, 1, ‘2006-10-12 12:31:00’),
(1003, 103, 2, ‘2006-10-12 12:34:00’),
(1004, 104, 3, ‘2006-10-12 12:36:00’),
(1005, 102, 1, ‘2006-10-12 12:41:00’),
(1006, 103, 2, ‘2006-10-12 12:59:00’),
(1007, 101, 1, ‘2006-10-12 13:01:00’),
(1008, 103, 1, ‘2006-10-12 13:02:00’),
(1009, 102, 4, ‘2006-10-12 13:22:00’),
(1010, 101, 2, ‘2006-10-12 13:30:00’),
(1011, 103, 1, ‘2006-10-12 13:32:00’),
(1012, 105, 1, ‘2006-10-12 13:40:00’),
(1013, 106, 2, ‘2006-10-12 13:44:00’),
(1014, 103, 1, ‘2006-10-12 14:01:00’),
(1015, 106, 1, ‘2006-10-12 14:05:00’),
(1016, 104, 2, ‘2006-10-12 14:28:00’),
(1017, 105, 1, ‘2006-10-12 14:31:00’),
(1018, 102, 1, ‘2006-10-12 14:32:00’),
(1019, 106, 3, ‘2006-10-12 14:49:00’),
(1020, 103, 1, ‘2006-10-12 14:51:00’);
Perhatikan bahwa nilai-nilai yang ditambahkan ke kolom IDBuku meliputi hanya nilai-nilai yang
terdapat dalam kolom IDBuku pada tabel Buku. Kolom IDBuku di Pembelian merupakan kolom yang
mereferensi/mengkait, dan kolom IDBuku di tabel Buku merupakan kolom yang direferensi/dikait.
Setelah membuat tabel dan menambahkan data pada tabel-tabel tersebut, Anda dapat
memodifikasi datanya. Contoh:
UPDATE Buku
Dalam pernyataan ini karena tidak kondisi khusus yang harus dipenuhi, berarti akan mengubah
seluruh nilai dari kolom Stok ditambahkan dengan 10.
Sedangkan untuk memodifikasi data dengan memnuhi kondisi tertentu, Anda bisa
menambahkannya dengan klausa WHERE.
UPDATE Pembelian
SET Kuantitas=2
WHERE IDPembelian=1001;
Dalam pernyataan di atas berarti akan mengupdate kolom Kuantitas menjadi 2 dimana IDPembelian
= 1001.
UPDATE Pembelian
SET Kuantitas=Kuantitas+1
WHERE IDPembelian=1001;
Sedangkan dalam pernyataan di atas, baris dengan IDPembelian = 1001, nilai dari kuantitasnya yang
lama akan ditambahkan dengan 1.
UPDATE LOW_PRIORITY Buku
SET Stok=Stok+10
WHERE Stok<30;
Setiap rekod/baris pada tabel Buku yang mempunyai Stok lebih kecil dari 30 akan ditambah dengan
10.
UPDATE Pembelian
SET Kuantitas=Kuantitas+1
WHERE IDBuku=103
ORDER BY TanggalPembelian DESC
Mengupdate tabel Pembelian yang mempunyai IDBuku = 103, dimana nilai Kuantitas ditambah 1.
Diurutkan berdasarkan TanggalPembelian secara DESCENDING pada 5 baris pertama.
❿➀➁➂ ➃➄➅➆➇ ➀➇ ➆➈➀➉JOIN (JOINED TABLE)
Dalam contoh pernyataan UPDATE sebelumnya Anda telah melihat bahwa update hanya dilakukan
pada tabel-tabel secara individual tanpa menjoinkannya dengan tabel lain. Meskipun tabel-tabel
berisiforeign keyyang direferensi/dikait oeh tabel lain, Anda tidak menspesifikasikan kondisino join
dalam pernyataan UPDATE.
Sintaksnya adalah sebagai berikut:
<joined table update>::=
<nama tabel> [{, <nama tabel>}...]
SET <nama kolom>=<ekspresi> [{, <nama kolom>=<ekspresi>}...]
[WHERE <definisi where>]
Contoh.
UPDATE Buku, Pembelian
SET Buku.Stok = Buku.Stok - Pembelian.Kuantitas
WHERE Buku.IDBuku= Pembelian.IDBuku
AND Pembelian.IDPembelian=1002;
Dalam pernyataan di atas berarti, mengupdate tabel Buku, dimana kolom Stok yang baru merupakan
hasil pengurangan kolom Stok yang lama dengan kolom Kuantitas pada tabel Pembelian dengan
syarat IDBuku di tabel Buku sama dengan IDBuku di tabel Pembelian dan IDPembelian di tabel
Pembelian = 1002.
Lihatlah pada pernyataan di atas. Dalam klausa UPDATE disertakan nama dari kedua tabel yaitu Buku
dan Pembelian. Meskipun Anda hanya melakukan peng-update-an pada tabel Buku, Anda harus
Klausa SET pada pernyataan ini menggunakan nama kolom qualified untuk memberikan ekspresi pada kolom Stok. Sebuah nama kolomqualifiedadalah didahului oleh nama tabel dan sebuah tanda titik. Hal ini mengijinkan MySQL (dan Anda) untuk membedakan antara kolom-kolom pada tabel
yang berbeda-beda yang mempunyai nama yang sama. Misal, kolom pertama (Buku.Stok) menunjuk
pada kolom Stok pada tabel Buku.
Berikut ini contoh mengupdate tabel join dengan banyak nilai sekaligus:
UPDATE Buku, Pembelian
SET Pembelian.Kuantitas = Pembelian.Kuantitas + 2,
Buku.Stok= Buku.Stok - 2
WHERE Buku.IDBuku= Pembelian. IDBuku
AND Pembelian.IDPembelian = 1002;
➊➋➌ ➍➎➏➐ ➑➒➓➔→➣➒↔➒➣➒↕➒ ➍➣ ➒↔➒➙➒→➎➍➛→➜↕
Sintaksnya adalah sebagai berikut:
<pernyataan delete>::=
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
{<single table delete> | <from join delete> | <using join delete>
<single table delete>::=
FROM <nama tabel>
[WHERE <definisi where>]
[ORDER BY <nama kolom> [ASC | DESC] [{, <nama kolom> [ASC | DESC]}...]]
[LIMIT <jumlah baris>]
<from join delete>::=
<nama tabel>[.*] [{, <nama tabel>[.*]}...]
FROM <nama tabel> [{, <nama tabel>}...]
<using join delete>::=
FROM <nama tabel>[.*] [{, <nama tabel>[.*]}...]
USING <nama tabel> [{, <nama tabel>}...]
[WHERE <definisi where>]
Contoh menghapus pada tabel tunggal.
DELETE FROM Pembelian
DELETE FROM Pembelian
WHERE IDPembelian=1020;
DELETE LOW_PRIORITY FROM Pembelian
WHERE IDBuku=103
ORDER BY TanggalPembelian DESC
LIMIT 1;
Menghapus padaJoined Tables.
DELETE Pembelian.*
FROM Buku, Pembelian
WHERE Buku.IDBuku = Pembelian.IDBuku
BAB
VI
SELEKSI TABEL
Satu hal fungsi terpenting yang harus ada dalam RDBMS yaitu dalam mengakses data yang ada
dalam tabel di sistem. Fungsi yang disediakan dalam MYSQL yaitu fungsi SELECT yang berguna dalam
mengakses data baik secara kolom maupun baris, dari satu tabel maupun lebih. Ketika anda
megeksekusi fungsi tersebut, maka fungsi tersebut akan mengeluarkan berupahasil yang kita
butuhkan. Dalam hal ini kita akan belajar tentang :
1. Mengetahui cara membuat statement yang mengandung informasi seluruh isi tabel maupun
spesifik tabel.
2. Menambahkan fungsi optional pada statement SELECT.
3. Menambahkan clausa pilihan pada statement SELECT yang membatasi baik dari baris,group,
dan lainnya.
VI.1 SELECT statement
Fungsi SELECT merupakan fungsi yang sering digunakan. Fungsi ini dapat memberikan hasil
berupa data yang ada pada tabel baik berupa baris maupun kolom. Dibawah ini merupakan
syntax SELECT pada MYSQL :
<select statement>::=
SELECT
[<select option> [<select option>...]]
{* | <select list>}
[<export definition>]
[
FROM <table reference> [{, <table reference>}...]
[WHERE <expression> [{<operator> <expression>}...]]
[GROUP BY <group by definition>]
[HAVING <expression> [{<operator> <expression>}...]]
[ORDER BY <order by definition>]
[LIMIT [<offset>,] <row count>]
[PROCEDURE <procedure name> [(<argument> [{, <argument>}...])]]
[{FOR UPDATE} | {LOCK IN SHARE MODE}]
]
{ALL | DISTINCT | DISTINCTROW}
| HIGH_PRIORITY
| {SQL_BIG_RESULT | SQL_SMALL_RESULT}
| SQL_BUFFER_RESULT
| {SQL_CACHE | SQL_NO_CACHE}
| SQL_CALC_FOUND_ROWS
| STRAIGHT_JOIN
<select list>::=
{<column name> | <expression>} [[AS] <alias>]
[{, {<column name> | <expression>} [[AS] <alias>]}...]
<export definition>::=
INTO OUTFILE ‘<filename>’ [<export option> [<export option>]]
| INTO DUMPFILE ‘<filename>’
<export option>::=
{FIELDS
[TERMINATED BY ‘<value>’]
[[OPTIONALLY] ENCLOSED BY ‘<value>’]
[ESCAPED BY ‘<value>’]}
| {LINES
[STARTING BY ‘<value>’]
[TERMINATED BY ‘<value>’]}
<table reference>::=
<table name> [[AS] <alias>]
[{USE | IGNORE | FORCE} INDEX <index name> [{, <index name>}...]]
<group by definition>::=
<column name> [ASC | DESC]
[{, <column name> [ASC | DESC]}...]
[WITH ROLLUP]
<order by definition>::=
<column name> [ASC | DESC]
[{, <column name> [ASC | DESC]}...]
Dilihat dari syntax yang diatas, beberapa element terdapat dalam fungsi SELECT. Beberapa
Jika dilihat dari syntax :
SELECT
{* | <select list>}
<select list> mengandung clausa-clausa/ ekspresi untuk menampilkan kolom yang diinginkan.
Secara syntax isi <select list>seperti ini :
<select list>::=
{<column name> | <expression>} [[AS] <alias>]
[{, {<column name> | <expression>} [[AS] <alias>]}...]
Seperti yang dijelaskan diatas bahwa minimal terdapat satu clausa pada fungsi SELECT. Jika
terdapat lebih dari satu clausa,pembatasnya diberi tanda koma(,). Pada ekspresi itu juga dapat
diberi alias yang dapat digunakan pada fungsi SELECT lainnya. Clausa SELECT hanya bisa
digunakan pada fungsi SELECT dan data belum bisa dieksekusi sebelum mengisi nama tabel
setelah clausa FROM. Clausa dapat diisi lebih dari satu tabel.
Inilah syntax pada FROM nya:
FROM <table reference> [{, <table reference>}...]
<table reference>::=
<table name> [[AS] <alias>]
[{USE | IGNORE | FORCE} INDEX <index name> [{, <index name>}...]]
Untuk lebih jelasnya kita akan masuk pada contoh berikut :
CREATE TABLE Angkot
(
AngkotID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
NamaSupir VARCHAR(50) NOT NULL,
Jurusan VARCHAR(50) NOT NULL,
JenisMobil ENUM (‘Toyota ‘,’Daihatsu’) NOT NULL,
JumlahMobil INT(2) NOT NULL,
MaxPenumpang INT(2) NOT NULL,
DataUpdate TIMESTAMP NOT NULL
);
Kemudian kita akan memasukkan datanya
INSERT INTO Angkot (NamaSupir, Jurusan, JenisMobil, JumlahMobil,
MaxPenumpang,TahunAktif )
VALUES ( “Adi”,”Cicaheum-Ciroyom”,’Toyota’,4,9,1990),
( “Ari”,”Dago-Kelapa”,’Toyota’,6,7,1995),
( “Andi”,”Cicaheum-Ciroyom”,’Daihatsu’,10,4,1996),
( “Budi”,”Dago-Kelapa”,’Daihatsu’,3,7,1989),
( “Cecep”,”Kelapa-Ledeng”,’Toyota’,9,8,1997),
( “Dika”,”Kalapa-Ledeng”,’Daihatsu’,5,6,1986),
( “Edi”,”Sadangserang-Caringin”,’Toyota’,4,8,1991),
( “Eka”,”Sadangserang-Caringin”,’Daihatsu’,5,9,1988);
Setelah data telah masuk dalam tabel,kita akan mencoba untuk memeriksa pakah data yang
telah kita masukkan tadi sudah ada atau tidak,yaitu dengan cara menjalankan statement
berikut :
SELECT * FROM Angkot ;
Penjelasan :
SELECT <’ * ‘ menandakan semua data pada tabel akan ditampilkan > FROM <nama tabel> ;
Dan data yang akan ditampilkan setelah di eksekusi adalah :
+---+---+---+---+---+---+---+---+
| AngkotID | NamaSupir | Jurusan | JenisMobil | JumlahMobil | MaxPenumpang | TahunAktif | DataUpdate |
+---+---+---+---+---+---+---+---+ | 1 | Adi | Cicaheum-Ciroyom | Toyota | 4 | 9 | 1990 | 2009-12-30 21:55:28 | | 2 | Ari | Dago-Kelapa | Toyota | 6 | 7 | 1995 | 2009-12-30 21:55:28 | | 3 | Andi | Cicaheum-Ciroyom | Daihatsu | 10 | 4 | 1996 | 2009-12-30 21:55:28 | | 4 | Budi | Dago-Kelapa | Daihatsu | 3 | 7 | 1989 | 2009-12-30 21:55:28 | | 5 | Cecep | Kelapa-Ledeng | Toyota | 9 | 8 | 1997 | 2009-12-30 21:55:28 | | 6 | Dika | Kalapa-Ledeng | Daihatsu | 5 | 6 | 1986 | 2009-12-30 21:55:28 | | 7 | Edi | Sadangserang-Caringin | Toyota | 4 | 8 | 1991 | 2009-12-30 21:55:28 | | 8 | Eka | Sadangserang-Caringin | Daihatsu | 5 | 9 | 1988 | 2009-12-30 21:55:28 | +---+---+---+---+---+---+---+---+
Secara umum, data yang ada pada tabel akan selalu berubah dan memiliki data yang banyak.
Jika kita hanya memrlukan beberapa berdasarkan kolomnya (AngkotID,
NamaSupir,Jurusan,JenisMobil, JumlahMobil, MaxPenumpang, TahunAktif, DataUpdate),
maka perintahnya sbb :
SELECT AngkotID, Jurusan, JenisMobil FROM Angkot ;
Penjelasan :
SELECT <kolom pada tabel yang akan ditampilkan> FROM <nama tabel> ;
Dan jika di eksekusi maka tampilannya :
+---+---+---+
| AngkotID | Jurusan | JenisMobil |
+---+---+---+
| 1 | Cicaheum-Ciroyom | Toyota |
| 2 | Dago-Kelapa | Toyota |
| 3 | Cicaheum-Ciroyom | Daihatsu |
| 4 | Dago-Kelapa | Daihatsu |
| 5 | Kelapa-Ledeng | Toyota |
| 6 | Kalapa-Ledeng | Daihatsu |
| 7 | Sadangserang-Caringin | Toyota |
| 8 | Sadangserang-Caringin | Daihatsu |
+---+---+---+
8 rows in set (0.00 sec)
Adapun pengunaan alias pada fungsi SELECT yaitu sbb :
SELECT NamaSupir AS Supir, Jurusan AS Tujuan FROM Angkot ;
Penjelasan :
SELECT <nama kolom pada tabel> AS <nama kolom yg baru> FROM <nama tabel>
Dan jika di eksekusi maka tampilannya :
+---+---+
| Supir | Tujuan |
+---+---+
| Ari | Dago-Kelapa |
| Andi | Cicaheum-Ciroyom |
| Budi | Dago-Kelapa |
| Cecep | Kelapa-Ledeng |
| Dika | Kalapa-Ledeng |
| Edi | Sadangserang-Caringin |
| Eka | Sadangserang-Caringin |
+---+---+
8 rows in set (0.05 sec)
Mengunakan Ekspresi dalam fungsi SELECT
Pada ekspresi ini, fungsi SELECT dapat dikombinasi dengan operator(aritmathic),nama kolom
dan fungsi lainnya.
Untuk lebih lengkapnya seperti contoh berikut :
SELECT NamaSupir , JumlahMobil + MaxPenumpang AS Total FROM Angkot ;
Penjelasan :
SELECT < jumlah antar 2 kolom yang memiliki jenis yang sama > AS <nama kolom baru>
FROM <nama tabel> ;
Dan jika di eksekusi maka tampilannya :
+---+---+
| NamaSupir | Total |
+---+---+
| Adi | 13 |
| Ari | 13 |
| Andi | 14 |
| Budi | 10 |
| Cecep | 17 |
| Dika | 11 |
| Edi | 12 |
| Eka | 14 |
8 rows in set (0.00 sec) Kolom Total terbentuk dari 2 kolom JumlahMobil dan MaxPenumpang.
Ekspresi diatas dapat dikombinasikan lebih dari dua variabel (kolom). Oleh karena itu
kombinasi ini dapat digunakan sesuai kebutuhan yang ada.
Menggunakan variabel langsung pada SELECT statement
Fungsi ini merupakan cara lain dalam menggantikan variabel kolom. Secara syntax yaitu :
@<variable name>:={<column name> | <expression>} [[AS] <alias>]
Contohnya :
SELECT @Supir:=NamaSupir, @Tujuan:=Jurusan
FROM Angkot
WHERE TahunAktif= 1991;
Penjelasan :
SELECT @<nama variabel><” := “ titik dua( : ) dan sama dengan ( = ) ><nama variabel baru>
FROM <nama tabel>
WHERE <kolom tabel kondisi>;
Fungsi ini sama dengan fungsi AS yang menggantikan nama kolom. Jadi penggunaannya
disesuaikan menurut keperluan.
Menggunakan statement SELECT untuk menampilkan nilai
Contoh ini menampilkan fungsi SELECT yang lain, sehingga tidak hanya berpatokan pada
contoh yang ada sebelumnya.
SELECT 1+3, ‘CD Inventory’, NOW() AS ‘Date/Time’;
Penjelasan :
SELECT <merupakan perhitungan sesuai elementnya>, <list dari elemennya>, <fungsi waktu>;
Pada saat membuat fungsi SELECT, clausa SELECT dapat digunakan lebih dari satu. Adapun
syntaxnya sebagai berikut:
<select option>::=
{ALL | DISTINCT | DISTINCTROW}
| HIGH_PRIORITY
| {SQL_BIG_RESULT | SQL_SMALL_RESULT}
| SQL_BUFFER_RESULT
| {SQL_CACHE | SQL_NO_CACHE}
| SQL_CALC_FOUND_ROWS
| STRAIGHT_JOIN
Untuk lebih jelasnya,kita akan implementasikan :
SELECT ALL Jurusan , JenisMobil
FROM Angkot;
Penjelasan :
SELECT ALL <nama - nama kolom>
FROM <nama tabel>;
Kegunaannya yaitu menampilkan semua data yang ada pada jurusan dan jenis
mobil,walaupun datanya banyak yang sama dan yang ditampilkan semua data yang ada pada
kolom tersebut. Hasilnya sebagai berikut
+---+---+
| Jurusan | JenisMobil |
+---+---+
| Cicaheum-Ciroyom | Toyota |
| Dago-Kelapa | Toyota |
| Cicaheum-Ciroyom | Daihatsu |
| Dago-Kelapa | Daihatsu |
| Kelapa-Ledeng | Toyota |
| Kalapa-Ledeng | Daihatsu |
| Sadangserang-Caringin | Toyota |
+---+---+
8 rows in set (0.01 sec)
SELECT DISTINCT Jurusan , JenisMobil
FROM Angkot;
Penjelasan :
SELECT ALL <nama - nama kolom>
FROM <nama tabel>;
Kegunaannya yaitu menampilkan semua data yang ada pada jurusan dan jenis mobil,serta
data yang ditampilkan tidak ada yang sama untuk mengurangi duplikasi.. Hasilnya sebagai
berikut :
+---+---+
| Jurusan | JenisMobil |
+---+---+
| Cicaheum-Ciroyom | Toyota |
| Dago-Kelapa | Toyota |
| Cicaheum-Ciroyom | Daihatsu |
| Dago-Kelapa | Daihatsu |
| Kelapa-Ledeng | Toyota |
| Kalapa-Ledeng | Daihatsu |
| Sadangserang-Caringin | Toyota |
| Sadangserang-Caringin | Daihatsu |
+---+---+
8 rows in set (0.01 sec)
VI.2 Clausa WHERE
Clausa WHERE digunakan untuk membuat satu atau lebih kondisi pada SELECT statement.
Secara syntax adalah sebagai berikut :
Jika dilihat dari syntaxnya maka minimal kondisi yang ada yaitu satu kondisi. Dan jika terdapat
lebih dari satu kondisi maka kondisi-kondisi tersebut harus saling terhubung dengan fungsi
AND atau OR.
Sekarang kita lihat contohnya :
SELECT NamaSupir, Jurusan
FROM Angkot
WHERE TahunAktif= 1991;
Penjelasan:
SELECT <nama kolom> FROM <nama tabel>
WHERE <kondisi >;
Pada contoh ini data yang akan ditampilkan berdasarkan tahunaktif yang telah dispesifikkan
yaitu tahun 1991. Kondisi ini bisa dirubah sesuai dengan penggunaaannya.
Inilah hasilnya :
+---+---+
| NamaSupir | Jurusan |
+---+---+
| Edi | Sadangserang-Caringin |
+---+---+
1 row in set (0.00 sec)
Dan inilah contoh untul multiple condition
SELECT NamaSupir, Jurusan
FROM Angkot
WHERE TahunAktif= 1989 AND NamaSupir =”Budi”;
Inilah hasilnya :
+---+---+
| NamaSupir | Jurusan |
| Budi | Dago-Kelapa |
+---+---+
1 row in set (0.00 sec)
Fungsi clausa GROUP BY
Fungsi group by ini minimal terdiri dari satu kolom yang terdefinisi. Fungsi GROUP ini
digunakan untuk mengelompokan kolom-kolom berdsarkan urutan kolom yang telah
terdefinisi pada tabel. Dalam fungsi ini jjg dapat diataur baik secra ascending maupun
descending. Inilah syntax secar umumnya
GROUP BY <group by definition>
<group by definition>::=
<column name> [ASC | DESC]
[{, <column name> [ASC | DESC]}...]
[WITH ROLLUP]
Untuk lebih jelasnya kita lihat contoh berikut :
SELECT Jurusan, COUNT(*) AS Total
FROM Angkot
WHERE JenisMobil =‘Toyota’
GROUP BY Jurusan;
Penjelasan :
SELECT <nama kolom pilihan>, < menghitung total baris pada baris kolom yang dipilih> AS
Total
FROM <nama tabel>
WHERE <kondisi >
GROUP BY <kolom pilihan>;
Hasil yang akan diperoleh yaitu data yang akan ditampilkan berdasarkan gruop yang telah
+---+---+
| Jurusan | Total |
+---+---+
| Cicaheum-Ciroyom | 1 |
| Dago-Kelapa |