Pertemuan_9_ baru

advertisement
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,
menggunakan SQL, proses
Informix dan Sybase. Dengan
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
49
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
memiliki field-field. Umumnya
database memiliki tabel-tabel. Tiap-tiap tabel
informasi
tersimpan
secara logik merupakan struktur 2 dimensi
dalam tabel
–
tabel
yang
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
,misalnya.
Sehingga
untuk
ataupun
percabangan
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
50
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
51
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
dideklarasikan. Sebaliknya,
yang ditetapkan
pada
saat
field
tersebut
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
database yang bernama mysql
sebuah
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
52
Contoh
databases;
di
berarti
atas
kita
menunjukkan bahwa dengan menggunakan sintak
dapat
menampilkan
seluruh nama
database
show
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
53
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
54
•
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 user.
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 dimiliki
dimil 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
database
-
V$_ Menampilkan performansi server database dan penguncian, hanya dapat
diakses oleh DBA.
Modul Teori Database – Aknela 2013
55
Pembuatan Tabel dengan Subquery
•
Table dapat dibuat dengan perintah CREATE TABLE dikombinasikan dengan
pilihan AS subquery. Untuk mencocokkan kolom yang sesuai dengan kolom yang
ada pada subquery.
•
Hasilnya adalah table dept30 yang berisi data pegawai yang bekerja di department
30 pada table pegawai.
•
Statement ALTER TABLE
Perintah ALTER TABLE digunakan untuk :
Modul Teori Database – Aknela 2013
56
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
57
•
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
58
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
59
•
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
60
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.
Modul Teori Database – Aknela 2013
61
Download