DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP...

Post on 09-Apr-2019

235 views 0 download

Transcript of DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP...

DATA DEFINITION LANGUAGE

PRAKTIKUM BERKAS DAN BASIS DATA

2010/2011

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Memulai MySQL

MySQL yang akan kita gunakan dalam praktikum ini telah tersedia dalam paket XAMPP (X- Apache-MySQL-PHP-Perl) di komputer lab.

Jalankan service MySQL melalui XAMPP Control Panel.

MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

Untuk menjalankan MySQL console ketikkan perintah berikut:

mysql -u root -p Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Basis Data dan Tabel

Basis data pada RDBMS merupakan kumpulan tabel yang berisi data yang saling berkaitan.

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Membuat dan Mengakses Basis Data

Di MySQL console kita dapat membuat basis data dengan perintah berikut:

CREATE DATABASE nama_basis_data;

Untuk melihat basis data:

SHOW DATABASES;

Untuk mengakses sebuah basis data:

USE nama_basis_data;

Untuk menghapus sebuah basis data:

DROP DATABASE nama_basis_data;

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Referensi

• Referensi lengkap mengenai SQL yang didukung MySQL bisa dilihat di MySQL Manual (http://dev.mysql.com/doc/mysql/en/).

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Membuat Tabel dalam Basis Data

CREATE TABLE nama_tabel (

nama_kolom1 tipe_data1 [NULL/NOT NULL]

[DEFAULT default_value] [AUTO_INCREMENT]

[UNIQUE [KEY] | [PRIMARY] KEY],

nama_kolom2 tipe_data2 [NULL/NOT NULL]

[DEFAULT default_value] [AUTO_INCREMENT]

[UNIQUE [KEY] | [PRIMARY] KEY],

dst...

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Membuat Tabel pada Basis Data

Numerik

bilangan bulat: TINYINT, SMALLINT, INT, MEDIUMINT, BIGINT

bilangan riil floating-point: FLOAT, DOUBLE

bilangan riil fixed-point: DECIMAL/NUMERIC

Waktu

DATE, DATETIME, TIME, YEAR

String

CHAR, VARCHAR, TEXT, ENUM, BLOB

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

Kode Pembeli: VARCHAR(20)

Nama: VARCHAR(255)

Alamat Jalan: VARCHAR(32)

Alamat Kota: VARCHAR(32)

Alamat Kode Pos: CHAR(5)

Telepon: VARCHAR(15)

Tanggal Lahir: DATE

Pekerjaan: VARCHAR(64) Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20),

nama VARCHAR(255),

alamat_jalan VARCHAR(32),

alamat_kota VARCHAR(32),

alamat_kodepos CHAR(5),

telepon VARCHAR(15),

tanggal_lahir DATE,

pekerjaan VARCHAR(64)

); Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Sintaks SQL Lainnya untuk Manajemen Tabel

Menghapus tabel:

DROP TABLE nama_tabel;

Melihat struktur tabel:

DESCRIBE nama_tabel;

Melihat tabel apa saja yang ada di basis data:

SHOW TABLES;

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

NULL

NULL merupakan nilai khusus yang digunakan untuk merepresentasikan nilai yang tidak diketahui atau tidak dapat diterima.

1 is not NULL

0 is not NULL

' ' is not NULL

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20) NOT NULL,

nama VARCHAR(255) NOT NULL,

alamat_jalan VARCHAR(32) NOT NULL,

alamat_kota VARCHAR(32) NOT NULL,

alamat_kodepos CHAR(5) NOT NULL,

telepon VARCHAR(15) NOT NULL,

tanggal_lahir DATE NOT NULL,

pekerjaan VARCHAR(64) NOT NULL

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Constraint pada Basis Data

Merupakan batasan mengenai isi basis data atau operasi basis data.

SQL constraints mencakup 4 aturan integritas yang spesifik:

primary key constraint (untuk menjamin existence integrity).

unique constraint (untuk menjamin candidate key integrity).

foreign key constraint (untuk menjamin referential integrity).

check constraint (untuk membatasi nilai dari sebuah kolom).

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Primary Key Constraint

Merupakan penunjuk identitas untuk baris-baris dalam sebuah tabel.

Setiap tabel hanya memiliki sebuah primary key.

Terdiri dari satu atau lebih kolom.

Isi dari sebuah kolom yang merupakan primary key tidak boleh bernilai NULL.

Isi dari kombinasi kolom yang merupakan primary key tidak boleh bernilai NULL pada semua kolomnya (kalau hanya pada sebagian kolom masih mungkin).

Sintaks: PRIMARY KEY(nama_kolom, ...)

Contoh? Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20) PRIMARY KEY,

nama VARCHAR(255) NOT NULL,

alamat_jalan VARCHAR(32) NOT NULL,

alamat_kota VARCHAR(32) NOT NULL,

alamat_kodepos CHAR(5) NOT NULL,

telepon VARCHAR(15) NOT NULL,

tanggal_lahir DATE NOT NULL,

pekerjaan VARCHAR(64) NOT NULL

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

--atau

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20),

nama VARCHAR(255) NOT NULL,

alamat_jalan VARCHAR(32) NOT NULL,

alamat_kota VARCHAR(32) NOT NULL,

alamat_kodepos CHAR(5) NOT NULL,

telepon VARCHAR(15) NOT NULL,

tanggal_lahir DATE NOT NULL,

pekerjaan VARCHAR(64) NOT NULL,

PRIMARY KEY(kode_pembeli)

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Unique Key Constraint

Mirip dengan primary key, nilai pada kolom/kombinasi kolom yang merupakan unique key harus unik.

Perbedaannya adalah kolom/gabungan kolom yang merupakan unique key boleh bernilai NULL.

Sintaks: UNIQUE(nama_kolom, ...)

Contoh?

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20) PRIMARY KEY,

nama VARCHAR(255) NOT NULL UNIQUE,

alamat_jalan VARCHAR(32) NOT NULL,

alamat_kota VARCHAR(32) NOT NULL,

alamat_kodepos CHAR(5) NOT NULL,

telepon VARCHAR(15) NOT NULL,

tanggal_lahir DATE NOT NULL,

pekerjaan VARCHAR(64) NOT NULL

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembeli

--atau

CREATE TABLE pembeli(

kode_pembeli VARCHAR(20),

nama VARCHAR(255) NOT NULL,

alamat_jalan VARCHAR(32) NOT NULL,

alamat_kota VARCHAR(32) NOT NULL,

alamat_kodepos CHAR(5) NOT NULL,

telepon VARCHAR(15) NOT NULL,

tanggal_lahir DATE NOT NULL,

pekerjaan VARCHAR(64) NOT NULL,

PRIMARY KEY(kode_pembeli),

UNIQUE(nama)

); Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Foreign Key

Cascade

Set Null

No Action

Restrict

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Contoh : Tabel Pembelian

CREATE TABLE pembelian(

no_nota CHAR(10),

kode_pembeli VARCHAR(20) NOT NULL,

kode_pegawai VARCHAR(20) NOT NULL,

tanggal_waktu DATETIME NOT NULL,

total_harga INTEGER(11) NOT NULL,

PRIMARY KEY(no_nota),

FOREIGN KEY(kode_pembeli) REFERENCES

pembeli(kode_pembeli)

ON UPDATE CASCADE ON DELETE NO ACTION,

FOREIGN KEY(kode_pegawai) REFERENCES

pegawai(kode_pegawai)

ON UPDATE CASCADE ON DELETE RESTRICT

); Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Index

Index digunakan untuk mempercepat pencarian baris dengan nilai tertentu pada suatu kolomnya .

Tanpa index, DBMS harus melakukan pencarian mulai dari baris pertama hingga ke seluruh tabel untuk mencari baris yang sesuai.

Tips: indekslah kolom yang sering digunakan sebagai kriteria pencarian.

Contoh?

Rizki Arif Firdaus

http://haniki.wordpress.com/praktikum/

Contoh : Tabel Buku

CREATE TABLE buku (

kode_buku CHAR(10),

judul VARCHAR(255) NOT NULL,

harga_supplier INTEGER (11) NOT NULL,

harga_jual INTEGER(11) NOT NULL,

stok INTEGER(5) NOT NULL,

PRIMARY KEY(kode_buku),

INDEX(judul)

);

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Alter Table

Digunakan untuk mengubah struktur dari tabel yang sudah ada

Menambah kolom:

ALTER TABLE nama_tabel ADD [COLUMN] nama_kolom tipe_data [opsi lain];

Menghapus kolom:

ALTER TABLE nama_tabel DROP [COLUMN] nama_kolom;

Mengubah kolom:

ALTER TABLE nama_tabel CHANGE kolom_lama kolom_baru tipe_data [opsi lain];

Mengubah nama tabel:

ALTER TABLE nama_tabel RENAME tabel_baru;

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Storage Engine

• MyISAM

– Mendukung fulltext-index.

– Tidak mendukung transaksi.

– Tidak mendukung foreign key.

• InnoDB

– Tidak mendukung fulltext-index.

– Mendukung transaksi.

– Mendukung foreign key.

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Storage Engine

CREATE TABLE nama_tabel (

nama_kolom tipe_data ...,

...

) ENGINE=MyISAM;

--atau

CREATE TABLE nama_tabel (

nama_kolom tipe_data ...,

...

) ENGINE=InnoDB;

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Storage Engine

--atau lakukan perintah berikut sebelum membuat tabel

SET STORAGE_ENGINE=MyISAM;

--atau

SET STORAGE_ENGINE=InnoDB;

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

Mengaktifkan InnoDB di XAMPP Windows

Edit file C:\xampp\mysql\bin\my.cnf dengan notepad atau program pengolah kata lainnya.

Comment (beri tanda #) di bagian skip-inno-db dan uncomment (hilangkan tanda #) di bagian konfigurasi InnoDB.

Restart MySQL Server.

Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/