pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan...
TRANSCRIPT
Modul Teori Database – Aknela 2013 49
Pertemuan 9
Struktur Query Language(SQL)
INDIKATOR
1. Membuat table dan memodifikasi tabel dengan perintah SQL
2. Memahami integrity Constraint
- Primary key
- Foreign key
Pendahuluan
SQL ( Structured Query Language ) adalah bahasa stndart yang digunakan untuk
mengakses server database . Semenjak tahun 70-an bahasa ini telah dikembangkan oleh
IBM, yang kemudian diikuti dengan adanya Oracle, Informix dan Sybase. Dengan
menggunakan SQL, proses akses database menjadi lebih user-friendly dibandingkan
dengan misalnya dBase ataupun Clipper yang masih menggunakan perintah –
perintah pemrograman murni.
Selain MySQL, ada beberapa jenis pemograman yang berorientasi database yang
dapat digunakan untuk aplikasi di web seperti ORACLE. Oracle merupakan sebuah
perusahaan besar di dunia yang cakupan bisnis salah satunya adalah penjualan software dan
pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di
dunia. Karena softwarenya tidak bebas di “pasaran” atau tidak free software
maka sebagian besar perusahaan kecil atau menengah atau programmer web masih
menggunakan database MySQL sebagai software database perusahaan atau webnya.
Modul Teori Database – Aknela 2013 50
Berita terayar mengabarkan bahwa ORACLE merupakan perusahaan yang
mendapatkan keuntungan terbesar dalam bisnis software database.MySQL adalah sebuah
server database SQL multiuser dan multi-threaded. SQL sendiri adalah salah satu
bahasa database yang paling populer di dunia. Implementasi program server database
ini adalah program daemon 'mysqld' dan beberapa program lain serta beberapa pustaka.
MySQL dibuat oleh TcX dan telah dipercaya mengelola sistem dengan 40 buah database
berisi 10,000 tabel dan 500 di antaranya memiliki 7 juta baris (kira-kira 100 gigabyte
data). Database ini dibuat untuk keperluan sistem database yang cepat, handal dan
mudah digunakan. Walaupun memiliki kemampuan yang cukup baik, MySQL untuk
sistem operasi Unix bersifat freeware, dan terdapat versi shareware untuk sistem
operasi windows. Menurut pembuatnya, MySQL disebut seperti "my-ess-que-ell" dan
bukan my-sequel !
Sebagaimana database sistem yang lain, dalam SQL juga dikenal hierarki server
dengan database-database. Tiap-tiap database memiliki tabel-tabel. Tiap-tiap tabel
memiliki field-field. Umumnya informasi tersimpan dalam tabel – tabel yang
secara logik merupakan struktur 2 dimensi terdiri atas baris dan kolom.Field-
field tersebut dapat berupa data seperti int , realm char, date, time dan lainnya. SQL tidak
memiliki fasilitas pemrograman yang lengkap, tidak ada looping ataupun percabangan
,misalnya. Sehingga untuk menutupi kelemahan ini perlu digabung dengan bahasa
pemrograman semisal C.
Tipe Data
Beberapa jenis tipe data dalam MySQL memiliki tipe tersendiri dalam tiap
field di table databasenya. MySQL mengenal beberapa type data field, yaitu :
1. Tipe data numerik
Tipe data numerik dapat dibedakan menajdi dua kelompok, yaitu tipe data integer dan
tipe data floating point. Tipe data integer untuk data bilangan bulat sedangkan
tipe data floating point digunakan untuk bilangan desimal.
Modul Teori Database – Aknela 2013 51
Tipe data numeric dapat kita sajikan dalam table di bawah ini :
Besar kebutuhan memori penyimpanan untuk masin-masing tipe data di atas sebagai
berikut
Yang termasuk dalam tipe data string adalah tipe-tipe data berikut :
3. Tipe data waktu
Yang termasuk dalam tipe data tanggal dan waktu adalah sebagai berikut :
Modul Teori Database – Aknela 2013 52
Tipe data char() dan varchar() pada prinsipnya sama. Yang menjadi perbedaannya
adalah pada jumlah memori yang dibutuhkan untuk penyimpanan. Memori
penyimpanan yang dibutuhkan tipe data char() bersifat statis, besarnya tergantung
pada berapa jumlah karakter yang ditetapkan pada saat field tersebut
dideklarasikan. Sebaliknya, tipe data varchar() besar memori penyimpanan tergantung
terhadap berapa karakter yang digunakan ditambah 1 byte yang berisi data jumlah
karakter yang digunakan.
Pengantar Sintak Dasar
MySQL merupakan bahasa pemograman database di mana penulisan
sintaknya tidak serumit bahasa pemograman lainnya seperti java, C++ dan sebagainya.
Satu hal yang perlu diingat bahwa setiap penulisan script MySQL di Dos-Prompt harus
selalu diakhiri dengan tanda titik koma (;).
Di dalam source MySQL yang telah terinstal secara default telah terisi sebuah
database yang bernama mysql dan tes . Untuk dapat menampilkan apasaja nama
database yang telah ada maupun yang akan kita buat, gunakan sintak :
Mysql> show databases;
Perhatikan contoh di bawah ini :
Modul Teori Database – Aknela 2013 53
Contoh di atas menunjukkan bahwa dengan menggunakan sintak show
databases; berarti kita dapat menampilkan seluruh nama database yang telah
ada.Sintak untuk bisa masuk kedalam salah satu system database tersebut adalah :
Mysql>use nama_database;
Perhatikan gambar di bawah ini :
Dengan mengetikkan sintak use mysql; dan keluar kalimat database change, berarti
kita telah masuk ke dalam database mysql yang telah ada. Di setiap database tentu ada
terdapat beberapa table yang menjadi komponen dasar sebuah database. Sintak untuk
menampilkan seluruh table yang telah ada di dalam database mysql adalah :
mysql>show tables;
perhatikan gambar di bawah:
Dari gambar di atas, kita dapat melihat bahwa di dalam database mysql sudah ada
beberapa table yang telah default dari mysql-nya sendiri. Didalam database tersebut ada
table columns_priv (columns_privilege), db, host, tables_privilege, dan user di mana
tiap tablenya memiliki fungsi tertentu yang dapat diakses oleh tiap user. Database
mysql ini biasanya sering digunakan bagi webmaster sebagai tempat penyimpanan data,
Modul Teori Database – Aknela 2013 54
karena table-table yang telah ada dan table yang dibutuhkan sebagian besar telah terpenuhi.
Fungsi tiap table tersebut akan kita bahas di bawah ini.
Object Database
• Object-object Database terdiri dari :
Statement CREATE TABLE
• Untuk membuat table dibuat perintah CREATE TABLE.
CREATE TABLE [schema, ] table
( column datatype [DEFAULT expr][,…]);
Penggunaan DEFAULT
• DEFAULT digunakan untuk memberi nilai default pada kolom yang dimaksud.
• Contoh : secara default tanggal mulai bekerja adalah sama dengan tanggal system
• saat data dimasukkan, jadi : … hiredate DATE DEFAULT SYSDATE, …
Pembuatan Tabel dalam Database (SQL)
• Contoh pembuatan suatu table :
Modul Teori Database – Aknela 2013
• Untuk menampilkan struktur dari table :
• Terdapat 2 (dua) macam table dalam Oracle Database :
1. Tabel User yaitu table yang dibuat dan dipelihara oleh user, berisi informasi
2. Data Dictionary yaitu table yang dibuat dan dipelihara oleh Oracle server, dan berisi
informasi database
Melakukan query pada Data Dictionary
- USER_ Berisi object yang dimiliki oleh user.
- ALL_ Semua object yang dapat diakses oleh user, baik yang dimil
tidak tapi user punya hak akses atas object yang tidak dimiliki tsb
- DBA_ User dengan privilege DBA yang dapat mengakses sembarang object dalam
database
- V$_ Menampilkan performansi server database dan penguncian, hanya dapat
diakses oleh DBA.
Aknela 2013
Untuk menampilkan struktur dari table :
Terdapat 2 (dua) macam table dalam Oracle Database :
Tabel User yaitu table yang dibuat dan dipelihara oleh user, berisi informasi
Data Dictionary yaitu table yang dibuat dan dipelihara oleh Oracle server, dan berisi
Melakukan query pada Data Dictionary
USER_ Berisi object yang dimiliki oleh user.
ALL_ Semua object yang dapat diakses oleh user, baik yang dimil
tidak tapi user punya hak akses atas object yang tidak dimiliki tsb
DBA_ User dengan privilege DBA yang dapat mengakses sembarang object dalam
V$_ Menampilkan performansi server database dan penguncian, hanya dapat
55
Tabel User yaitu table yang dibuat dan dipelihara oleh user, berisi informasi user.
Data Dictionary yaitu table yang dibuat dan dipelihara oleh Oracle server, dan berisi
ALL_ Semua object yang dapat diakses oleh user, baik yang dimiliki atau pun yang
tidak tapi user punya hak akses atas object yang tidak dimiliki tsb
DBA_ User dengan privilege DBA yang dapat mengakses sembarang object dalam
V$_ Menampilkan performansi server database dan penguncian, hanya dapat
Modul Teori Database – Aknela 2013
Pembuatan Tabel dengan Subquery
• Table dapat dibuat dengan perintah CREATE TABLE dikombinasikan dengan
pilihan AS subquery.
ada pada subquery.
• Hasilnya adalah table dept30 yang berisi data
30 pada table pegawai.
•
Statement ALTER TABLE
Perintah ALTER TABLE digunakan untuk :
Aknela 2013
Pembuatan Tabel dengan Subquery
Table dapat dibuat dengan perintah CREATE TABLE dikombinasikan dengan
AS subquery. Untuk mencocokkan kolom yang sesuai dengan kolom yang
Hasilnya adalah table dept30 yang berisi data pegawai yang bekerja di department
30 pada table pegawai.
Statement ALTER TABLE
Perintah ALTER TABLE digunakan untuk :
56
Table dapat dibuat dengan perintah CREATE TABLE dikombinasikan dengan
Untuk mencocokkan kolom yang sesuai dengan kolom yang
pegawai yang bekerja di department
Modul Teori Database – Aknela 2013 57
� Menambah kolom baru
� Memodifikasi kolom yang sudah ada
� Mendefinisi nilai default untuk kolom baru
• Menambahkan Kolom baru ke dalam Tabel
Sintak dari perintah ALTER TABLE untuk menambah kolom baru pada table :
ALTER TABLE table
ADD (column datatype [DEFAULT expr] [, column datatype] … );
• Memodifikasi Kolom pada Tabel
Sintak dari perintah ALTER TABLE untuk memodifikasi kolom pada Tabel :
• ALTER TABLE table
• MODIFY (column datatype [DEFAULT expr][, column datatype]
… );
Menghapus Tabel
Modul Teori Database – Aknela 2013 58
• Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal
berikut :
- Semua data dan struktur dari table akan dihapus
- Semua transaksi pending akan di-commit
- Semua indeks akan dihapus
- Perintah drop ini tidak bisa di-rollback
Definisi Constraint
Contsraint adalah batasan atau aturan yang ada pada table. Constraint mencegah
penghapusan data dari suatu table yang mempunyai keterkaitan dengan table yang lain.
Misal terdapat keterkaitan antara table department dengan table pegawai. Dimana pada
table pegawai menyimpan informasi kolom nomer department yang juga terdapat pada
table department. Jika baris dengan nomer department ‘10’ akan dihapus dari table
department, sedangkan terdapat data pegawai yang bekerja pada department tersebut, maka
dengan adanya constraint antara dua table, penghapusan tersebut tidak bisa dilakukan.
• SQL menyediakan beberapa tipe constraint berikut :
NOT NULL PRIMARY KEY FOREIGN KEY
NOT NULL Constraint
• Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi
nilai NULL.
• Kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh
NULL.
Modul Teori Database – Aknela 2013 59
PRIMARY KEY Constraint
• Constraint PRIMARY KEY membentuk key yang unik untuk suatu table. Kolom
yang didefinisikan sebagai PRIMARY KEY akan mengidentifikasi suatu baris data
menjadi unik.
FOREIGN KEY Constraint
• FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu
table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu
PRIMARY KEY.
Menambahkan suatu Constraint
Modul Teori Database – Aknela 2013 60
• Untuk menambahkan suatu Constraint, digunakan perintah ALTER TABLE.
• Cara penulisan :
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
Menghapus Constraint
• Untuk menghapus suatu Constraint, juga digunakan perintah ALTER TABLE.
Cara penulisan : ALTER TABLE table
DROP [CONSTRAINT constraint] type (column);
• Untuk menghapus kolom yang merupakan PRIMARY KEY yang ada pada table
parent yang berhubungan dengan suatu kolom pada table child -> kolom ini
merupakan FOREIGN KEY dalam table parent, digunakan perintah CASCADE.
Modul Teori Database – Aknela 2013 61
Menonaktifkan (disabling) Constraint
• Untuk menonaktifkan constraint digunakan klausa DISABLE.
Mengaktifkan (enabling) Constraint
• Untuk mengaktifkan kembali constraint, digunakan klausa ENABLE
Menampilkan Constraint
• Tabel USER_CONSTRAINT menyimpan informasi tentang constraint.
• Kolom tipe constraint (constraint_type) dapat berisi : C untuk constraint CHECK,R
untuk referential integrity atau FOREIGN KEY, P untuk PRIMARY KEY, U untuk
constraint UNIQUE.