bab 7 membuat constraint dengan query analyzer

Upload: ib-pradnya-susastra

Post on 08-Jul-2015

305 views

Category:

Documents


0 download

TRANSCRIPT

SQL Server 2000 / MySQL Navicat 2005

BAB 7 MEMBUAT CONSTRAINT7.1. Latihan Latihan 7.1. Setelah anda berhasil memasukkan data ruang dan Jurusan pada Bab 6. Lakukan pengisian data kembali untuk data calon mahasiswa (disimpan pada table CalonMahasiswa) pada dabatase PMB dengan data - data berikut ini dengan menggunakan enterprise manager.

Tabel 7.1. Data data Calon Mahasiswa

Langkah Penyelesaiannya untuk melakukan penyisipan pada seluruh field untuk record pertama pada table CalonMahasiswa adalah sebagai berikut. Klik kanan mouse pada tabel CalonMahasiswa, dan pilih Open table dan Return Top

@ 2010 : www.didiksetiyadi.com, [email protected]

1

SQL Server 2000 / MySQL Navicat 2005

Gambar 7.1. Properties Insert data table CalonMahasiswa

Lakukan pengisian datanya untuk data data mahasiswa yang tampak pada tabel 7.1 diatas.

7.2. Membuat Primary Key Constraint Dalam pembahasan ini anda akan mengetahui bagaimana membuat suatu primary key pada suatu tabel dengan menggunakan perintah ALTER TABLE, dengan menggunakan Query Analyzer. Sintaks : ALTER TABLE Add CONSTRAINT nama_constraint Constraint Type (nama_kolom) Latihan 7.2. Misalkan kita akan membuat primary key pada tabel Ruang pada database PMB yang telah kita buat pada bab 5 sebelummnya, dengan primary keynya adalah id_ruang dengan nama constraint PkRuang. Langkah Penyelesaian : Definisikan nama constraint yang akan dibuat (dalam hal ini PkRuang) Aktifkan Query Analyzer dan database PMB Pada Query Analyzer ketik perintah berikut :

Gambar 7.2. Pembuatan primary key pada table Ruang (gagal)

Pada tampilan gambar 7.2. diatas anda gagal membuat primary key, karena sebelumnya anda telah membuat primary key melalui enterprise manager. Untuk itu anda harus menghilangkan dulu primary key nya dengan menggunakan enterprise manager. Caranya klik table Ruang, lalu klik design table. Untuk menghilangkan primary key pada tabel Ruang melalui enterprise manager dengan melakukan klik icon key pada field id_ruang, kemudian simpan kembali table tersebut.

Gambar 7.3. Menghilangkan primary key pada table Ruang

Kemudian anda kembali ke query analyzer, dari perintah sebelumnya tekan F5, maka hasilnya akan nampak pada gambar 4.4. berikut ini.

@ 2010 : www.didiksetiyadi.com, [email protected]

2

SQL Server 2000 / MySQL Navicat 2005

Gambar 7.4. Pembuatan primary key pada table Ruang (sukses)

Latihan 7.3. Lakukan hal yang sama untuk membuat primary key pada tabel Jurusan dan tabel CalonMahasiswa, dengan ketentuan sebagai berikut : Definisikan nama constraint yang akan dibuat untuk tabel Jurusan adalah PkJurusan dan tabel CalonMahasiswa adalah PkCalonMahasiswa dengan menggunakan alter table. Latihan 7.4. Lakukan pembuatan tabel Test dengan struktur tabel sebagai berikut.

Gambar 7.5. Struktur table Test

Buat create table seperti gambar 7.6. berikut ini dengan query analyzer.

Gambar 7.6. Create table Test

Primary key dari table Test tersebut adalah id_calon dan tgl_test Foreign key nya adalah id_calon dan id_ruang (nama field, tipe data dan lebar dari kedua field ini harus sama spseri yang ada pada tabel CalonMahasiswa dan tabel Ruang. Berikut ini adalah cara untuk membuat primary key pada tabel Test tersebut diatas (lihat pada gambar7.7.)

Gambar 7.7. Pembuatan primary key pada table Test

Hasilnya bisa dilihat melalui enterprise manager, apakah betul primary keynya adalah (id_calon dan tgl_test). Jalankan enterprises manager, klik database PMB, klik table, klik Test, lalu klik kanan Design Table, maka hasilnya akan tampak pada gambar 7.8. berikut ini.3

@ 2010 : www.didiksetiyadi.com, [email protected]

SQL Server 2000 / MySQL Navicat 2005

Gambar 7.8. Design table Ruang melalui enterprise manager

Akan terlihat bahwa primary keynya dua, kalau anda sukses membuatnya dengan query analyzer.

Latihan 7.5. Berikut ini anda akan mempelajari bagaimana membuat foreign key constraint pada tabel CalonMahasiswa. Nama tabel : CalonMahasiswa Nama primary key : id_calon Nama foreign key : id_jurusan Dalam table CalonMahasiswa yang menjadi primary key adalah id_calon (unik) dan yang menjadi foreign key adalah (id_jurusan), dimana pada tabel calonMahasiswa membutuhkan data yang ada pada abel Jurusan. Artinya, bila seorang melakukan pendaftaran maka dia harus memilih jurusannya apa. Pada dasarnya foreign key constraint adalah untuk merelasikan antara tabel Jurusan dengan tabel CalonMahasiswa (hubungan relasi one to many). Aktifkan Query Analyzer dan database PMB Pada Query Analyzer ketik perintah berikut :

Gambar 7.9. Merelasikan table calon Mahasiswa dengan table Jurusan (foreign key constraint)

Isikan data-data berikut ini dengan perintah insert into dan disimpan pada table Test.

Gambar 7.10. Insert data pada table Test

Lakukan pengisian data pada table Test untuk data data berikut ini, bisa dengan query analyzer atau enterprise manager.

@ 2010 : www.didiksetiyadi.com, [email protected]

4

SQL Server 2000 / MySQL Navicat 2005

Tabel 7.2. Data data Test

Latihan 7.6 Pada latihan ini anda akan membuat database dan tablel yang dilengkapi dengan beberapa contraint : Buat Database baru dengan nama Personal Buat tabel dengan nama Karyawan, dengan menggunakan query analyzer dengan struktur tabel seperti terlihat pada gambar 6.10. Buat Constraint dengan ketentuan : Kolom NIP harus unik dan tidak boleh Null dan sebagai primary key. Membatasi kolom golongan dengan nilai A s/d I Membatasi kolom kode divisi dengan nilai A s/d F Membatasi kolom sex dengan nilai 1 s/d 4 Default anak adalah 0. Langkah Penyelesaian : Definisikan semua nama constraint yang akan dibuat Pada Query Analyzer di bawah ini ketik perintah berikut ini :

@ 2010 : www.didiksetiyadi.com, [email protected]

5

SQL Server 2000 / MySQL Navicat 2005

Gambar 7.11. Query membuat Table Karyawan dengan Constraint

Anda menuju enterprises manager, klik database Personal, klik table, apabila table Karyawan belum muncul lakukan klik (Refresh). Lalu klik Karyawan, klik kanan lalu Design Table, sehingga hasilnya akan nampak pada gambar 7.12. berikut ini.

Gambar 7.12. Design Table Karyawan

Cobalah masukkan data berikut ini pada tabel karyawan dengan Enterprise Manager, datanya sebagai berikut :

Tabel 7.3. Data data Table Karyawan

Tambahlah data pada tabel karyawan dengan data-data sebagai berikut :

0025,Tri Wiyati,4,H,11/11/68,F,3,Semarang,Jl. Pangeran Kuda No.2,Bogor, 876123,2 Perhatikan apa yang terjadi ? SQL Server menolak data yang telah diinput karena kolom kodedivisi hanya dapat diisi dengan nilai A s/d F, kolom sex hanya dapat diisi dengan niali 1/sd 2.

Gambar 7.13. Sintaks error dengan Constraint@ 2010 : www.didiksetiyadi.com, [email protected] 6

SQL Server 2000 / MySQL Navicat 2005

Latihan 7.7 Aktifkan database Personal dan buat tabel baru dengan nama Gaji dengan struktur tabel Gaji sebagai berikut : Golongan Char(1) Gaji Float Pada tabel tersebut buat aturan-aturan (constraint) dengan ketentuan sebagai berikut : Kolom golongan harus unik tidak boleh ada yang sama (Primary Constraint) Langkah Penyelesaian : Pada Query Analyzer ketik perintah berikut :

Gambar 7.14. Membuat table Gaji dengan Primary Key Constraint

Lalu Tekan F5 mengeksekusi . Ketik perintah Sp_help Gaji untuk mengetahui apakah tabel telah terbentuk ?

Gambar 7.15. Uraian table Gaji yang terbentuk

Isikan data pada tabel gaji yang telah terbentuk dengan perintah insert into, datanya sebagai berikut :

@ 2010 : www.didiksetiyadi.com, [email protected]

7

SQL Server 2000 / MySQL Navicat 2005

Golongan A B C D E F G H I

Gaji 260.000 325.000 400.000 500.000 800.000 1.200.000 1.750.000 2.500.000 5.000.000

Tabel 7.4. Data data table Gaji

Latihan 7.8. Lakukan pembuatan tabel baru lagi pada database Personal dengan nama table Divisi dengan perintah Create Table. Langkah Penyelesaian : Pada Query Analyzer ketik perintah berikut : Lalu Tekan F5

Gambar 7.16. Membuat table Divisi non Constraint Primary Key

Setelah tabel terbentuk buat constraint primary key pada tabel tersebut dengan ketentuan kolom kodedivisi harus unik dan tidak boleh null.

Langkah Penyelesaian : Karena tabel telah terbentuk, maka perintah yang digunakan Alter Table, pada Query Analyzer ketik perintah berikut :

Gambar 7.17. Membuat contraint primary key pada table Divisi

Isikan data pada tabel Divisi yang telah terbentuk dengan perintah Insert Into. Datanya sebagai berikut :

@ 2010 : www.didiksetiyadi.com, [email protected]

8

SQL Server 2000 / MySQL Navicat 2005

Kodedivisi A B C D E F

Namadivisi Personalia Pemasaran Umum Produksi Keuangan Pengembangan

Tabel 7.5. Data data table Divisi

Latihan 7.9 Buatlah Constraint Foreign Key untuk ketiga tabel tersebut pada Database Personal yang meliputi table Karyawan, table Gaji dan table Divisi. Langkah Penyelesaian : Karena ketiga tabel telah terbentuk maka perintah yang digunakan adalah : ALTER TABLE. Sintaks : ALTER TABLE nama_tabel Add Constraint nama_constraint Foreign Key (nama_kolom) References nama_tabel(Nama_kolom) Hubungkan kolom kodedivisi pada tabel Karyawan dengan kolom lodedivisi yang ada pada tabel Divisi Pada Query Analyzer ketik perintah berikut ini :

Gambar 7.18. Membuat Constraint Foreign Key table Karyawan dengan Divisi

Latihan 7.10 Hubungkan (relasikan) antara kolom golongan yang ada pada tabel Karyawan dengan kolom Golongan yang ada pada tabel Gaji Pada Query Analyzer ketik perintah berikut ini, lalu tekan F5

Gambar 7.19. Membuat Constraint Foreign Key table Karyawan dengan Gaji (error)@ 2010 : www.didiksetiyadi.com, [email protected] 9

SQL Server 2000 / MySQL Navicat 2005

Perhatikan apa yang terjadi, anda tidak dapat merelasikan antara table Karyawan dengan Gaji, dikarenakan lebar tipe data golongan pada table Karyawan tidak sama dengan tipe data golongan pada table Gaji. Lakukan perubahan lebar field golongan pada table Karyawan dengan enterprise manager dengan length menjadi 1, lalu lakukan Save. Anda jalankan query analyzer pada query yang telah anda buat sebelumnya, maka hasilnya adalah sebagai berikut :

Gambar 7.20. Membuat Constraint Foreign Key table Karyawan dengan Gaji (succes)

Anda telah sukses merelasikan antara table Karyawan dengan table Gaji.

7.3. Menghapus Constraint Sebuah constraint dapat dihapus dengan menggunakan perintah ALTER TABEL dengan sintaks : ALTER TABLE nama_tabel DROP CONSTRAINT nama_constraint Keterangan : Nama_tabel Nama_constraint : Nama tabel dimana constraint berada : Nama constraint yang akan dihapus

Contoh : Kita akan melakukan pengahapusan dihapus constraint yang telah dibuat pada tabel karyawan dengan nama constraint Fkdivisi Langkah penyelesaian : Aktifkan Query analyzer Ketik perintah berikut ini :

Gambar 7.21. Menghapus Constraint FkDivisi pada table Karyawan

Latihan 7.11. Buatlah tabel Bayar dan JenisBayar pada database PMB yang telah dibentuk sebelumnya dengan perintah Create Table, dengan struktur table masing masing sebagai berikut.

@ 2010 : www.didiksetiyadi.com, [email protected]

10

SQL Server 2000 / MySQL Navicat 2005

1. Struktur table JenisBayar

Gambar 7.22. Design table JenisBayar

2. Struktur table Bayar

Gambar 7.23. Design table Bayar

Buatlah Constraint pada tabel Bayar untuk kolom-kolom berikut : Kolom Id_jenisbayar mempunyai integritas dengan tabel JenisBayar. Buat Constraint Foreign Key Kolom Id_calon mempunyai integritas dengan tabel CalonMahasiswa. Buat Constraint Foreign Key Terlebih dahulu anda harus membuat table Jenisbayar dulu sebelum membuat table Bayar.

Langkah penyelesaian : Aktifkan Query Analyzer Ketik perintah berikut ini :

Gambar 7.24. Query Membuat table Bayar

Ketik sp_help Bayar untuk mengetahui apakah tabel telah terbentuk ?

@ 2010 : www.didiksetiyadi.com, [email protected]

11

SQL Server 2000 / MySQL Navicat 2005

Gambar 7.25. Uraian table Bayar yang terbentuk

Isi tabel (bisa dengan Query atau enterprise) table JenisBayar dan Bayar dengan data data sebagai berikut :

Tabel 7.6. Data data table JenisBayar

Tabel 7.6. Data data table Bayar@ 2010 : www.didiksetiyadi.com, [email protected] 12