Title | Data Definition Language (DDL) – Database & Tabel 1 MODUL I DATA DEFINITION LANGUAGE (DDL) DATABASE & TABEL |
---|---|
Author | Komank Oshin |
Pages | 8 |
File Size | 664.6 KB |
File Type | |
Total Downloads | 114 |
Total Views | 239 |
Data Definition Language (DDL) – Database & Tabel MODUL I DATA DEFINITION LANGUAGE (DDL) DATABASE & TABEL A. Tujuan Praktikum Mahasiswa memahami sintaks perintah pada MySQL untuk membuat, mengubah dan menghapus database dan tabel. B. Indikat...
Accelerat ing t he world's research.
Data Definition Language (DDL) – Database & Tabel 1 MODUL I DATA DEFINITION LANGUAGE (DDL) DATABASE & TABEL Komank Oshin
Related papers MODUL MYSQL Aal Hardiyant o
MySQL 5 Kendak Kabaklah BUKU KOMPUT ER GRAT IS DARI ACHMAT IM.NET Bayuferi Trian
Download a PDF Pack of t he best relat ed papers
Data Definition Language (DDL) – Database & Tabel MODUL I DATA DEFINITION LANGUAGE (DDL) DATABASE & TABEL A. Tujuan Praktikum Mahasiswa memahami sintaks perintah pada MySQL untuk membuat, mengubah dan menghapus database dan tabel. B. Indikator Mahasiswa mampu membuat, mengubah dan menghapus dabatase dan tabel pada MySQL menggunakan perintah yang telah dipelajari. C. Materi Data definition language (DDL) adalah perintah‐perintah yang digunakan untuk membuat ataupun menghapus database dan obyek database. Obyek database disini adalah lain tabel, view, procedure, trigger. Sebenarnya untuk membuat database dan obyeknya dapat dilakukan melalui antarmuka phpMyAdmin, namun demikian pemahaman tentang sintaks perintah sangatlah penting. Pada modul ini akan dibahas bagaimana membuat database dan tabel menggunakan perintah yang telah disediakan oleh MySQL. 1. CREATE Merupakan perintah yang digunakan untuk membuat database dan obyek database. Sintaks untuk membuat database: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: | [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name Q1. Pada sintaks di atas terdapat pilihan‐pilihan yang berada di dalam tanda {..} dan [..]. Apa maksud dari tanda {..} dan [..] tersebut? Untuk membuat suatu database baru dengan nama “db_praktikum” maka perintah yang diketikkan adalah: CREATE DATABASE db_praktikum; Ketika perintah di atas berhasil dijalankan, maka pada server akan muncul suatu database baru dengan nama “db_praktikum”. Q2. Adakah kemungkinan perintah tersebut tidak berhasil dijalankan? Kenapa?
1
Data Definition Language (DDL) – Database & Tabel Perintah IF NOT EXISTS digunakan untuk memastikan bahwa database yang ingin dibuat belum ada di server. Jika database dengan nama itu sudah ada, maka perintah pembuatan database ini akan diabaikan. CREATE DATABASE IF NOT EXISTS db_praktikum; Sintaks untuk membuat table: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_options] create_definition: col_name column_definition [CONSTRAINT [symbol]] PRIMARY KEY [index_type] | (index_col_name,...)[index_option] ... | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)[index_option] ... [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] | [index_name] [index_type] (index_col_name,...) [index_option] ... | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)[index_option] ... [CONSTRAINT [symbol]] FOREIGN KEY [index_name] | (index_col_name,...) reference_definition | CHECK (expr) column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] A s
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}] [STORAGE {DISK|MEMORY|DEFAULT}] [reference_definition]
Q3. Tipe‐tipe data apa saja yang disediakan oleh MySQL? Dari sintaks di atas dapat dilihat bahwa terdapat perintah CREATE diikuti dengan TABLE beserta table_name yang merupakan nama dari tabel yang diinginkan. Setelah nama tabel maka diikuti dengan col_name (nama field/kolom) yang diinginkan dan column_definition (berisikan tipe data serta beberapa properti yang untuk kolom tersebut). Properti itu antara lain: NOT NULL/NULL, DEFAULT, AUTO_ICREMENT, UNIQUE dan lain sebagainya. Contoh untuk membuat suatu tabel dengan nama tb_baru dengan dua buah kolom yaitu col_id (tipe data INT) dan col_name (tipe data VARCHAR) adalah sebagai berikut:
2
Data Definition Language (DDL) – Database & Tabel CREATE TABLE tb_baru ( col_id INT, col_name VARCHAR(12) ); Tiap tabel, sesuai dengan kaidah normalisasi, harus memiliki satu primary key. Primary key ini tidak boleh bernilai NULL. Untuk membuat tabel tb_baru dengan col_id sebagai primary key dapat digunakan perintah berikut: CREATE TABLE tb_baru ( col_id INT NOT NULL AUTO_INCREMENT, col_name VARCHAR(12), PRIMARY KEY (col_id) ); Foreign key digunakan untuk mendefinisikan suatu kolom pada tabel yang juga merupakan primary key pada tabel lain. Hal ini biasa ditemui pada hubungan antara dua tabel yang bersifat one‐to‐many (1‐N). Sebagai contoh: misalkan pada tabel tb_lain, kolom lain_col_id merupakan foreign key yang mengacu pada kolom col_id pada tb_baru. Perintah untuk membuat tabel tb_lain yang berisikan foreign key ini adalah sebagai berikut: CREATE TABLE tb_lain ( lain_id INT NOT NULL AUTO_INCREMENT, lain_uraian VARCHAR(45),
lain_col_id INT NOT NULL, PRIMARY KEY (lain_id), CONSTRAINT `PK1` FOREIGN KEY (lain_col_id) REFERENCES tb_baru (col_id) ON DELETE NO ACTION ON UPDATE NO ACTION);
Q4. Apa guna perintah ON DELETE NO ACTION dan ON UPDATE NO ACTION? Kata kunci CONSTRAINT digunakan untuk mendefinisikan aturan‐aturan yang melarang/memperbolehkan nilai yang dapat disimpan pada kolom suatu tabel. CONSTRAINT juga dapat digunakan untuk mendefinisikan aturan tipe data apa saja yang bisa dimasukkan ke suatu tabel. Oleh karena itu CONSTRAINT berlaku pada tingkat kolom dan tabel. Pada tingkat kolom maka aturan tersebut hanya berlaku untuk satu kolom saja sedangkan pada tingkat tabel maka aturan akan berlaku untuk seluruh kolom pada tabel tersebut. MySQL menyediakan CONSTRAINT berikut:
3
Data Definition Language (DDL) – Database & Tabel CONSTRAINT NOT NULL UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
DESKRIPSI NOT NULL digunakan untuk mendefinisikan bahwa satu kolom tidak boleh berisi nilai NULL. UNIQUE digunakan untuk menyatakan bahwa pada satu kolom tidak boleh ada nilai yang sama (duplikat). Pada satu tabel boleh terdapat lebih dari satu kolom yang UNIQUE. PRIMARY KEY digunakan untuk memastikan bahwa data pada suatu kolom adalah unik dan sekaligus membuatkan INDEX untuk akses tabel yang lebih cepat. FOREIGN KEY digunakan untuk menghubungkan dua buah tabel menggunakan masing‐masing satu kolom pada kedua tabel. Kolom yang digunakan pada satu tabel harus merupakan PRIMARY KEY dan diacu oleh kolom pada tabel lain yang disebut FOREIGN KEY. CHECK digunakan untuk mengontrol nilai pada suatu kolom. CHECK akan menentukan apakah nilai pada kolom tersebut valid atau tidak berdasarkan suatu ekspresi logika. Tiap tabel pada MySQL harus memiliki suatu nilai (termasuk nilai NULL). Ketika suatu kolom tidak diberikan nilai pada proses INSERT tabel maka kolom tersebut akan disiikan nilai yang dispesifikasikan sebagai DEFAULT.
2. ALTER Tujuan penggunaan perintah ini pada tabel adalah untuk mengubah struktur dari tabel tersebut. Sebagai contoh, perintah ini digunakan untuk menambah atau menghapus kolom, membuat atau menghapus index, mengubah tip dari suatu kolom, atau mengubah nama kolom atau tabel itu sendiri. Perintah ini juga dapat digunakan untuk mengubah karakteristik seperti storage engine yang dipakai atau komentar pada tabel.
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...] [partition_options] alter_specification: table_options | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (col_name column_definition,...) | ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
4
Data Definition Language (DDL) – Database & Tabel
| ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ... | ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name][index_type] (index_col_name,...) [index_option] ... | ADD FULLTEXT [INDEX|KEY][index_name](index_col_name,...) [index_option] ... | ADD SPATIAL [INDEX|KEY][index_name](index_col_name,...) [index_option] ... | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name] | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY | DROP {INDEX|KEY} index_name | DROP FOREIGN KEY fk_symbol | MAX_ROWS = rows | DISABLE KEYS | ENABLE KEYS | RENAME [TO|AS] new_tbl_name | ORDER BY col_name [, col_name] ... | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name] | DISCARD TABLESPACE IMPORT TABLESPACE | | ADD PARTITION (partition_definition) | DROP PARTITION partition_names | COALESCE PARTITION number REORGANIZE PARTITION [partition_names INTO | (partition_definitions)] | ANALYZE PARTITION {partition_names | ALL} | CHECK PARTITION {partition_names | ALL} | OPTIMIZE PARTITION {partition_names | ALL} REBUILD PARTITION {partition_names | ALL} | REPAIR PARTITION {partition_names | ALL} | | PARTITION BY partitioning_expression | REMOVE PARTITIONING index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH} index_option: KEY_BLOCK_SIZE [=] value | index_type | WITH PARSER parser_name table_options: table_option [[,] table_option]
Contoh penggunaan perintah ALTER: • Untuk mengubah nama tabel dari t1 menjadi t2:
5
Data Definition Language (DDL) – Database & Tabel
ALTER TABLE t1 RENAME t2;
• Untuk mengubah tipe data kolom a dari INTEGER menjadi TINYINT NOT NULL (nama kolom tidak diubah) dan kolom b dari CHAR(10) ke CHAR(20) sekaligus mengubah namanya dari b menjadi c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
• Untuk menghapus kolom c pada tabel t2:
ALTER TABLE t2 DROP COLUMN c;
• Untuk menambah suatu kolom c pada tabel t2 dengan properti AUTO_INCREMENT:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (c);
Q5. Kenapa untuk menambah kolom c dengan properti AUTO_INCREMENT harus ditambahkan NOT NULL dan PRIMARY KEY? 3. DROP Perintah DROP yang diikuti dengan nama database digunakan untuk menghapus semua tabel di database tersebut termasuk menghapus database itu sendiri. Penghapusan database dari server juga mengakibatkan semua file (fisik) yang dibuat sebagai hasil dari perintah CREATE database akan dihapus. Contoh perintah untuk menghapus database db_praktikum adalah sebagai berikut: DROP DATABASE db_praktikum; Perintah DROP pada tabel digunakan untuk menghapus satu atau lebih tabel pada database. Ketika perintah DROP TABLE dijalankan maka semua data dan definis tabel akan dihapus. Sintaks dari perintah DROP TABLE adalah sebagai berikut: DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE] Contoh perintah untuk menghapus tabel t1 dan t2 dari database adalah sebagai berikut:
6
Data Definition Language (DDL) – Database & Tabel DROP TABLE t1, t2;
D. LATIHAN Kerjakanlah latihan berikut: 1. Buatlah suatu database baru dengan nama “db_latihan”. 2. Pada “db_latihan” tambahkan tabel “m_mahasiswa” dengan field sebagai berikut: a. “mhs_NIM”, CHAR(10) b. “mhs_Nama”, VARCHAR(50), NOT NULL c. “mhs_Tanggal_Lahir”, DATE d. “mhs_Alamat”, VARCHAR(100) e. “mhs_Jenis_Kelamin”, TINYINT, DEFAULT 1 f. “mhs_Telpon”, VARCHAR(20) g. “mhs_Asal”, CHAR(5) 3. Buatlah CONSTRAINT PRIMARY KEY pada kolom “mhs_NIM”. 4. Buatlah tabel “m_kota” dengan field sebagai berikut: a. “kota_id”, CHAR(5) primary key b. “kota_nama”, VARCHAR(20) 5. Buatlah CONSTRAINT FOREIGN KEY dari tabel “m_mahasiswa” kolom “mhs_asal” ke tabel “m_kota” kolom “kota_id”. 6. Cobalah untuk menghapus tabel “m_kota”. Berhasilkah? E. REFERENSI 1. MySQL Server Documentation, http://dev.mysql.com 2. MySQL Tutorials, http://www.devshed.com
7 ...