• Tidak ada hasil yang ditemukan

Materi Sistem Basis Data

N/A
N/A
Protected

Academic year: 2017

Membagikan "Materi Sistem Basis Data"

Copied!
169
0
0

Teks penuh

(1)

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.

(2)

(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

(3)

(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.

(4)

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.

(5)

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

(6)

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.

(7)

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

(8)

 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

(9)

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.

(10)

6. Klik install untuk memulai instalasi. Akan muncul layar Installing MySQL Server yang menyajikan kepada anda progress instalasi yang terjadi,

(11)

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:

(12)

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.

(13)

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

(14)

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.

(15)

7. Klik Finish. Panduan konfigurasi akan tertutup, dan MySQL siap untuk digunakan.

EDISI MYSQL SERVER

(16)

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

(17)

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

(18)

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

(19)

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.

(20)

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

(21)

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

(22)

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.

(23)

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

(24)

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:

(25)

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>::=

(26)

<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:

(27)

<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

(28)

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

(29)

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,

(30)

+---+---+--- +

| 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

(31)

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,

(32)

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>::=

(33)

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

(34)

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)

(35)

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

(36)

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

(37)

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

(38)

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>}...]

(39)

<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

(40)

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}]

]

(41)

{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

(42)

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,

(43)

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 | +---+---+---+---+---+---+---+---+

(44)

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 |

+---+---+

(45)

| 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 |

(46)

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>;

(47)

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 |

(48)

+---+---+

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 :

(49)

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 |

(50)

| 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

(51)

+---+---+

| Jurusan | Total |

+---+---+

| Cicaheum-Ciroyom | 1 |

| Dago-Kelapa |

Gambar

Tabel datalagu setelah di REPLACE
tabel novel.
tabel novel.
tabel. Untuk melakukan penguncian atau pengaturan agar tidak terjadi dirty reads,
+4

Referensi

Dokumen terkait

Mobilitas bu3an merupa3an sesuatu 5ang absolut 4an statis 4alam menentu3an 3emampuan untu3 ber7alan, tetapi mobilitas optimal merupa3an sesuatu 5ang

Mahasiswa memiliki hubungan yang baik dengan seluruh civitas akademika STMIK Bina Patria. Hubungan pertemanan antar mahasiswa juga terjalin sangat baik. Komunikasi

Namun di awal, Perpustakaan dimaksudkan sebagai bidang yang mengelola koleksi, tetapi kemudian bergeser atau ditambah dengan Teknologi Informasi, Layanan, Perilaku Informasi,

Hal tersebut mendorong peneliti mengambil judul artikel sebagai berikut “Meningkatkan Penguasaan Kosakata Bahasa Inggris Menggunakan Metode Game “Hangman” pada siswa kelas VIIIB

Apabila sensor aktif, maka slave akan mengirimkan data ke receiver master dan master akan menerima data dari slave untuk kemudian ditampilkan pada LCD dan

Penelitian ini bertujuan untuk mengungkap: (1) deskripsi Serat Wasitadarma; (2) transliterasi Serat Wasitadarma; (3) nilai moral yang ada pada Serat Wasitadarma; dan (4) relevansi

Kata ledam-ledum yang membawa maksud bunyi yang kuat secara berterusan sebagai contoh bunyi guruh, bom atau mercun.Kata dasar ledam atau ledum boleh berdiri sendiri dan membawa

29 Sapthagiri College of Engineering, No.8/2, Chikkasandra, Hesaraghatta Main Road, Yeshwanthpur, Bangalore North. Institute of Technology, Chennasandra, Bangalore South