5.5 Menambah dan Menghapus Primary Key dan Foreign Key
Menambah kunci utama Primary Key pada sebuah tabel dapat dilakukan dengan perintah SQL sebagai berikut;
ALTER TABLE table_name ADD PRIMARY KEY column_name;
Sedangkan perintah SQL untuk menambah kunci tamu Foreign Key adalah sebagai berikut;
ALTER TABLE
table_name ADD
COINSTRAINT constrain_foreign_name FOREIGN KEY constrain_foreign_name
field_name_for_foreign_name REFERENCES table_name_reference field_name_for_foreign_name [ON DELETE] [RESTRICT ON UPDATE
RESTRICT];
E. LANGKAH-LANGKAH PRAKTIKUM
Guna membantu pemahaman kita dalam menggunakan perintah-perintah Data Definition Statement DDS untuk membuat, merubah, menduplikasi dan menghapus objek
Table, lakukan beberapa perintah query berikut ini; a. Masuklah ke MySQL sebagai root;
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -h localhost -p
Enter password: rootpassword
b. Buatlah database ujimhsdb; mysqlCREATE DATABASE ujimhsdb;
mysqlUSE ujimhsdb;
c. Buatlah table-table mahasiswa, matakuliah, dosen, jenis ujian dan hasil ujian
mahasiswa sebagai berikut; mysqlCREATE TABLE mahasiswa
-nim VARCHAR7 NOT NULL PRIMARY KEY, -nama_mhs VARCHAR35 NOT NULL,
-kelamin ENUM‘L’,’P’, -tmp_lahir VARCHAR35 NOT NULL,
-tgl_lahir DATE NULL DEFAULT “0000-00-00”, -alamat VARCHAR50 NOT NULL;
mysqlCREATE TABLE dosen
-kode_dosen VARCHAR5 NOT NULL PRIMARY KEY, -nama_dosen VARCHAR35 NOT NULL,
-kelamin ENUM‘L’,’P’, -tmp_lahir VARCHAR35 NOT NULL,
Modul Praktikum Sistem Basis Data .............................................................................. 56
-tgl_lahir DATE NULL DEFAULT “0000-00-00”, -alamat VARCHAR50 NOT NULL;
mysqlCREATE TABLE jenisujian
-kode_ujian VARCHAR3 NOT NULL PRIMARY KEY, -nama_ujian VARCHAR35 NOT NULL;
mysqlCREATE TABLE matakuliah
-kode_mtk VARCHAR6 NOT NULL PRIMARY KEY, -nama_mtk VARCHAR35 NOT NULL,
-sks INT UNSIGNED, -kode_dosen VARCHAR5 NOT NULL;
mysqlCREATE TABLE hasilujian
-nim VARCHAR7 NOT NULL, -kode_mtk VARCHAR6 NOT NULL,
-kode_ujian VARCHAR3 NOT NULL, -nilai INT UNSIGNED;
mysqlSHOW TABLES;
d. Masukkan data berikut ke masing-masing table yang telah tercipta dengan perintah
INSERT INTO. Data yang dimasukkan adalah sebagai berikut;
Tabel 1: Data Dosen
kode_dose n
nama_dosen kelami
n tmp_lahir
tgl_lahir alamat
D1001 Roy Markun
L Bogor
1969-01-23 Jl. Mayjend. Sungkono 93 D1002
Ginanjar L
Jakarta 1971-03-21 Jl. Ahmad Yani 100
D1003 Gina Sonia
P Bandung
1962-09-12 Jl. Citarum 53 D1004
Ian Antono L
Palembang 1970-10-11 Jl. Raden Saleh II42
D1005 Indri Jelita
P Bengkulu
1973-07-19 Jl. Ahmad Yani 21 D1006
Desi Ratnasari P
Padang 1970-11-09 Jl. Mayjend. Panjaitan 45
D2001 Moh. Umar
P Malang
1973-12-25 Jl. Citandui 52 D2002
Aisyah Kamila L
Semarang 1968-10-03 Jl. Panglima Sudirman 15
D2003 Ike Nurjannah
P Surabaya
1971-10-10 Jl. Sidodadi 76
Tabel 2: Data Mahasiswa
Nim nama_mhs
klm tmp_lahir
tgl_lahir alamat
0151001 Gogon
L Medan
1982-09-29 Jl. Arjono 123 0151002
Tukul Arwana L
Bogor 1982-06-22 Jl. Letjend. Sutoyo 87
0151003 Timbul
L Semarang
1983-04-19 Jl. Panglima Sudirman 63 0151004
Nunung P
Manado 1982-06-09 Jl. Merdeka Barat 90
0151005 Rohana
P Cianjur
1981-01-13 Jl. Kesatrian 100 0151006
Jujuk P
Denpasar 1983-11-07 Jl. Sarangan 75
0151007 Eko
L Surabaya
1982-12-07 Jl. Gajayana IV621B 0151008
Basuki L
Madiun 1982-06-17 Jl. Sunan Giri 54
Modul Praktikum Sistem Basis Data .............................................................................. 57
Nim nama_mhs
klm tmp_lahir
tgl_lahir alamat
0151009 Lilik Sundari
P Samarang
1982-12-19 Jl. Ambarawa 93
Tabel 3: Data Jenis Ujian
kode_ujian nama_ujian
UJR Ujian Reguler
UTS Ujian Tengah Semester
UAS Ujian Akhir Semester
UJP Ujian Perbaikan
Tabel 4: Data Matakuliah
kode_mtk nama_mtk
sks kode_dosen
KD_001 Sistem Basis Data
3 D1006
KD_002 Sistem Operasi
3 D2002
KD_003 Sistem Berkas
2 D1004
KD_004 Arsitektur Organisasi Komputer
3 D1002
KK_001 Algoritma Pemrograman 1
4 D1001
KK_002 Algoritma Pemrograman 2
4 D2001
KK_003 Algoritma Pemrograman 3
2 D1003
KK_004 Pemrograman Clint-Server
3 D1003
KK_005 Pemrograman Berbasis WEB
3 D2003
KK_006 Pemrograman Berbasis WAP
3 D1005
KK_007 Pemrograman Delphi
2 D2001
KK_008 Pemrograman Visual Basic
2 D1005
Tabel 5: Data Hasil Ujian
nim kode_mtk
kode_ujian nilai
0151001 KK_003
UJR 74
0151001 KK_004
UTS 82
0151001 KK_005
UAS 65
0151001 KK_006
UJP 56
0151002 KK_007
UJR 67
0151002 KK_008
UTS 98
0151002 KD_001
UJR 95
0151002 KD_002
UTS 83
0151003 KD_003
UTS 65
0151003 KD_004
UAS 76
0151003 KK_001
UJP 85
0151003 KK_002
UJR 96
0151004 KK_003
UTS 97
0151004 KD_001
UAS 88
0151004 KD_002
UTS 69
0151004 KD_003
UAS 74
0151005 KD_004
UJP 44
0151005 KK_001
UJR 55
0151005 KK_002
UTS 86
0151006 KK_003
UAS 67
0151006 KK_007
UAS 78
Modul Praktikum Sistem Basis Data .............................................................................. 58
nim kode_mtk
kode_ujian nilai
0151006 KK_008
UJP 45
0151007 KD_001
UJR 56
0151007 KD_002
UAS 64
0151008 KD_003
UJR 76
0151009 KK_007
UJR 68
0151009 KK_008
UTS 69
e. Lakukan duplikasi table dengan perintah sebagai berikut; mysqlCREATE TABLE copy_dosen SELECT FROM dosen;
mysqlCREATE TABLE copy_mahasiswa SELECT FROM mahasiswa; mysqlCREATE TABLE copy_matakuliah SELECT FROM matakuliah;
mysqlCREATE TABLE copy_dosen SELECT FROM dosen WHERE 0=1; f. Lakukan penggantian nama table dengan perintah sebagai berikut;
mysqlALTER TABLE copy_dosen RENAME dosen_copy; mysqlRENAME TABLE dosen_copy TO copy_dosen;
mysqlRENAME TABLE copy_mahasiswa TO mahasiswa_copy, -matakuliah_dosen TO matakuliah_copy;
g. Lakukan penghapusan table dengan perintah sebagai berikut; mysqlDROP TABLE copy_dosen;
mysqlDROP TABLE mahasiswa_copy, matakuliah_copy; h. Lakukan perubahan pada nama field dan tipe datanya dengan perintah sebagai berikut;
mysqlCREATE TABLE dosen_copy SELECT FROM dosen; mysql ALTER TABLE dosen_copy CHANGE COLUMN nama_dosen nama_dsn
- VARCHAR45; mysql ALTER TABLE dosen_copy MODIFY COLUMN nama_dsn CHAR45;
mysql ALTER TABLE dosen_copy CHANGE COLUMN nama_dsn nama_dosen - VARCHAR45;
i. Lakukan penambahan field, perubahan urutan field dan penghapusan field dengan perintah sebagai berikut;
mysql ALTER TABLE dosen_copy ADD COLUMN kota VARCHAR45 AFTER - alamat, ADD COLUMN telpon VARCHAR13 AFTER kota;
mysql ALTER TABLE dosen_copy MODIFY nama_dosen VARCHAR45 FIRST; mysql ALTER TABLE dosen_copy MODIFY kelamin ENUM‘L’, ’P’ AFTER
tgl_lahir; Modul Praktikum Sistem Basis Data ..............................................................................
59
mysql ALTER TABLE dosen_copy MODIFY kode_dosen VARCHAR5 FIRST; mysql ALTER TABLE dosen_copy DROP COLUMN kota, DROP COLUMN
telpon; j. Lakukan penambahan Primary Key dan Foreign Key sebuah Table dengan perintah
sebagai berikut; mysqlCREATE TABLE matakuiah_copy SELECT FROM matakuliah;
mysqlALTER TABLE matakuliah_copy ADD PRIMARY KEYkode_mtk; mysqlALTER TABLE matakuliah_copy ADD CONSTRAINT FK_kode_dosen
-FOREIGN KEY FK_kode_dosen kode_dosen REFERENCES dosen kode_dosen ON DELETE RESTRICT ON UPDATE RESTRICT;
Modul Praktikum Sistem Basis Data .............................................................................. 60
PRAKTIKUM VI PENGAKSESAN DATA TABEL
A. LATAR BELAKANG