• Tidak ada hasil yang ditemukan

IGOS Training Tool Kit RDBMS (Relational DataBase Management System): MySQL

N/A
N/A
Protected

Academic year: 2021

Membagikan "IGOS Training Tool Kit RDBMS (Relational DataBase Management System): MySQL"

Copied!
109
0
0

Teks penuh

(1)

IGOS Training Tool Kit 

“RDBMS (Relational 

DataBase Management 

(2)
(3)

I. Pengantar RDBMS

1.1 Pendahuluan

SQL(Structured Query Language) adalah bahasa query yang standard yang digunakan  sebagai   suatu   bahasa   sederhana   dan   dasar,     yang   memungkinkan   Anda   untuk  berkomunikasi   dengan   database,   membaca,   menulis,   dan   memperoleh   informasi   yang  berguna dari database. Meskipun sifatnya non­procedural, lebih mudah bekerja dengan  SQL daripada dengan kebanyakan bahasa pemrograman seperti PHP, PERL, Java dan lain­ lain, namun kadangkala menyulitkan untuk beberapa kasus yang rumit bagi mereka yang  baru   mengenal   SQL.   Perintah   atau  statement  SQL   yang   paling   sederhana   yang  memungkinkan seorang user dapat menampilkan atau memperoleh data dari suatu tabel  adalah   perintah   atau   statement   SELECT.   Sesuai   dengan   namanya,   dengan   perintah  SELECT seorang user dapat memilih data yang spesifik dari tabel untuk menampilkannya. Dengan   mengasumsikan   bahwa   tabel   dalam   database   Anda   memiliki   nama   tabel  'mahasiswa', dengan struktur tabel sebagai berikut:

Kemudian Anda jalankan query seperti ini:

(4)

1.2 SQL­92

SQL telah distandarisasi, dan versi saat ini mengacu pada SQL­92.   Beberapa database  yang   mendukung   SQL   seharusnya   menyesuaikan   dengan   standard   SQL   saat   ini.  Standarisasi   SQL   telah   mejadikan   SQL   sebagai     perangkat   atau  tool  istimewa   yang  digunakan dalam pengembangan dan desain web. Sebagian besar program atau software  untuk   pengembangan   aplikasi   web,   terutama   Allaire's   Cold   Fusion   dan   Macromedia  Dreamweaver   Ultradev,   mengandalkan   pada   SQL   atau   perintah­perintah   SQL   untuk  menghubungkan dan memperoleh   informasi dari database. Untuk informasi lebih detil  tentang SQL­92, kunjungi :  http://developer.mimer.se/documentation/html_82/Mimer_SQL_Reference_Manual/Intro_S QL_Stds3.html

1.3 Relational Databases

1.3.1 Relational vs. flat file databases

Flat flie database adalah suatu database yang didesain menyertakan suatu tabel tunggal.  Flat file database meletakkan seluruh data kedalam tabel tunggal, atau daftar, dengan  kolom­kolom yang  merepresentasikan seluruh parameter. Sebuah flat file bisa terdiri dari  banyak kolom, seringkali dengan duplikasi data  yang cenderung menyebabkan kerusakan  data  (data corruption). Jika Anda memutuskan untuk menggabungkan data diantara dua  flat file, maka Anda harus melakukan copy dan paste informasi yang relevan dari satu file  ke file yang lainnya. Disini tidak ada otomatisasi diantara dua flat file. Jika Anda memiliki  dua atau lebih flat file yang berisi data alamat klien, sebagai contoh, klien telah berpindah  alamat, maka Anda harus merubah secara manual alamat klien tersebut yang ada dalam  setiap flat file. Perubahan informasi dalam satu file tidak memiliki sangkut paut dengan  file   lainnya.   Flat   file   menawarkan     fungsionalitas   untuk   menyimpan   informasi,  memanipulasi   kolom­kolom,   mencetak   dan   menampilkan   informasi   yang   terformat,  pertukaran informasi dengan orang lain melalui email dan melalui internet. Beberapa flat  file   bisa   dikerjakan   pada   file­file   eksternal,   seperti   text   editor,   agar   memperluas  fungsionalitas dan mengatur informasi yang berhubungan.

(5)

Dilain   pihak,   suatu   Relational   database,   menggabungkan   tabel­tabel   dengan   berbagai  metode   untuk   dapat   berkerjasama.   Hubungan­hubungan   antar   tabel   data   dapat  dibandingkan,   disatukan,   dan   ditampilkan   dalam   form­form   database.   Sebagian   besar  relational database menawarkan fungsionalitas untuk berbagi (share) data:

 melalui jaringan  melalui internet  dengan laptop dan perangkat elektronik lainnya seperti palm pilots  Dengan software­software system yang lain Mendesain flat file database adalah sederhana, dan memerlukan sedikit pengetahuan desain  database. Flat file dapat dikembangkan dengan hanya menggunakan satu database engine.  Flat file dapat dibuat dalam relational database engine dengan tidak mengambil manfaat  atau keuntungan dari konsep­konsep desain relasional. Mendesain suatu relational database  memerlukan   perencanaan   yang   lebih   dari   pada   flat   file   database.   Dengan   flat   file,  menambah informasi sepertinya perlu dipertimbangkan. Dengan relational database, dapat  menyimpan data kedalam tabel­tabel sedemikian rupa sehingga hubungan antar tabel dapat  dimengerti. Membangun suatu relational  database sangat  tergantung pada  kemampuan  Anda untuk menetapkan suatu model relasional. Model harus benar­benar menggambarkan  penuh   bagaimana   data   diorganisir   dalam   ketentuan   struktur   data,   intergriti,   query,  manipulasi, dan penyimpanan.

Relational database memungkinkan user­user untuk mendefinisikan kolom­kolom record  tertentu sebagai key atau index, melakukan pencarian, menghubungkan record­record antar  tabel dan menetapkan batasan­batasan integritas. Query­query pencarian lebih cepat dan  lebih akurat jika berdasarkan nilai­nilai yang telah diindex. Record­record tabel dapat  dengan   mudah   dihubungkan   dengan   nilai­nilai   yang   telah   diindex.   Batasan­batasan  integritas dapat ditetapkan untuk menjamin bahwa hubungan antar tabel tersebut syah. Jika  Anda dapat membuat sebuah hubungan satu­ke­banyak (one­to­many) dalam tabel­tabel  data Anda , sebaiknya Anda menggunakan relational database karena flat file tidak cukup  untuk menangani seluruh pemrosesan data yang Anda butuhkan.

Relational database menawarkan proses reporting yang lebih baik, dengan berbagai report  generator  yang  memfilter   dan  menampilkan  kolom­kolom  pilihan.  Relational  database  menawarkan   kemampuan   membuat   module­module   reporting   Anda   sendiri.   Sebagian  besar relational database juga menawarkan kemampuan mengimpor dan mengekspor data  dari software lainnya.

(6)

Terdapat   tiga   sistem   relational   database   yang   utama:   proprietary,     open   source,   dan  embedded.   Relational   database   yang   proprietary   biasanya   memerlukan   penggunaan  bahasa­bahasa pengembangan yang juga  bersifat proprietary guna menyempurnakan SQL.  Sebagai contoh   MS Access yang menggabungkan visual basic dengan SQL. Database­ database  open   source,   seperti   MySQL,   didistribusikan   dengan   gratis  agar   mendorong  pengembangan user. Embedded dan relational database dikemas sebagai bagian dari paket­ paket software lainnya, seperti paket­paket software tax­preparation. Vendor mensuplai  database, dan seluruh perlengkapan­perlengkapan manipulasi yang berhubungan, untuk  mengontrol   struktur   database.   Database­database   ini   biasanya   disertakan   oleh  perlengkapan­perlengkapan yang mana menyediakan audit bekas­bekas transaksi.  

1.3.2 Normalisasi database

Jika   Anda   bekerja   dengan   database,   maka   Anda   harus   familiar   dengan   istilah  “normalisasi”.  Mungkin orang sering bertanya kepada Anda, “apakah databasenya sudah  dinormalisasi ?” atau, “apakah databasenya dalam BCNF ?” . Namun dengan mengetahui  prinsip­prinsip   dari   normalisasi,   dan   dengan   menerapkannya   pada   tugas­tugas   desain  database Anda maka semuanya itu bukanlah hal yang sulit, dan   dapat meningkatkan  performa DBMS Anda.

Normalisasi   adalah   suatu   proses   mengefisiensikan   pengorganisasian   data   dalam   suatu  database. Ada  dua  tujuan dari proses normalisasi:

 Untuk mengeliminasi atau menghilangkan duplikasi data (menyimpan data yang 

sama kedalam lebih dari satu tabel)

 Untuk menjamin bahwa ketergantungan data dapat dimengerti atau masuk akal 

(hanya menyimpan data yang berhubungan dalam suatu tabel)

Kedua   tujuan   normalisasi   tersebut   mengurangi   jumlah   konsumsi   space   database,   dan  menjamin bahwa data secara logika disimpan.

Komunitas   database   telah   mengembangkan   petunjuk­petunjuk   untuk   menjamin   bahwa  database dinormalisasi. Itu semua diacu sebagai bentuk­bentuk normal atau Nornal Forms  (NF) dan serangkain petunjuk tersebut diberi nomor dari nomor satu (bentuk normalisasi  yang paling rendah) sampai nomor lima (bentuk normal kelima atau 5NF). Dalam aplikasi­ aplikasi praktis,   Anda akan sering menemukan 1NF, 2Nf, dan 3NF kadang bersama  dengan 4 NF. Bentuk normal kelima sangat   jarang ditemukan. Bentuk normal kesatu  (1NF) menentukan aturan­tauran yang paling dasar untuk suatu pengaturan database: ● Menghilangkan duplikasi kolom­kolom dalam tabel yang sama

● Membuat   tabel   terpisah   untuk   setiap   grup   data   yang   berhubungan   dan 

(7)

kolom  yang unik (primary key)

Bentuk   normal   kedua   (2NF)   selanjutnya   memusatkan   perhatian   pada   konsep  menghilangkan duplikasi data:

● Menemukan semua syarat­syarat bentuk normal kesatu

● Hilangkan sub­set data yang diterapkan pada beberapa baris dari sebuah tabel dan 

letakkan kedalam tabel terpisah

● Buatlah   relasi   antara   tabel­tabel   baru   dan   tabel­tabel   pendahulunya   melalui 

penggunaan Foreign Keys Bentuk normal ketiga (3NF) melakukan satu langkah besar selanjutnya: ● Menemukan semua syarat­syarat bentuk normal kedua ● Menghilangkan kolom­kolom yang tidak secara langsung tergantung pada primary  key Terakhir, bentuk normal keempat (4NF) memiliki satu syarat tambahan: ● Menemukan semua syarat­syarat bentuk normal ketiga

● Suatu   relasi   adalah   dalam   bentuk   normal   keempat  (4NF)   jika   relasi   itu   tidak 

memiliki ketergantungan banyak nilai (value)

Ingat, petunjuk normalisasi ini adalah bersifat komulatif. Untuk suatu database menjadi  bentuk   normal   kedua   (2NF),   pertama   harus   terpenuhi   dahulu   seluruh   kriteria   bentuk  normal kesatu (1NF).

1.3.3 Relasi Antar Tabel

Selain Anda mengetahui bentuk normal hal lain yang perlu Anda pahami adalah tipe­tipe  relasi   antar   tabel.   Tipe   relasi   amat   penting   untuk   menjaga   keutuhan   Database   Anda.  Ringkasnya ada 3 tipe relasi yaitu relasi satu­ke­satu, relasi satu­ke­banyak dan relasi  banyak­ke­banyak. 1.3.3.1 Relasi satu­ke­banyak (One­to­Many) Relasi disebut relasi satu ke banyak apabila satu nilai pada sebuah kolom merujuk ke dua  atau lebih kolom pada tabel yang lain, contoh  sebagai berikut : Tabel A : perusahaan_ienisusaha

id_perusahaan nama_perusahaan id_jenis

1 Astra 1

2 Festo 1

(8)

4 Nurul Fikri Cipta Inovasi 2 5 HAFANA 2 6 Telkom 3 Tabel B : jenisusaha id_jenis nama_jenis 1 Manufaktur 2 Teknologi Informasi 3 Telekomunikasi Perhatikan bahwa id_jenis pada tabel perusahaan_jenisusaha merujuk pada id_jenis pada  tabel jenisusaha untuk mengetahui atau memperoleh  nama jenis usaha  (nama_jenis). 1.3.3.2 Relasi satu­ke­satu (One­to­One) Relasi satu­ke­satu terjadi apabila satu baris pada suatu tabel hanya merujuk ke satu baris  di tabel lainnya, contoh sebagai berikut: Tabel A : eksekutif id_eksekutif nama 1 Akhtar Naufal Shagufta 2 Hana Fahmida Zahra 3 Umar Fawaz Tabel B : asisten

id_asisten nama_asisten id_eksekutif

1 Ayu 1

2 Fitria 2

3 Sandra 3

Perhatikan id_eksekutif pada tabel eksekutif tepat berelasi satu ke tabel asisten pada kolom  id_eksekutif.

(9)

1.3.3.3 Relasi banyak­ke­banyak (Many­to­Many)

Relasi banyak­ke­banyak terjadi bila beberapa baris pada sebuah tabel berelasi ke beberapa  baris   pada   tabel   yang   lain.   Jika   terjadi   kasus   seperti   ini   Anda   tidak   dapat  merepresentasikan relasi ini hanya dengan   dua tabel Anda memerlukan satu tabel lain  yang mewakili relasi banyak­ke­banyak itu. Sebagai contoh Anda ingin merelasikan tabel  surat_berita   dan   tabel   klien,   pada   kasus   ini   beberapa   klien   dapat   memilih   beberapa  surat_berita sehingga satu surat_berita pun dapat merujuk ke beberapa klien maka untuk  menggambarkan relasi seperti itu gunakan satu tabel tambahan. Sehingga hasilnya adalah  seperti berikut : Tabel A : klien id_klien nama_klien 1 Akhtar Naufal Shagufta 2 Hana Fahmida Zahra 3 Umar Fawaz Tabel B : surat_berita id_sb nama_sb 1 Komputer 2 Politik 3 Populer Tabel C : klien_surat_berita

id_ksb id_klien id_sb

1 1 1 2 1 3 3 2 1 4 2 3 5 3 2 6 3 3

(10)
(11)

II. Pengantar  MySQL

2.1 Pendahuluan

MySQL merupakan Database Management System SQL open source yang paling populer,  yang dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah  sebuah perusahaan komersial, yang didirikan oleh para pengembang MySQL. MySQL AB  adalah perusahaan open source generasi kedua yang menyatukan nilai­nilai dan metodologi  open source dengan suatu model bisnis yang  sukses. Berikut ini fitur­fitur utama MySQL:  MySQL adalah  relational database management system  Software MySQL adalah open source  Database server MySQL sangat cepat, reliable, dan mudah digunakan  Database server cMySQL bekerja dalam client/server atau embedded system 

2.2 Penyesuaian dengan standar­standar SQL

MySQL   mendukung  entry­level  SQL­92.  Entry­level  berisi  serangkaian  keistimewaan­ keistimewaan   yang   mendefinisikan     dasar­dasar   pemenuhan     SQL­92.     Oracle  menyesuaikan dengan SQL­89, yang mana adalah suatu sub­set dari tipe SQL­92 dengan  tambahan tipe­tipe spesifik. Beberapa tipe SQL­92   dipetakan kedalam tipe­tipe oracle.  PostgreSQL menggunakan suatu sub­set dari bahasa  SQL92­99 yang diperluas dan bahasa  SQL 3. Sintak tipe­tipe data SQL­92 dipetakan langsung kedalam tipe asli postgreSQL.

2.3 Program­program klien MySQL

Program­program   klien   MySQL   dapat   dipanggil   atau   dijalankan   dari  command­line,  seperti dari sebuah console prompt Windows, atau dari sebuah UNIX prompt shell. Ketika  Anda   menjalankan   suatu   program   klien,   Anda   dapat   menentukan   opsi­opsi   untuk  mengontrol tindak tanduk dari program klien. Beberapa opsi menjelaskan kepada program  klien tentang bagaimana menghubungi server MySQL. Beberapa opsi lainnya menjelaskan  kepada program klien aksi yang manakah yang harus dilakukan.

(12)

2.3.1 Program klien 

mysql

Program klien  mysql  memungkinkan Anda mengirimkan permintaan­permintaan (query)  ke server MySQL, dan menerima hasilnya. Untuk menentukan opsi­opsi yang didukung  oleh program mysql, jalankan perintah dengan opsi –help. Sebagai contoh, untuk mencari  tahu bagaimana menggunakan mysql , ketiklah perintah berikut ini:

shell> mysql ­­help Untuk mengetahui versi dari program mysql, gunakan opsi –version: shell> mysql ­­version Untuk menghubungi server menggunakan program klien, klien harus mengetahui pada  komputer yang manakah server MySQL aktif atau berjalan. Sebuah koneksi atau hubungan  bisa dilakukan secara lokal pada suatu server MySQL yang berjalan pada komputer yang  sama   dengan   komputer   yang   sedang   menjalankan   program   klien  mysql,   atau   dapat  dilakukan secara jarak jauh (remote) ke suatu server MySQL yang berjalan pada komputer  yang berbeda dengan komputer yang   sedang menjalankan program klien  mysql, Anda  tentunya harus memiliki user account (username dan password) yang terdaftar pada server  MySQL tersebut untuk dapat melakukan koneksi ke server. Dua buah opsi yang menunjukkan kepada klien dimanakah server MySQL berjalan, begitu  juga tipe  koneksi yang dilakukan. ­­host=nama_komputer  atau  ­h nama_komputer

(13)

Opsi ini menentukan pada komputer yang manakah server MySQL aktif atau berjalan.  Nilai  dari  opsi  ini  dapat   berupa   nama   komputer  atau  nomor   IP.   Nilai  default   adalah  localhost. ­­port=nomor_port  atau ­P nomor_port Opsi ini menunjukkan nomor port yang manakah yang dapat dihubungi pada komputer  server, ini hanya diterapkan untuk koneksi TCP/IP. Default nomor port   MySQL adalah  3306. Dua buah opsi yang menyediakan informasi indentifikasi, yaitu username dan password  atau user account yang Anda akan gunakan untuk dapat mengakses server. ­­user=username atau ­u username Opsi ini menentukan username untuk account  MySQL Anda. ­­password=password atau ­ppassword Opsi ini menentukan password untuk account  MySQL Anda. Berikut ini contoh­contoh  bagaimana menggunakan opsi­opsi program klien  mysql untuk melakukan koneksi:

 Koneksi  ke  server  menggunakan  default nama  komputer  dan default username 

tanpa password:

shell> mysql

 Koneksi ke server pada komputer lokal dengan nama user 'naufal', dan meminta 

mysql untuk menanyakan password Anda:

shell> mysql ­­host=localhost ­­password ­­user=naufal

 Koneksi   ke   server   dengan   opsi   yang   sama   dengan   contoh   sebelumnya,   tetapi 

menggunakan bentuk opsi singkat:

shell> mysql ­h localhost ­p ­u naufal

 Koneksi ke server dengan IP address yang spesifik, dengan nama user  'naufal' dan 

password 'rahasia':

(14)

 Koneksi   ke   server   pada   localhost   dengan   default   username   dan   password   dan 

dengan mengkompress paket data yang lewat atau melintas antara  klien dan server:

shell> mysql ­­host=localhost ­­compress

2.3.2 Program klien mysqlimport

mysqlimport  adalah   program   klien   yang   memuat   file­file   data   kedalam   tabel­tabel.  Program ini menyediakan antar muka command­line dengan pernyataan     LOAD DATA  INFILE. Hal ini berarti mysqlimport memeriksa opsi­opsi yang diberikan pada command­ line dan membuat suatu pernyataan  LOAD DATA INFILE yang berhubungan dengan aksi  yang disebutkan oleh opsi­opsi tersebut. Kemudian melakukan koneksi ke server dan untuk  setiap   file   input,   menghasilkan   pernyataan   LOAD   DATA   INFILE   yang   memuat   file  tersebut dengan benar kedalam tabel yang sesuai. Cara menjalankan perintah mysqlimport 

pada command­line seperti berikut ini:

shell> mysqlimport options nama_database file_input

nama_database adalah nama dari database yang berisi tabel tabel yang akan diisi data, dan  file_input adalah nama file yang berisi data yang akan dimuat ke tabel.

Setiap tabel yang akan diisi oleh mysqlimport harus sudah ada dalam database, dan setiap  file input seharusnya hanya mengandung nilai­nilai data.  mysqlimport  tidak dimasudkan  untuk memproses file­file input yang mengandung perintah­perintah SQL (yaitu seperti  yang dibuat dengan program mysqldump).

2.3.3 Program klien mysqldump

Program klien mysqldump mengekspor isi dari tabel­tabel yang ada dalam suatu database  ke   suatu   file.   Program   ini   sangat   berguna   untuk   membackup   database,   atau   untuk  mentransfer isi dari database ke server lain. mysqldump dapat menghasilkan file­file hasil  dump berfornat SQL yang mengandung perintah­perintah CREATE TABLE dan INSERT  untuk   membuat   ulang   file­file   dump,   atau   dapat   menghasilkan   file­file   data   dengan  delimiter tabulasi.

(15)

2.3.3.1 Operasi mysqldump

Secara default mysqldump menginterpretasi argumen pertama yang bukan option sebagai  nama database dan akan mengekspor seluruh tabel­tabel yang ada dalam database tersebut.

 Perintah   berikut   ini   akan   mengekspor   seluruh   isi   tabel­tabel   dalam   database 

sekolah kedalam suatu file dengan nama file 'sekolah.sql': shell> mysqldump sekolah > sekolah.sql  Perintah mysqldump berikut ini disertai dengan 3 argumen yang bukan option,  argumen pertama adalah nama database dan argumen ke duan dan ketiga adalah  nama­nama tabel dalam database, hasil dump disimpan kedalam file dengan nama  pelajar_guru.sql:  shell> mysqldump sekolah pelajar guru > pelajar_guru.sql 2.3.3.2 Memuat ulang hasil mysqldump Untuk memuat ulang sebuah file dump berformat SQL yang dihasilkan oleh mysqldump,  gunakan program klien mysql. Guna membuat salinan tabel pelajar dari database sekolah 

kedalam database kampus, sebagai contoh, Anda dapat menjalankan perintah berikut ini:

shell> mysqldump ­­opt sekolah pelajar >  perlajar.sql shell> mysql kampus < pelajar.sql mysql dapat membaca dari sebuah pipe, sehingga Anda dapat mengkombinasikan dengan  penggunaan perintah mysqldump dan mysql menjadi sebuah perintah tunggal. Contoh  sebelumnya dapat ditulis menjadi berikut ini: shell> mysqldump ­­opt sekolah pelajar | mysql kampus

2.3.4 Program klien mysqlcheck dan myisamchk

Program klien mysqlcheck dan myisamchk digunakan untuk memeriksa dan memperbaiki  tabel­tabel   (khususnya   tabel   tabel   MyISAM).   Program­program   klien   tersebut   dapat  membantu menjaga tabel­tabel Anda terbebas dari masalah­masalah, atau memeperbaiki  tabel­tabel   Anda   jika   terjadi   masalah   sebagai   contoh   tabel­tabel   MyISAM   menderita  kerusakan akibat server crash.

mysqlcheck dan myisamchk memiliki fungsi yang sama, tetapi mereka memiliki beberapa  perbedaan. Berikut ini perbandingan antara kedua program tersebut:

Kedua program dapat memeriksa, memperbaiki dan menganalisa tabel­tabel MyISAM.  Mysqlcheck dapat juga mengoptimasi tabel­tabel MyISAM, begitu juga tabel­tabel InnoDB 

(16)

dan   menganalisa   tabel­tabel   BDB.   Ada   operasi­operasi   tertentu   yang   hanya   dapat  dilakukan   oleh   myisamchk   sedangkan   mysqlcheck   tidak,   yaitu   men­disable   atau  mengenable pengindekan(indexes).

2.4 Database secara umum dan manipulasi tabel

Setiap server MySQL memiliki suatu direktori data yang mana didalam direktori ini tabel­ tabel dan database berada  dan dikelola. Server merepresentasikan hal berikut ini:  MySQL menghubungkan masing­masing database dengan suatu direktori yang ada  didalam direktori data (ini berarti direktori data adalah direktori parent dari semua  direktori­direktori database). Sebuah direktori  database  memiliki nama yang sama  dengan nama database itu sendiri. Sebagai contoh, suatu database diberi nama  'sekolah' maka direktori databasenya juga memiliki nama 'sekolah' yang berada  dalam direktori data. MySQL menggunakan direktori database untuk mengatur  komponen­komponen database yakni tabel­tabel dan indek­indek. Sebuah database  bisa jadi kosong atau hanya berisi satu atau beberapa tabel. Database tidak beranak  atau tidak dapat memiliki sub­sub  database, dengan kata lain suatu database tidak  lagi mengandung  atau berisi database lainnya didalamnya.  Setiap tabel dalam suatu database terdiri dari baris­baris dan kolom­kolom. Suatu  tabel bisa jadi kosong (tidak memiliki baris­baris  data atau record), tetapi minimal  harus memiliki sebuah kolom. Suatu tabel bisa juga diindek agar meningkatkan  performa   query.   Setiap   tabel   dihubungkan   dengan   sebuah   file  formaAUTO_INCREMENT,   diterapkan   pada   kolom­kolom   integer.   Digunakan  untuk menghasilkan integer dengan urutan nilai yang unik. Kolom demikian dalam  suatu tabel hanya ada satu.

 BINARY, diterapkan pada CHAR dan VARCHAR

 NULL dan NOT NULL, dapat diterapkan pada semua kolom

 DEFAULT,   menyediakan   suatu   nilai   baku   dalam   kasus   tidak   ada   nilai   yang 

diberikan.

 PRIMARY   KEY   dan  UNIQUEt   dalam  direktori  database   yang  berisi  definisi­

definisi dan struktur­struktur tabel tersebut. Nama dari file format sama dengan  nama tabel ditambah akhiran .frm. Sebagai contoh, file format untuk tabel  pelajar 

dalam database  sekolah  diberi nama  pelajar.frm  dan diletakkan dalam direktori  sekolah yang berada dibawah direktori data server MySQL.  Bergantung pada tipe  tabel, storage engine untuk suatu tabel biasanya akan membuat file­file tambahan  untuk  tabel  tersebut.  Jika  tabel  pelajar  memiliki  tipe  MyISAM,   maka  storage  engine  MyISAM  akan   membuat   file­file   data   dan   indek   yang   diberi   nama  pelajar.MYD dan pelajar.MYI yang masing­masing digunakan untuk menyimpan 

(17)

baris­baris data dan indek­indek. Jika tabel pelajar memiliki tipe InnoDB, MySQL  masih   membuat   suatu   file   format   pelajar.frm   dalam   direktori   database,   tetapi  storage   engine   InnoDB   menyimpan   tabel   data   dan   informasi   indeks     kedalam  InnoDB tablespace.

2.5 

Storage Engine

 dan Tipe­tipe tabel

MySQL   mendukung   beberapa  storage   engine  yang   bertindak   sebagai   pengatur   untuk  berbagai  tipe  tabel  yang  berbeda.  Storage  engine  MySQL   mencakup   keduanya    yang  mengatur tabel­tabel yang transaksinya 

aman  (transaction­safe),   dan  yang  mengatur  tabel­tabel  yang  transaksinya  tidak  aman  (non­transaction­safe):

Storage engine asli adalah ISAM, yang menangani tabel­tabel non­transaksi (non­

transactional). Storage engine ISAM telah digantikan dengan MyISAM dan sudah  lama tidak digunakan lagi. Pada MySQL 4.1 storage engine ini sudah kuno, bahkan  pada MySQL 5.0 dihilangkan.

Storage engine MyISAM diperkenalkan pada MySQL 3.23.0. MyISAM merupakan 

peningkatan untuk   menggantikan ISAM. MyISAM menangani tabel­tabel non­ transaksi   (non­transactional).   MyISAM   memberikan   kecepatan   dalam   proses  penyimpanan   dan   pengambilan,   begitu   juga   kemampuan­kemampuan   pencarian  keseluruhan teks (full­text). MyISAM didukung dalam seluruh konfigurasi MySQL,  dan   secara   default   MyISAM   menjadi   storage   engine   yang   digunakan   dalam  MySQL, kecuali jika Anda mengkonfigurasi MySQL menggunakan storage engien  yang lainnya. 

Storage   engine  MEMORY   menyediakan   tabel­tabel   in­memory.   Storage   engine 

MERGE ditambahkan kedalam MySQL 3.23.25. Storage engine ini memungkinkan  sekumpulan tabel­tabel MyISAM yang identik untuk dikelola sebagai suatu tabel  tunggal. Seperti MyISAM,  Storage engine MEMORY  dan  MERGE  menangani  tabel­tabel   non­transasksi   (  non­transactional),   dan   keduanya   juga   disertakan  secara default dalam MySQL.

Catatan: Storage engine MEMORY pertama kali dikenal sebagai HEAP engine.  Storage engine  InnoDB dan BDB yang menangani tabel­tabel  transasction­safe 

diperkenalkan   dalam   versi   MySQL   3.23   selanjutnya.BDB   disertakan   dalam  distribusi   binari   MySQL­Max   pada   sistem   operasi   –   sistem   operasi     yang  mendukungnya.   InnoDB   juga   disertakan   dalam   distribusi   binari   MySQL­Max  untuk MySQL 3.23. Mulai dengan MySQL 4.0, InnoDB telah disertakan secara  default dalam seluruh distribusi binari MySQL.  Dalam distribusi­distribusi source,  Anda dapat meng­enable atau men­disable storage engine ­ storage engine tersebut 

(18)

dengan mengkonfigurasi MySQL sesuai dengan kebutuhan Anda.

 NDB cluster adalah  storage engine  yang digunakan oleh MySQL cluster untuk  implementasi tabel­tabel yang terpisah di beberapa komputer. Engine ini tersedia  dalam distribusi source MySQL 4.1.2 dan distribusi   binari   MySQL­Max 4.1.3.  Storage engine ini saat ini didukung hana di Linux, Solaris, dan Mac OS X .  MySQL berniat untuk mendukung engine ini pada platform sistem operasi lainnya  seperti MS Windows, dan dalam rilis MySQL mendatang.  Storage engine EXAMPLE adalah suatu sub engine yang tidak menangani apapun.  Anda dapat membuat tabel­tabel dengan engine ini, tetapi tidak ada data yang dapat  disimpan atau diambil dalam tabel tersebut. Engine EXAMPLE ini disediakan  sebagai   contoh   dalam   kode   sumber   MySQL   yang   menggambarkan   bagaimana  memulai membuat storage engine baru.   Ini umumnya untuk yang tertarik atau  untuk para pengembang.

Storage   engine  ARCHIVE   digunakan   untuk   penyimpanan   sejumlah   besar   data  tanpa pengindekan dengan sebuah footprint yang sangat kecil. 

Storage engine CSV menyimpan data dalam file teks dengan menggunakan tanda  koma sebagai format pemisah antar nilai­nilai dalam file teks tersebut.

Storage   engine  BLACKHOLE   menerima   tetapi   tidak   menyimpan   data,   selalu  mengembalikan  atau menampilkan sesuatu yang kosong.

Storage  engine  FEDERATED   menyimpan   data   dalam  remote  database.   Dalam  MySQL   5.1,   storage   engine   ini   hanya   bekerja   dengan   MySQL,   dengan  menggunakan MySQL C client API. Dalam rilis masa depan, dimaksudkan untuk  memungkinkannya   untuk   terkoneksi   dengan   sumber   data   lainnya   dengan  menggunakan driver­driver atau metode­metode koneksi klien yang lainnya.

2.6 Tipe­tipe kolom

Untuk setiap tipe data, sintak yang ditampilkan menggunakan tanda kurung siku (square  brackets) ([ ]) adalah untuk menunjukkan bagian dari sintak yang bersifat opsional. Contoh  berikut ini menunjukkan bagaimana BIGINT dijelaskan dalam bab ini: BIGINT[(display_size)] Sebagai tambahan terhadap tipe BIGINT, banyak jenis tipe data MySQL lainnya yang  mendukung spesifikasi dari ukuran.. Kecuali jika tidak dispesifikasikan, nilai tersebut  harus berupa sebuah bilangan integer atau bilangan bulat  antara 1 dan 255.

(19)

2.6.1 NUMERIK

MySQL mendukung semua tipe data  standar numerik(bilangan) SQL .Jenis ini meliputi  tipe data bilangan bulat (INTEGER, SMALLINT, DESIMAL, dan NUMERIC), seperti  halnya tipe data  bilangan desimal (FLOAT, REAL, dan DOUBLE PRECISION). Keyword  INT adalah suatu sinonim untuk BILANGAN BULAT (INTEGER), dan keyword DEC  adalah satu sinonim untuk bilangan DESIMAL.  Terhitung sejak MySQL 5.0.3, tipe data BIT tersedia untuk menyimpan nilai­nilai kolom bit.  (Sebelum 5.0.3, MySQL menginterpretasikan BIT seperti TINYINT (1 ).) Di MySQL 5.0.3,  BIT didukung hanya untuk MyISAM. MySQL 5.0.5 memperluas dukungan BIT pada  MEMORY, InnoDB, dan BDB.   Sebagai satu ekstensi ke SQL standar, MySQL juga mendukung jenis bilangan bulat  TINYINT, MEDIUMINT, dan BIGINT.

Untuk   tipe­tipe   bilangan   bulat   selalu   disediakan   atribut  auto_increment, signed  dan  unsigned. Signed  berarti nilai negatif ikut dalam deklarasi tersebut sedang  unsigned  hanya nilai positif. Jika unsigned tidak dideklarasikan maka nilai default adalah signed. INT/INTEGER Deklarasi : INT  [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 4 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 4294967295 jika unsigned. – 2147483648 sampai dengan 214797647 jika signed. TINYINT Deklarasi : TINYINT [(display_size)]  [auto_increment] [unsigned] [zerofill]

Penyimpanan:   1   byteAUTO_INCREMENT,   diterapkan   pada   kolom­kolom   integer.  Digunakan untuk menghasilkan integer dengan urutan nilai yang unik. Kolom demikian  dalam suatu tabel hanya ada satu. ● BINARY, diterapkan pada CHAR dan VARCHAR ● NULL dan NOT NULL, dapat diterapkan pada semua kolom ● DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang diberikan. PRIMARY KEY dan UNIQUE Nilai yang dapat disimpan adalah integer 0 sampai dengan 255 jika unsigned. ­128 sampai  dengan 127 jika signed.

(20)

MEDIUMINT

Deklarasi : MEDIUMINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 3 byte

Nilai   yang   dapat   disimpan   adalah   integer   0   sampai   dengan   16777215   jika   unsigned.  ­83888608 sampai dengan 82888607 jika signed. BIGINT Deklarasi : BIGINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 8 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 18446744073709551615 jika  unsigned.  –9223372036854775807 sampai dengan 922337203685477580787 jika signed. SMALLINT Deklarasi : SMALLINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 2 byte Nilai yang dapat disimpan dengan jangkauan mulai dari 0 sampai dengan 65535 jika  unsigned dan ­32768 sampai 32767 jika signed. FLOAT Deklarasi : FLOAT [(display_size,digits)] [zerofill] Penyimpanan: 4 byte Float menyimpan bilangan real dan tidak dapat bersifat unsigned. Nilai presisi tunggal  yang dapat disimpan adalah –3,402823466E+38 sampai dengan –1,1175494351E­38,0, dan  1,1175494351E­38 sampai dengan 3,402823466E+38. DOUBLE Deklarasi : DOUBLE [(M,D)] [zerofill] Penyimpanan: 8 byte

Double   menyimpan   bilangan   real   dengan   presisi   ganda.   Nilai   yang   boleh   adalah   – 1,7976931348623167E+308   sampai   dengan   –2.2250738585072014E­308,0,     dan  2.2250738585072014E­308   sampai   dengan     1,7976931348623167E+308.   Nilai   M  merupakan maksimal panjang tampilan. Nilai D merupakan nilai desimal.

(21)

DECIMAL Deklarasi : DECIMAL [(precision [,scale])] [zerofill] Penyimpanan: precision + 2  byte Menyimpan bilangan floating point dimana ketepatan adalah kritis, seperti untuk nilai mata  uang. Tipe DECIMAL memerlukan Anda untuk menspesifikasikan precision dan scale.  Precision adalah jumlah nilai digit yang berarti. Scale adalah jumlah digit yang mengikuti  tanda   desimal.   Sebagai   contoh,   sebuah   kolom   BALANCE   dideklarasikan   sebagai  DECIMAL(9,2)   yang   akan   menyimpan   sejumlah   9   digit   berarti,   dengan   dua   digit  diantaranya berada disebelah kanan tanda desimal. Range nilai dari contoh deklarasi kolom  BALANCE tersebut adalah mulai ­9,999,999.99 sampai 9,999,999.99.

2.6.2 String

Tipe data string menyimpan bermacam­macam jenis data teks. Terdapat sejumlah tipe­tipe  data teks yang diakomodasi dengan beragam ukuran. Untuk masing­masing ukuran, ada  suatu tipe yang menyusun dan membandingkan data secara case­sensitive, sesuai dengan  susunan   karakter   baku.   Suatu   tipe   binari   melakukan   penyusunan   dan   perbandingan  sederhana byte demi byte. Dengan kata lain, nilai binari adalah case­sensitive. Untuk  CHAR   dan   VARCHAR,   tipe­tipe   binari   dideklarasikan   dengan   menggunakan   atribut  BINARY . Tipe­tipe TEXT, bagaimanapun juga,   memiliki hubungan dengan tipe­tipe  BLOB. BLOB Deklarasi: BLOB Bentuk binari dari TEXT. CHAR Deklarasi: CHAR(size) [BINARY] ukuran: ditetapkan oleh nilai ukuran dengan jangkauan sampai dengan 255 Penyimpanan: size byte Suatu kolom dengan nilai teks yang panjangnya tetap.  Nilai string dengan jumlah karakter  lebih sedikit dari ukuran kolom maka akan diisi dengan spasi. Spasi yang diisikan tersebut  ketika diambil dari database akan  dihilangkan.

(22)

LONGBLOB Deklarasi: LONGBLOB Bentuk binari dari LONGTEXT LONGTEXT Deklarasi: LONGTEXT ukuran: 0 samapai 4294967295 Penyimpanan: panjang nilai + 4 byte Menyimpan nilai teks yang besar. Secara teori batas ukuran dari teks yang dapat disimpan  dalam   sebuah   kolom   LONGTEXT   melampaui   4   GB,   pada   prakteknya   kurang.   Ini  sehubungan dengan  batasan  dari protokol komunikasi MySQL, dan jumlah memori yang  tersedia pada komunikasi antara klien dan server. MEDIUMBLOB Deklarasi: MEDIUMBLOB bentuk dari MEDIUMTEXT MEDIUMTEXT Deklarasi: MEDIUMTEXT ukuran: 0 sampai 16777215 Penyimpanan: panjang nilai + 3 byte Menyimpan nilai teks dengan ukuran menengah. TEXT Deklarasi: TEXT ukuran: 0 sampai 65535 Penyimpanan:  panjang nilai + 2 byte Penyimpanan untuk sebagian besar teks. TINYBLOB Deklarasi: TINYBLOB

(23)

bentuk binari dari TINYTEXT TINYTEXT Deklarasi: TINYTEXT ukuran: 0 sampai 255 Penyimpanan: panjang nilai + 1 byte Menyimpan nilai teks yang pendek VARCHAR Deklarasi: VARCHAR(size) [BINARY] ukuran: ditetapkan oleh nilai ukuran dalam suatu jangkauan sampai 255. Penyimpanan: panjang nilai + 1 byte Menyimpan nilai teks yang panjangnya bervariasi.

2.6.3 Date

Tipe­tipe data date MySQL adalah  perangkat yang fleksibel untuk  menyimpan informasi  tanggal   dan   waktu.   Untuk   memvalidasi   nilai   tanggal   dan   waktu,   itu   diserahkan   pada  aplikasi bukan database. MySQL hanya akan memeriksa bulan yang memiliki jangkauan 0  sampai 12, dan tanggal dari 0 smapai 31. February 31, 2006 adalah suatu contoh informasi  tanggal MySQL yang sah. February 0, 2006 adalah informasi tanggal yang juga sah bagi  MySQL. Dengan kata lain, Anda dapat menggunakan 0 untuk menandakan tanggal yang  Anda tidak ketahui pasti.

MySQL   secara   otomatis   akan   mengkonversi   nilai­nilai   tanggal   dan   waktu   menjadi  bilangan integer ketika digunakan dalam suatu konteks bilangan integer. DATE Deklarasi: DATE Format: YYYY­MM­DD (2006­01­01) Penyimpanan: 3 byte Menyimpan tanggal dalam jangkauan dari 1 januari 1000 ('1000­01­01') sampai dengan 31  Desember 9999 ('9999­12­31') dalam almanak Gregorian.  

(24)

DATETIME Deklarasi: DATETIME Format: YYYY­MM­DD hh:mm:ss (2006­01­01 01:00:00) Penyimpanan: 8 byte Menyimpan informasi waktu yang spesifik dalam jangkauan dari 1 Januari 1000 12:00:00  AM   ('1000­01­01   00:00:00')   sampai   31   Desember   9999   11:59:59     PM   ('9999­12­31  23:59:59')  dalam almanak Gregorian. TIME Deklarasi: TIME Format: hh:mm:ss (06:00:00) Penyimpanan: 3 byte Menyimpan nilai waktu dalam jangkauan mulai dari tengah malam  ('00:00:00') sampai 1  detik sebelum waktu tengah malam ('23:59:59'). TIMESTAMP Deklarasi: TIMESTAMP[(display_size)] Format: YYYYMMDDhhmmss(20010101060000) Penyimpanan: 4 byte Sebuah representasi dari sebuah penunjukan waktu ke detik dalam jangkauan dari tengah  malam pada 1 januari 1970, sampai pada satu   menit sebelum tengah malam pada 31  Desember 2037. Kegunaan utama adalah menjaga jejak dari perubahan­perubahan tabel.  Ketika Anda memasukkan suatu nilai NULL kedalam suatu kolom TIMESTAMP, maka  tanggal dan waktu  saat ini yang akan di masukkan. Jika Anda merubah beberapa nilai dari  sebuah baris dengan suatu kolom TIMESTAMP,  maka kolom TIMESTAMP yang pertama  akan diupdate secara otomatis dengan tanggal dan waktu saat ini. YEAR Deklarasi: YEAR[(size)] Format: YYYY(2006) Penyimpanan: 1 byte

(25)

memungkinkan Anda untuk menyimpan tahun dengan menggunakan 2 digit dari 4 digit  tahun.   Jangkauan   untuk   suatu   YEAR(4)   adalah   mulai   1900   sampai   2155,   sedangkan  YEAR(2) dari 1970 sampai 2069. Nilai size baku adalah YEAR(4).

2.6.4 Tipe data  Komplek

Tipe data komplek MySQL yaitu ENUM dan SET adalah tipe string yang khusus. Mereka  didaftarkan   secara   terpisah   karena   mereka   secara   konsep   lebih   komplek,   dan  merepresentasikan suatu bawaan tipe data SQL 3 yang didukung MySQL di masa datang. ENUM Deklarasi: ENUM(nilai1, nilai2, ...) Penyimpanan: 1­255 anggota nilai: 1 byte / 256­65535 anggota nilai: 2 byte Menyimpan satu nilai dari suatu daftar nilai­nilai teks yang mungkin yang sebelumnya  sudah didefinisikan. Ketika Anda membuat sebuah kolom ENUM, Anda menyediakan  suatu daftar dari seluruh nilai­nilai yang mungkin. Nilai­nilai yang dapat ditambahkan dan  dirubah pada suatu kolom ENUM hanya yang terdfatar dalam daftar nilai­nilai teks yang  mungkin tersebut. Jika Anda mencoba memasukkan suatu nilai yang tidak terdapat dalam  daftar atau bukan bagian dari daftar maka akan menyebabkan sebuah string kosong yang  akan disimpan. SET Deklarasi: SET(nilai1, nilai2, ....) Penyimpanan:  1 sampai 8 anggota nilai: 1 byte 9 sampai 16 anggota nilai: 2 byte 17 sampai 24 anggota nilai: 3 byte 25 sampai 32 anggota nilai: 4 byte 33 sampai 64 anggota nilai: 8 byte Sebuah daftar nilai­nilai yang diambil dari sekumpulan nilai­nilai yang sudah didefinisikan  sebelumnya. Sebuah kolom dapat menyimpan beberapa atau tidak sama sekali nilai­nilai  teks yang telah didefinisikan dalam pernyataan SET. SET pada dasarnya adalah sebuah  ENUM yang memungkinkan setiap kolom untuk menyimpan lebih dari satu nilai.SET  tidak menyimpan sesuai dengan indek, tetapi seperti suatu bitmap yang komplek. Suatu  SET dengan anggota­anggota nilai Jeruk, Apel, Pir, dan Pisang, masing­masing elemen 

(26)

dinyatakan oleh suatu bit 'on' dalam sebuah byte, sebagaimana ditunjukkan dibawah ini: Representasi Elemen­elemen SET MySQL

Member Nilai Desimal Representasi secara Bit

Jeruk 1 0001 Apel 2 0010 Pir 4 0100 Pisang 8 1000 Dalam contoh ini, nilai­nilai Jeruk dan Pir disimpan dalam database sebagai 5 (0101). Anda  dapat menyimpan suatu nilai maksimum 64 dalam suatu kolom SET. Meskipun Anda dapat  memberi nilai yang sama beberapa kali dalam suatu pernyatan SQL pengubahan suatu  kolom SET, hanya sebuah nilai yang sebenarnya disimpan.

2.7 Opsi­opsi Kolom

Dalam MySQL, pada waktu pertama membuat tabel, atau dikemudian waktu, Anda dapat  menambah,   merubah   opsi­opsi   kolom   tabel.   Opsi­opsi   kolom   membatasi   data     agar  dimasukkan sesuai dengan opsi yang telah ditetapkan.

● UNSIGNED, membuat kolom tidak boleh memiliki nilai negatif ● ZEROFILL, mengisi lebar data yang ditampilkan dengan nol

● AUTO_INCREMENT,   diterapkan   pada   kolom­kolom   integer.   Digunakan   untuk 

menghasilkan integer dengan urutan nilai yang unik. Kolom demikian dalam suatu  tabel hanya ada satu. ● BINARY, diterapkan pada CHAR dan VARCHAR ● NULL dan NOT NULL, dapat diterapkan pada semua kolom ● DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang diberikan. ● PRIMARY KEY dan UNIQUE

2.8 Operator

MySQL menawarkan tiga jenis operator: arithmatic, compparison, dan logical.

(27)

2.8.1 Peraturan ketentuan hak yang lebih tinggi 

Ketika SQL mengandung pernyataan yang komplek, sub pernyataan dievaluasi berdasarkan  ketentuan aturan  MySQL yang lebih tinggi. Anda dapat megesampingkan ketentuan aturan  MySQL yang lebih tinggi dengan mengurung suatu pernyataan dalam tanda kurung: Prioritas hak yang lebih tinggi Operator­operator 1 BINARY 2 NOT 3 ^ 4 ­ (unary minus) 5 * / % 6 + ­ 7 << >> 8 & 9 | 10 <= >= = <=> <> IN IS LIKE REGEXP 11 BETWEEN CASE 12 AND 13 OR XOR

2.8.2 Operator Arithmatic

Operator­operator arithmatic melakukan arithmatic dasar antara dua buah nilai: Operator Deskripsi + Menambahkan dua buah nilai bilangan ­ Mengurangi dua buah nilai bilangan * Mengalikan dua buah nilai bilangan / Membagi dua buah nilai bilangan % Memberikan sisa hasil bagi dua buah nilai bilangan | Melakukan operasi OR secara bit antara dua buah nilai bilangan bulat ^ Melakukan operasi eksklusif OR secara bit antara dua buah nilai bilangan  bulat & Melakukan operasi AND secara bit antara dua buah nilai bilangan bulat

(28)

<< Melakukan operasi geser kekiri  secara bit pada sebuah nilai bilangan bulat >> Melakukan operasi geser kekanan secara bit pada sebuah nilai bilangan bulat

2.8.3 Operator Comparison

Operator comparison membandingkan nilai­nilai dan mengembalikan 1 jika perbandingan  adalah benar (true), dan 0 (false) jika sebaliknya. Kecuali untuk operator <=>, nilai NULL  mengakibatkan suatu operator comparison mengevaluasinya ke NULL.  Operator­operator Deskripsi <> atau != Mencocokkan baris jika kedua nilai tidak sama atau tidak  sebanding <= Mencocokkan baris jika nilai sebelah kiri lebih kecil atau  sama dengan nilai sebelah kanan < Mencocokkan baris jika nilai sebelah kiri lebih kecil dari nilai  sebelah kanan >= Mencocokkan baris jika nilai sebelah kiri lebih besar atau  sama dengan nilai sebelah kanan > Mencocokkan baris jika nilai sebelah kiri lebih besar dari  nilai sebelah kanan nilai BETWEEN nilai1  AND nilai2 Mencocokkan baris jika nilai adalah antara nailai1 dan nilai2,  atau sama dengan nilai1 atau nilai2 nilai  IN (nilai1, nilai2,....) Mencocokkan baris jika nilai termasuk dalam daftar nilai nilai NOT IN (nilai1,  nilai2,....) Mencocokkan baris jika nilai tidak termasuk dalam daftar  nilai

nilai1 LIKE nilai2 Membandingkan  nilai1  dan  nilai2   dan  mencocokkan  baris  jika   mereka   sesuai.   Nilai   disebelah   kanan   dapat   berupa  karakter  wildcard  '%',   yang  cocok   dengan  semua   karakter  (termasuk nol karakter), dan '_', yang mencocokkan tepat ke  satu   karakter.   Penggunaan   yang   sering   adalah  membandingkan suatu nilai kolom dengan satu string yang  mengandung   wildcard   (contoh:   SELECT   name   FROM  pegawai WHERE name LIKE 'B%').

nilai1 NOT LIKE nilai2 Membandingkan nilai1 dan nilai2 dan   mencocokkan baris  jika mereka berbeda. Ini identik dengan NOT (nilai1 LIKE  nilai2)

(29)

nilai2 extended   reguler   expression   dan   mencocokkan   baris   jika  kedua nilai sesuai. Nilai sebelah kanan dapat mengandung  penuh   konsep   wildcard  reguler  expression   UNIX   (contoh:  SELECT name FROM pegawai WHERE name RLIKE '^B.*' nilai1 NOT REGEXP nilai2 Membandingkan   nilai1   dan   nilai2   dengan   menggunakan 

extended   reguler   expression   dan   mencocokkan   baris   jika  kedua nilai berbeda. Ini identik dengan NOT (nilai1 REGEXP  nilai2).

2.8.4 Operator Logical

Operator logical memeriksa nilai kebenaran dari satu atau lebih pernyataan. Dalam istilah  SQL, suatu operator logical memeriksa apakah operand­operand nya adalah 0, nonzero,  atau NULL. Suatu nilai 0 berarti salah (false), nonzero berarti benar(true) dan NULL  berarti tak bernilai. Operator­operator Deskripsi NOT atau ! Melakukan suatu logika not(mengembalikan '1' jika nilai adalah 0,  NULL jika nilai adalah NULL, jika tidak mengembalikan '0') OR atau || Melakukan suatu operasi logika or (mengembalikan '1' jika salah satu  argumen atau nilai bukan non­zero atau bukan NULL, NULL jika  salah satu argumen atau nilainya NULL, jika tidak mengembalikan  '0') XOR Melakukan suatu operasi logika eksklusif or (mengembalikan '1' jika  satu dan hanya satu argumen yang bukan 0  dan bukan NULL, NULL  jika salah satu adalah NULL, jika tidak mengembalikan '0')

AND atau && Melakukan operasi logika and (mengembalikan '0' jika   salah satu  dari argumen adalah 0, NULL jika salah satu argumen adalah NULL,  jika tidak mengembalikan '1')

2.9 Memulai dan mengakhiri koneksi ke database server

Untuk koneksi ke database server, Anda biasanya perlu memberikan nama user MySQL  dan password nya   ketika menjalankan program klien mysql. Jika server berjalan pada  komputer yang berbeda , Anda juga perlu memberikan nama komouter atau nomor IP  komputer server database tersebut. Pembahasan lebih detil tentang program klien mysql  telah dibahas dalam pembahasan sebelumnya.

(30)

melakukan koneksi ke database server MySQL, seperti berikut ini:

Tanda prompt mysql> menjelaskan pada Anda bahwa mysql telah siap menerima perintah  (command) dari Anda. Beberapa instalasi MySQL memungkinkan Anda untuk koneksi ke  database   server   sebagai   anonymous   user     (user   tak   bernama)   pada   komputer   lokal  (localhost). 

Untuk mengakhiri koneksi dari database server , Anda dapat mengetikkan perimtah quit

exit , atau (\q), seperti berikut ini:

mysql> q uit atau mysql> exit atau mysql> \q Berikut ini tabel yang menampilkan kondisi setiap prompt yang akan Anda lihat, dan  kesimpulan mengenai apa yang terjadi dengan kondisi prompt seperti itu di dalam mysql: Prompt kesimpulan mysql> Siap menerima perintah baru ­> Menunggu baris perintah berikutnya dari suatu perintah terdiri dari banyak  baris

'> Menunggu   baris  perintah   berikutnya,   dengan   mengelompokkan  sebuah  string yang diawali dengan tanda kutip tunggal (')

“> Menunggu   baris  perintah   berikutnya,   dengan   mengelompokkan  sebuah  string yang diawali dengan tanda kutip ganda(“)

`> Menunggu   baris  perintah   berikutnya,   dengan   mengelompokkan  sebuah  identifier diawali dengan tanda back­tick (`)

(31)

2.10 Membuat dan menggunakan  database

Sebelum   Anda   dapat   membuat   sebuah   tabel   Anda   harus   terlebih   dahulu   membuat  Database. Perintah SQL dapat Anda ketikkan dengan huruf besar maupun kecil. Hanya saja  di   sini   kita     menggunakan   huruf   besar   agar   Anda   lebih   mudah   membedakan   antara  perintah   SQL   dengan   objek­objek   lainnya.   Perlu   diingat,   setelah   selesai   mengetikkan  perintah  SQL   pada   prompt  MySQL,   Anda   wajib  mengetikkan  tanda   titik   koma  yang  menandakan akhir dari perintah SQL. Sintak penulisan perintah untuk membuat database  seperti berikut ini :

mysql> CREATE DATABASE database_name;

Hal yang harus diperhatikan dalam penamaan database adalah nama tidak boleh menggunakan  kata­kata yang menjadi kosakata SQL seperti select karena hal itu akan membuat rancu. Perlu juga  diperhatikan huruf besar atau huruf kecil sebuah nama database karena pada sistem UNIX huruf  besar dan huruf kecil dibedakan. Pada contoh dibawah ini akan dibuat database dengan nama  'Perpustakaan' dan 'perpustakaan'.

Sesudah   Anda   membuat   suatu   database,   selanjutnya   jika   Anda   ingin   'perpustakaan'  menjadi database yang Anda akses saat ini maka Anda dapat mengakses database tersebut  dengan perintah sebagai berikut :

mysql>USE perpustakaan;

Atau Anda dapat juga mengakses database perpustakaan melalui command­line sebagai 

(32)

2.11 Manipulasi tabel

Tabel­tabel dapat dibuat dan dimodifikasi jika diperlukan. Jika Anda sudah memilih atau  mengakses database maka Anda dapat membuat tabel sebagai berikut.

2.11.1 Membuat tabel

Setelah   Anda   memilih   Database   barulah   Anda   dapat   membuat   sebuah   tabel,   Sintak  penulisan perintah membuat tabel sebagai berikut:

mysql> CREATE TABLE nama_tabel(

kolom1 tipe_data opsi_kolom,

kolom2 tipe_data opsi_kolom, ..., kolomN tipe_data opsi_kolom, PRIMARY KEY(nama_kolom), INDEX (nama_kolom) ) type=tipe_tabel Dalam pemakaian pernyataan create table Anda akan menemukan 2 opsi yang biasanya  menyertai deklarasi definisi kolom  yaitu  null/ not null  default Null/not null mengindikasikan apakah suatu kolom dapat menerima nilai null (nilai tiada).  Jika dinyatakan null berarti null dapat  terjadi dikolom  tersebut  sebaliknya bila diberi  atribut not null maka nilai null tidak boleh pada kolom tersebut.  Default menyatakan nilai baku yang akan dipakai jika dalam suatu proses pemasukan nilai  ke  kolom tersebut tidak diberi nilai. Contoh berikut akan membuat tabel dengan nama buku: Setelah Anda membuat tabel, perintah SHOW TABLES seharusnya menampilkan output  sebagai berikut:

(33)

Untuk   memeriksa   tabel   yang   telah   Anda   buat   sesuai   dengan   spesifikasi   yang   telah  ditetapkan, gunakanlah perintah DESCRIBE atau DESC. Sebagai contoh jika Anda lupa  nama kolom atau tipe kolom dari tabel yang telah Anda buat. Gunakanlah perintah seperti  contoh dalam gambar berikut :

2.11.2 Menghapus tabel

Untuk menghapus tabel gunakan perintah berikut ini: mysql> DROP TABLE buku; atau mysql> DROP TABLE IF  EXISTS buku;

2.11.3 Merubah tabel

ALTER TABLE memungkinkan Anda untuk merubah struktur tabel yang ada. Anda dapat  merubah tabel untuk keperluan:

(34)

 Menambah atau menghapus kolom  Merubah nama atau definisi kolom  Menambah atau menghapus index  Menerapkan suatu susunan berbeda pada baris­baris  Merubah nama tabel ALTER TABLE bekerja dengan cara membuat salinan tabel dari tabel yang asli yang  bersifat     sementara   (temporer).  Proses   perubahan   tabel   dilakukan   pada   tabel   salinan,  kemudian tabel asli dihapus, dan yang baru dirubah namanya.   Ketika perintah ALTER  TABLE   sedang   dieksekusi,   tabel   asli   masih   dapat   dibaca   oleh   klien­klien.   Proses  perubahan  dan  penulisan  terhadap  tabel  dihentikan   sampai   tabel   yang  baru   siap,  dan  kemudian   secara   otomatis   diarahkan   ke   tabel   baru   tanpa   kegagalan   dalam   proses  perubahan. Contoh berikut adalah perubahan tabel dengan menambah kolom.   Gunakan keyword MODIFY atau CHANGE, jika Anda akan melakukan perubahan tipe  data kolom. MODIFY dan CHANGE memiliki fungsi yang sama yaitu merubah tipe data  kolom, hanya saja dengan CHANGE memungkinkan nama kolom juga dapat dirubah.

2.11.4 Merubah nama tabel

RENAME merubah nama tabel, dan juga bekerja dalam perintah ALTER TABLE: Merubah beberapa nama tabel sekaligus dapat dilakukan dengan satu perintah saja dimana  tabel­tabel dipisahakan dengan tanda koma, seperti berikut:

(35)

Merubah tipe dan opsi kolom tabel dapat dilakukan juga   bersamaan dengan merubah  nama tabel dalam satu perintah seperti berikut ini:

2.12 Index

Ketika data dalam tabel bertambah besar jumlahnya, proses pembacaan data akan menjadi  lambat.   Index   memungkinkan   nilai­nilai   kolom   dapat   ditemukan   dengan   lebih   cepat,  pengambilan atau pembacaan data berdasarkan index relatif lebih cepat. Agar performa  query Anda  terjaga secara, sangatlah penting mengindekskan (indexes) tabel­tabel Anda.  Index dapat melakukan pengunikkan (unique)  untuk mencegah duplikasi. 

MySQL mendukung empat tipe index:

Non­unique simple indexes

UNIQUE index, setiap nilai adalah berbeda dari yang lainnya.

PRIMARY KEY adalah suatu UNIQUE key yang tidak membolehkan nilai NULL.  FULLTEXT dioptimasi untuk pencarian teks. Index dapat didefinisikan ketika tabel dibuat. Ini meliputi definisi index dalam perintah  CREATE TABLE, bersama dengan pendefinisian kolom. Suatu definisi index terdiri dari  suatu kata kunci yang menunjukkan tipe index, diikuti oleh suatu daftar nama­nama kolom  yang akan dijadikan index didalam tanda kurung. Dengan mengasumsikan bahwa definisi  tabel buku tanpa index tampak seperti berikut :

(36)

2.12.1 Non­unique index

Untuk   membuat   tabel   dengan     dengan   kolom­kolom   yang   sama   seperti   tabel   buku  sebelumnya, tetapi dengan suatu Non­unique index pada kolom 'tahun' , klausa INDEX  disertakan dalam perintah CREATE TABLE berikut ini:

2.12.2 Unique index

Unique melakukan pengunikkan kolom dan mencegah duplikasi. Ini bermanfaat khususnya  ketika menetapkan nilai­nilai  untuk proses lookup, seperti id.

2.12.3 Primary Key index

Dalam sebuah tabel hanya ada satu buah primary key. Primary key ada;ah suatu UNIQUE  index yang tidak mengijinkan nilai NULL. Index dapat ditambahkan pada suatu tabel. Sebagai tambahan, proses penambahan index  dapat dilakukan dengan menggunakan perintah ALTER TABLE, seperti berikut: mysql> ALTER TABLE buku ADD PRIMARY KEY (id)

(37)

2.12.4 Menghapus index

Suatu index dapat dihapus dengan dengan perintah DROP INDEX atau ALTER TABLE,  seperti berikut: mysql> DROP INDEX tahun ON buku mysql> ALTER TABLE buku DROP INDEX tahun  mysql> ALTER TABLE buku DROP PRIMARY KEY Primary key index hanya dapat dihapus jika kolom yang merupakan index tersebut tidak  memiliki atribut atau opsi auto_increment.

2.13 MySQL query 

 MySQL mendukung penuh ANSI SQL­92. Referensi SQL untuk MySQL adalah referensi  SQL yang umum yang digunakan secara luas. SQL adalah bahasa query database yang  serupa dengan bahasa inggris yang terdiri dari susunan kata kerja. Setiap susunan kata  kerja ini, diawali dengan sebuah perintah SQL yang diikuti oleh keyword, literals, dan  indentifiers, atau puctuation. Dalama bagian ini menggambarkan prinsip­prinsip dasar penulisan perintah­perintah SQL,  bekerja dengan berbagai query, dari dasar hingga yang kompleks. Query menggambarkan  beberapa hal tentang klien mysql: 

 Ketika   Anda   menuliskan   dan   mengeksekusi   perintah,   program   klien   mysql 

mengirimkannya ke server untuk dieksekusi dan menampilkan hasilnya, kemudian  mencetak prompt  mysql>  kembali untuk menunjukkan bahwa klien mysql sudah  siap menerima perintah lainnya.

 Klien mysql menampilkan output dari query dalam bentuk tabular (terdiri dari baris 

dan kolom). Baris pertama menunjukkan nama­nama kolom tabel. Dan baris­baris  berikutnya dalah hasil query.

 Klien   mysql   menampilkan   juga   informasi   mengenai   berapa   banyak   baris   yang 

dikembalikan dan berapa lama query tersebut dieksekusi, yang memberikan Anda  ide pemikiran tentang performa server.

2.13.1 Perintah SELECT

Tidak ada gunanya menyimpan data kedalam database kecuali Anda bermaksud untuk  menampilkan dan melakukan sesuatu terhadap data tersebut. Inilah fungsi dari perintah  SELECT. Sintaks dasar dari perintah SELECT tampak seperti berikut ini:

(38)

SELECT daftar_pilihan_kolom FROM  daftar_tabel WHERE  batasan_batasan_utama GROUP BY grup_kolom ORDER BY urutan_kolom HAVING batasan_batasan_tambahan LIMIT jumlah  daftar_pilihan_kolom, menunjukkan kolom­kolom apa saja yang akan dipilih atau  ditampilkan  daftar_tabel, menunjukkan dari tabel apa saja baris­baris data diambil atau dipilih  batasan_batasan_utama, menunjukkan apa saja kondisi­kondisi baris data yang  harus terpenuhi  grup_kolom, menunjukkan bagaimana mengelompokkan hasil­hasil query  urutan_kolom, menunjukkan bagaimana mengurutkan hasil­hasil  query  batasan_batasan_tambahan, menunjukkan apa saja kondisi­kondisi tambahan dari  baris data yang harus terpenuhi  jumlah, menunjukkan batas dari hasil query. 2.13.1.1 Pengambilan data sederhana Perintah SELECT sederhana untuk mengambil data dari suatu tabel dapat Anda lihat  dalam contoh berikut ini: Untuk pengambilan data berdasarkan kolom ­kolom tertentu , tampak seperti berikut:

(39)

2.13.1.2 Membatasi suatu perintah SELECT dengan WHERE

Anda dapat mengambil atau memilih hanya baris­baris data tertentu saja dari tabel Anda:

2.13.1.3 Mengurutkan pemilihan data menggunakan ORDER BY

Dalam contoh sebelumnya, hasil baris­baris data yang ditampilkan tidak dalam urutan  tertentu.   Biasanya  lebh   mudah   untuk   menguji   output   dari   query   jika   baris­baris  data  diurutkan.  Untuk mengurutkan baris data, gunakan klausa ORDER BY, seperti berikut ini:

 

Pengurutan baku adalah ascending, dengan susunan urutan dimulai dari nilai­nilai yang  paling kecil. Untuk mengurutkan dalam susunan yang berlawanan (descending), gunakan  kata kunci DESC pada nama kolom yang akan Anda urutkan, seperti berikut ini:

(40)

2.13.1.4 Membatasi pengambilan data menggunakan klausa LIMIT

Klausa LIMIT memungkinkan Anda untuk membatasi output dari query. Klausa LIMIT  sangat   berguna,   khususnya   bersama   dengan   klausa   ORDER   BY.   Ini   berguna   untuk  mengambil baris­baris data   berdasarkan posisinya dalam sekumpulan baris data hasil  pemilihan. LIMIT mungkin diberikan dengan satu atau dua argumen, yang mana berupa bilangan  bulat: LIMIT jumlah_baris LIMIT jumlah_diabaikan,jumlah_baris 

jumlah_baris  menunjukkan   berapa   banyak   baris   yang   akan   ditampilkan,   sedangkan 

jumlah_diabaikan  menunjukkan   berapa   banyak   baris   data   yang   pertama     dari   hasil  pengambilan   data   yang   harus   diabaikan   untuk   tidak   ditampilkan.   Berikut   ini   contoh  penggunaan klausa LIMIT untuk menampilkan dua baris data yang pertama :

Jika LIMIT diikuti oleh dua bilangan bulat,  jumlah_diabaikan dan jumlah_baris, LIMIT  akan mengabaikan sejumlah baris data yang pertama yang ditetapkan oleh bilangan bulat  yang pertama (  jumlah_diabaikan), dan hanya akan menampilkan sejumlah baris data  berikutnya sebanyak yang ditetapkan oleh bilangan bulat yang kedua (  jumlah_baris). 

(41)

Untuk   mengabaikan   dua   baris   data   yang   pertama   dan   menampilkan   dua   baris   data  berikutnya dapat Anda lihat dalam contoh berikut: 2.13.1.5  Mengelompokkan pemilihan baris data menggunakan klausa GROUP BY Klausa GROUP BY digunakan untuk memperoleh suatu rangkuman atau ringkasan yang  menghasilkan nilai­nilai  untuk sub­grup  dari sekumpulan baris data yang dipilih. Sebagai contoh kita memiliki tiga buah tabel yang terdiri dari tabel mahasiswa, matakuliah  dan matakuliah_diikuti_mahasiswa.  Skenario nya adalah kita akan menampilkan daftar mahasiswa beserta jumlah matakuliah  yang diikutinya. Untuk itu jalankanlah query berikut ini: Dan hasil nya sebagai berikut:

(42)

2.13.2 Perintah INSERT

Perintah   INSERT   digunakan   untuk   menambahkan   data   baru   kedalam   tabel.   Perintah  INSERT memiliki dua buah  format penulisan sebagai berikut:

INSERT INTO nama_tabel (daftar_kolom) VALUES (daftar_nilai); INSERT INTO nama_tabel SET nama_kolom=nilai_kolom;

Pada format yang pertama nama_tabel menunjukkan nama tabel yang akan ditambahkan  data   kedalamnya,   daftar_kolom   menunjukkan   nama­nama   kolom   dari   tabel   yang  dipisahkan   menggunakan   tanda   koma,   selanjutnya   daftar_nilai   adalah   nilai­nilai  (dipisahkan dengan tanda koma) yang berhubungan dengan masing­masing kolom yang  disebutkan  dalam  daftar_kolom  (jumlah  kolom  harus   sama  dengan  jumlah  nilai).Pada  format yang kedua setelah klausa SET adalah daftar pasangan nama kolom dan nilainya  masing­masing yang dipisahkan menggunakan tanda koma. Salah satu dari kedua format  penulisan tersebut memungkinkan untuk menambahkan beberapa data sekaligus dengan  sebuah perintah Berikut ini contoh­contoh penulisan perintah INSERT dalam proses panambahan data  kedalam tabel mahasiswa.  

(43)

Format   penulisan   perintah   INSERT   dengan   menggunkan   klausa   SET   tampak   sebagai  berikut:

(44)

Jika Anda ingin menambahkan beberapa data sekaligus kedalam tabel mahasiswa dengan  sebuah perintah saja, maka Anda dapat lakukan hal tersebut sebagaimana dalam contoh  berikut ini:

(45)

2.13.3 Perintah REPLACE

Perintah REPLACE memiliki format penulisan perintah yang sama dengan INSERT, yaitu  sebagai berikut: REPLACE INTO nama_tabel (daftar_kolom) VALUES (daftar_nilai); REPLACE INTO nama_tabel SET nama_kolom=nilai_kolom; Perintah REPLACE mengembalikan sebuah informasi yang menunjukkan jumlah baris  yang dipengaruhi. Jika jumlah baris yang dipengaruhi oleh perintah REPLACE adalah  satu, maka baris data hanya di tambahkan kedalam tabel tanpa ada proses mengganti baris  data yang ada. Jika jumlah baris data yang dipengaruhi oleh perintah REPLACE adalah  dua baris, maka ada sebuah baris yang dihapus sebelum proses penambahan baris data  dilakukan, lihat contoh berikut ini:

Keuntungan   dari   menggunakan   perintah   REPLACE   adalah   kita   dapat   menjalankan  perintah DELETE dan INSERT sekaligus dalam sebuah operasi tunggal. Disini tidak ada  kebutuhan untuk melakukan penguncian tabel secara eksplisit sebagaimana yang mungkin  ada ketika Anda memutuskan untuk memisahkan perintah DELETE  dan INSERT.

2.13.4 Perintah UPDATE

Perintah UPDATE digunakan untuk merubah isi dari baris­baris data yang ada. Untuk  menggunakannya, sebutkan nama tabel yang akan dirubah isi baris­baris datanya, sertakan  klausa SET yang diikuti dengan daftar pasangan nama kolom dan nilainya , dan biasanya  perintah UPDATE diikuti dengan klausa WHERE yang menentukan baris­baris data mana  sajakah yang akan dirubah. Berikut ini format penulisan perintah UPDATE: UPDATE nama_tabel SET nama_kolom1=nilai1,  nama_kolom2=nilai2...WHERE ...; Sebagai contoh dalam tabel mahasiswa, kita akan merubah nilai kolom alamat dari sebuah  baris data yang memiliki mahasiswa_id=1016, sebagaimana yang tampak berikut ini:

(46)

2.13.5 Perintah DELETE

Untuk menghapus baris­baris data yang ada dalam tabel, gunakanlah perintah DELETE.  Perintah DELETE memungkinkan penggunaan klausa WHERE untuk menentukan baris­ baris data mana saja yang akan dihapus. Jika Anda tidak menyertakan klausa WHERE  maka   akan   berakibat   seluruh   baris   data   yang   ada   dalam   tabel   akan   dihapus,   Untuk  menghapus seluruh baris data yang ada dalam tabel format penulisannya seperti berikut  ini: DELETE FROM nama_tabel; Sedangkan untuk menghapus baris­baris data tertentu saja, format penulisannya seperti  berikut ini: DELETE FROM nama_tabel WHERE ...; Sebagai contoh, kita akan menghapus baris data yang ada dalam tabel mahasiswa yang  memiliki mahasiswa_id=1016, seperti berikut ini:

(47)

2.14 Join tabel

Pada   dasarnya   join   tabel   adalah   mengkombinasikan   dua   buah   tabel   berdasarkan  perbandingan nilai­nilai kolom yang dipilih. Join tabel menghasilkan baris­baris data yang  hanya   ada   selama   query   itu   dibuat   atau   dijalankan.   Menggunakan   join   untuk   secara  temporer menciptakan baris­baris data yang lengkap dari suatu database yang  membagi  data­data   yang   berhubungan   melalui   atau   ke   beberapa   tabel   terpisah   (hasil   dari  normalisasi).

2.14.1 Cross­join

Cross­join   antar   dua   buah   tabel,   mengambil   data   dari   baris   data   dalam   tabel   1   dan  menggabungkannya  dengan/ke setiap baris­baris data dari tabel 2. Hal ini dapat dilakukan  dengan dua format penulisan,  seperti contoh berikut: mysql> SELECT nama_matakuliah, nama_depan FROM matakuliah,  mahasiswa; mysql> SELECT nama_matakuliah, nama_depan FROM matakuliah CROSS  JOIN mahasiswa;

2.14.2 Inner Join

Dalam suatu Inner join, perbandingan dibuat antara dua kolom yang memiliki nilai yang  sama. Gunakan metode ini untuk memilih kolom­kolom tertentu dari kedua tabel, dan  hanya baris­baris data yang benar saja yang digabungkan. Inner join dapat ditulis dengan  menggunakan dua format penulisan yang brebeda. Pada salah satu format daftar tabel­tabel  yang digabungkan dipisahkan dengan tanda koma. Sedangkan pada format penulisan yang  lainnya menggunakan klausa INNER JOIN. Kedua format akan menampilkan hasil yang  sama:

Referensi

Dokumen terkait

1) Selisih anggaran. Selisih anggaran disebabkan oleh perbedaan antara biaya overhead pabrik sesungguhnya dibandingkan budget biaya overhead pabrik pada kapasitas

yang meliputi pelaksanaan tindakan, hasil tindakan, dan dukungan teori serta hasil penelitian yang ada maka dapat ditarik kesimpulan bahwa penggunaan model

Secara psikologi, penderita tidak melakukan kegiatan perawatan diri disebabkan oleh kurangnya minat dan kesadaran penderita akan pentingnya kegiatan perawatan diri,

Sebuah elektron dari luar kulit yang berenergi lebih tinggi kemudian mengisi lubang, dan perbedaan energi antara kulit yang berenergi lebih tinggi dengan kulit

Implikasi dari hasil penelitian ini adalah bahwa layanan bimbingan kelompok dengan teknik modeling merupakan salah satu alternatif yang dapat dipilih untuk dite- rapkan dan

Berdasarkan hasil studi literatur yang dilakukan penulis tentang aplikasi trigonometri dalam penentuan arah kiblat menggunakan pendekatan ruang vektor dan

Penelitian ini bertujuan untuk mengetahui pengaruh konsentrasi kitosan – kolagen, melihat karakterisasi optimum dari membran selulosa bakteri coating kitosan – kolagen

Eksploitasi Gili Trawangan sebagai tempat pariwisata menjadi penyebab utama terancam punahnya burung gosong kaki-oranye, jika masih ingin melihat keberadaan burung tersebut