pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan...

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

Upload: lyhanh

Post on 12-Mar-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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.

Page 2: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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.

Page 3: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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 :

Page 4: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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 :

Page 5: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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,

Page 6: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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 :

Page 7: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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

Page 8: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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

Page 9: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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

Page 10: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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.

Page 11: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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

Page 12: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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.

Page 13: Pertemuan 9 baru - wajib1969.files.wordpress.com · pembuatan software database yang diperuntukkan bagi perusahaan-perusahaan besar di dunia. Karena softwarenya tidak bebas di “pasaran”

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.