DATA DEFINITION LANGUAGE - haniki.files.wordpress.com · Jalankan service MySQL melalui XAMPP...
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/