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

29
DATA DEFINITION LANGUAGE PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011 Rizki Arif Firdaus http://haniki.wordpress.com/praktikum/

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

Page 1: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

DATA DEFINITION LANGUAGE

PRAKTIKUM BERKAS DAN BASIS DATA

2010/2011

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

Page 2: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 3: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 4: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 5: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 6: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 7: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 8: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

Contoh : Tabel Pembeli

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

Page 9: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 10: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 11: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 12: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 13: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 14: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 15: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 16: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 17: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 18: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 19: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 20: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 21: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

Foreign Key

Cascade

Set Null

No Action

Restrict

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

Page 22: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 23: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 24: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 25: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 26: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 27: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 28: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/

Page 29: DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP Control Panel. MySQL console dapat digunakan untuk berinteraksi dengan MySQL server.

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/