Anda di halaman 1dari 36

KA1064 Perancangan Basis Data

SQL DDL (Data Definition Languange)


- Irna Yuniar, ST., MAB.- 09840548-1
SQL
• SQL (Structure Query Language) merupakan bahasa
yang digunakan untuk basis data relasional. SQL
merupakan bahasa database nonprocedural .

• Artinya pada saat akan mengakses data dari database


cukup dengan memerintahkan SQL untuk mengakses
data tersebut dibandingkan dengan memberi perintah
bagaimana caranya untuk mengakses data tersebut.

• DBMS akan berperan untuk mengatur penempatan


informasi dalam database (Sumathi & Sakkirajan,
2007).
Karakteristik SQL
• Karakteristik dari SQL (Sumathi & Sakkirajan,
2007):
– SQL merupakan bahasa yang digunakan untuk
berinteraksi dengan database
– SQL merupakan bahasa untuk mengakses data
– SQL merupakan bahasa standar RDBMS
(Relational Database Management)
– SQL merupakan bahasa nonprocedural
Karakteristik SQL
• Keuntungan utama adanya bahasa standar RDBMS
(Sumathi & Sakkirajan, 2007):
– Mengurangi biaya training
– Meningkatkan produktifitas
– Application Portability yaitu aplikasi dapat dipindahkan
dari suatu mesin ke dalam suatu mesin lain yang
menggunakan SQL.
– Usia aplikasi yang relative lebih lama. Bahasa yang
distandarkan akan bertahan dalam waktu yang lama,
walaupun akan terdapat tekanan untuk mengubah aplikasi
lama.
– Mengurangi kebergantungan terhadap vendor tunggal.
Tipe SQL
• Perintah SQL diklasifikasikan ke dalam tiga tipe (Sumathi &
Sakkirajan, 2007):
– Data Definition Language commands (DDL)
Merupakan perintah yang digunakan untuk mendefinisikan database,
termasuk didalamnya membuat mengubah dan menghapus tabel
beserta constraint yang membatasi tabel tersebut .

– Data Manipulation Language commands (DML)


Merupakan perintah yang digunakan untuk memelihara data dalam
basis data. Terdapat perintah untuk mengakses/mengambil,
menambah, mengubah dan menghapus data.

– Data Control Language commands (DCL)


Merupakan perintah untuk melakukan control sebuah database
termasuk didalamnya pemberian hak akses terhadap suatu data.
Perintah DDL
NO JENIS KETERANGAN STATEMENT SQL
PERINTAH
1 Creating Perintah untuk membuat CREATE DATABASE nama_database;
Database database baru

2 Selecting a Perintah untuk memilih USE nama_database;


Database database yang akan digunakan
(Dilakukan sebelum melakukan
pembuatan tabel baru)

3 Deleting Perintah untuk menghapus DROP DATABASE nama_database;


database database Atau
DROP DATABASE IF EXISTS
nama_database;
Perintah DDL
NO JENIS PERINTAH KETERANGAN STATEMENT SQL
4 Creating Tables Perintah untuk membuat tabel CREATE TABLE [IF NOT EXISTS] nama_tabel
baru dalam suatu database (Nama_kolom1 tipe_kolom [NOT NULL|NULL]
[PRIMARY KEY][reference_definition],
Nama_kolom2 tipe_kolom [NOT NULL|NULL]
[PRIMARY KEY][reference_definition],
Nama_kolom3……………..)
TYPE=InnoDB;
5 Altering Table Perintah untuk melakukan Perintah Umum Alter Tabel:
perubahan terhadap struktur tabel ALTER TABLE nama_tabel alter_spec
yang telah terbentuk sebelumnya
- Menambah kolom pada ALTER TABLE nama_tabel
tabel ADD [COLUMN] create_definition;
- Menambah primary key ALTER TABLE nama_tabel
ADD PRIMARY KEY (nama_kolom1,
nama_kolom2,……);
- Menambah foreign key ALTER TABLE nama_tabel
ADD [CONSTRAINT] FOREIGN KEY
(nama_kolom) REFERENCES
Nama_tabel_diacu(primary_key_tabel_diacu)
;
- Menghapus kolom ALTER TABLE nama_tabel
DROP [COLUMN] nama_kolom;
- Menghapus primary key ALTER TABLE nama_tabel
DROP PRIMARY KEY;
6 Deleting Tables Perintah untuk menghapus suatu DROP TABLE [IF EXISTS] nama_tabel;
tabel dalam database
Tipe Data MySQL
• Tipe data kolom yang dikenal oleh MySQL.
Terdapat tiga tipe data secara umum yaitu:
– tipe data numerik
– string atau teks
– dan tipe data tanggal dan waktu.
Tipe Data Numerik
• NUMERIK dan DECIMAL
Cara Pendeklarasiannya adalah sebagai berikut:

Nama_kolom DECIMAL (M,D) atau


Nama_kolom DEC (M,D)
Contoh:
Salary DEC (10,2)

• Keterangan:
– M menyatakan jumlah maksimum lebar digit
– D menyatakan jumlah digit dibelakang koma
Tipe Data Numerik
• INTEGER
• Tipe data integer digunakan untuk menyimpan
data berupa bilangan bulat.
• Berikut adalah jenis-jenis tipe integer (INT):
– TINYINT
– SMALLINT
– MEDIUMINT
– BIGINT
Tipe Data Numerik
• FLOAT
Pada tipe data FLOAT mampu merepresentasikan angka
positif antara 1.18x10-38 sampai dengan 3.40x1038 dan
mampu menampung nilai negative dalam rentang angka
yang sama.Tipe data ini digunakan untuk menyimpan data
yang membutuhkan presisi yang tinggi.

• DOUBLE
Pada tipe data DOUBLE mampu merepresentasikan angka
positif dan negative dengan rentang antara 2.23x10-308
sampai dengan 1.80x10308. Tipe data ini digunakan untuk
menyimpan data yang membutuhkan presisi yang lebih
tinggi dibandingkan dengan menggunakan tipe data FLOAT.
Tipe Data String atau Text
• CHAR
• Tipe data CHAR digunakan untuk menyimpan string dengan fixed-
length.

• Berikut adalah cara untuk mendefinisikan tipe data CHAR:


Nama_kolom CHAR (M)
Contoh:
nim CHAR (8)

• Keterangan:
– M menyatakan jumlah lebar digit
– Jumlah maksimum lebar untuk tipe data CHAR adalah 255 karakter.
Tipe Data String atau Text
• VARCHAR
• Tipe data VARCHAR digunakan untuk menyimpan string dengan
variable-length.
• Berikut adalah cara untuk mendefinisikan tipe data VARCHAR:
Nama_kolom VARCHAR (M)
Contoh:
nama VARCHAR (25)

• Keterangan:
– M menyatakan jumlah maksimum lebar digit
– Range untuk tipe data VARCHAR adalah antara 0 sampai dengan 255
karakter.
Tipe Data String atau Text
• TEXT, BLOB (Binary Large Object)
• Tipe data TEXT, BLOB digunakan untuk menyimpan string yang lebih
lebar dan tidak dapat ditampung oleh tipe data CHAR dan
VARCHAR.
• BLOB lebih diperuntukkan menyimpan tipe data biner.
• Berikut adalah jenis-jenis tipe datanya:
– TINYTEXT atau TINYBLOB dapat menyimpan sampai dengan 255
karakter atau Bytes
– TEXT atau BLOB dapat menyimpan sampai dengan 65.535 (28-1)
karakter atau Bytes
– MEDIUMTEXT atau MEDIUMBLOB dapat menyimpan sampai dengan
16.777.215 (224 -1) karakter atau Bytes
– LONGTREXT atau LONGLOB dapat menyimpan sampai dengan
4.294.967.295 (232-1) karakter atau Bytes
Tipe Data String atau Text
• ENUM
• Pada tipe data ini memungkinkan untuk
membuat pilihan nilai yang mungkin untuk suatu
kolom.
• Berikut adalah cara untuk mendefinisikan tipe
data ENUM:
Nama_kolom ENUM (‘nilai1’,’nilai2’,…..)

• Contoh:
Jenis_kelamin ENUM (‘L’,’P’)
Tanggal dan Waktu
• DATE
– Tipe data DATE digunakan untuk menyimpan data tanggal.
Format tanggal yang digunakan adalah :
– YYYY-MM-DD yang menyatakan tahun-bulan-tanggal.
Contoh: 2013-12-23.
• TIME
– Tipe data TIME digunakan untuk menyimpan data waktu,
format yang digunakan adalah HH:MM:SS yang
menyatakan jam:menit:detik. Contoh: 08:33:40
• DATETIME
– Tipe data DATETIME merupakan kombinasi tipe data DATE
dan TIME. Format yang digunakan adalah YYYY-MM-DD
HH:MM:SS
Tanggal dan Waktu
• YEAR
• Tipe data ini menyimpan data tahun.
• Berikut adalah cara untuk mendefinisikan tipe data YEAR:

• Nama_kolom YEAR (2) atau


• Nama_kolom YEAR (4)

• Dengan menggunakan YEAR(2) merepresentasikan tahun pada
rentang 1970 sampai dengan 2069.

• Setelah mengenal tipe data yang umumnya digunakan dalam
MySQL, maka pada saat membuat tabel harus dapat memilih tipe
data yang tepat untuk setiap kolom dalam tabel.

Perintah Membuat Tabel
CREATE TABLE [IF NOT EXISTS] nama_tabel
(Nama_kolom1 tipe_kolom [NOT NULL|NULL]
[PRIMARY KEY][reference_definition],
Nama_kolom2 tipe_kolom [NOT NULL|NULL]
[PRIMARY KEY][reference_definition],
Nama_kolom3 tipe_kolom [NOT NULL|NULL]
[PRIMARY KEY][reference_definition],
……………..)TYPE=InnoDB;
ER Diagram

Subtotal
alamat pekerjaan
Harga
Total

nama No_ktp

Tgl_nota Nama_barang Harga

Jumlah
Id_pelanggan No_telp Id_Nota Id_barang Stok

1 n n n
Pelanggan mendapatkan Nota_penjualan Terdiri dari Barang
Diagram Relasi Antar Tabel
Deskripsi Tabel Pelanggan

Nama Kolom Tipe Data Keterangan


Id_Pelanggan CHAR(5) Primary Key
Nama VARCHAR(30)
Alamat VARCHAR(30)
Pekerjaan VARCHAR(20)
No_Ktp CHAR(16)
No_telp VARCHAR(13)
Deskripsi Tabel Nota_Penjualan

Nama Kolom Tipe Data Keterangan


Id_Nota CHAR(11) Primary Key
Tgl_Nota DATE
Total INT
Id_Pelanggan CHAR(5) Foreign Key (Tipe data harus sama dengan kolom
yang diacu)
Deskripsi Tabel Barang

Nama Kolom Tipe Data Keterangan

Id_Barang CHAR(4) Primary Key

Nama_Barang VARCHAR(30)

Harga INT

Stok INT
Deskripsi Tabel Detail_Jual

Nama Tipe Data Keterangan


Kolom
Id_Nota CHAR(11) Primary Key, Foreign Key (Tipe data harus sama
dengan kolom yang diacu)

Id_Barang CHAR(4) Primary Key, Foreign Key (Tipe data harus sama
dengan kolom yang diacu)

Jumlah INT
Harga INT
Perintah Membuat Tabel Pelanggan
CREATE TABLE Pelanggan ( id_Pelanggan
CHAR(5) PRIMARY KEY,
Nama VARCHAR(30) NOT NULL,
Alamat VARCHAR(30) NOT NULL,
Pekerjaan VARCHAR(20) NOT NULL,
No_Ktp CHAR(16) NOT NULL,
No_telp VARCHAR(13) NOT
NULL)Type=InnoDB;
Perintah Membuat Tabel Pelanggan
• CREATE TABLE Pelanggan ( id_Pelanggan CHAR(5),
Nama VARCHAR(30) NOT NULL,
Alamat VARCHAR(30) NOT NULL,
Pekerjaan VARCHAR(20) NOT NULL,
No_Ktp CHAR(16) NOT NULL,
No_telp VARCHAR(13) NOT NULL,
PRIMARY KEY (Id_Pelanggan, kolom2,…..))
Type=InnoDB;
Perintah Membuat Tabel
Nota_Penjualan
CREATE TABLE Nota_Penjualan ( id_Nota
CHAR(11) PRIMARY KEY,
Tgl_Nota DATE NOT NULL,
Total INT NOT NULL,
Id_Pelanggan CHAR(5) NOT NULL references
Pelanggan(Id_Pelanggan)) Type=InnoDB;
Perintah Membuat Tabel
Nota_Penjualan
CREATE TABLE Nota_Penjualan ( id_Nota
CHAR(11),
Tgl_Nota DATE NOT NULL,
Total INT NOT NULL,
Id_Pelanggan CHAR(5) NOT NULL,
PRIMARY KEY (Id_Nota),
CONSTRAINT fk_Nota_Pelanggan FOREIGN KEY
(Id_pelanggan) references
Pelanggan(Id_Pelanggan)) Type=InnoDB;
Perintah Menampilkan Struktur Tabel
• Perintah untuk melihat struktur tabel yang
dibuat, yaitu mengetahui kolom-kolom, tipe
data dan constraint apa saja dalam sebuah
tabel adalah sebagai berikut:
DESCRIBE nama_tabel;

• Contoh:
DESCRIBE nota_penjualan;
Altering Table
• Altering table adalah perintah untuk
melakukan perubahan struktur tabel.
• Perubahan struktur tabel dapat berupa:
– Penambahan kolom
– Penambahan primary key
– Penambahan Foreign key
– Hapus Primary key
– Hapus Kolom
Penambahan Kolom pada tabel
• Penambahan kolom dapat dilakukan dengan perintah
sebagai berikut:
ALTER TABLE nama_tabel
ADD [COLUMN] create_definition;

• Contoh:
Ditambahkan kolom baru bernama tanggal_lahir pada
tabel pelanggan.
• Solusi:
ALTER TABLE Pelanggan
ADD COLUMN tanggal_lahir DATE NOT NULL;
Penambahan Primary Key pada tabel
• Penambahan Primary key dapat dilakukan apabila tabel yang sudah terbentuk belum memiliki
primary key, karena dalam sebuah tabel hanya dapat memiliki satu primary key.

• Contoh:
Buatlah sebuah tabel dengan nama kategori dengan spesifikasi sebagai berikut:

Nama Kolom Tipe Data Keterangan


Id_Kategori CHAR(4)
Nama_Kategori VARCHAR(20)

• Perintah SQL:
CREATE TABLE Kategori(
Id_kategori CHAR(4),
Nama_kategori VARCHAR(20));

• Kemudian tambahkan pada tabel tersebut primary key pada kolom Id_kategori dengan perintah
sebagai berikut:
ALTER TABLE kategori
ADD PRIMARY KEY (Id_Kategori);
Hapus Primary Key pada Tabel
• Perintah untuk menghapus primary key adalah sebagai
berikut:
ALTER TABLE nama_tabel
DROP PRIMARY KEY;

• Contoh:
Lakukan penghapusan Primary key dari tabel kategori.
• Solusi:
ALTER TABLE kategori
DROP PRIMARY KEY;
Penambahan Foreign Key pada Tabel
ALTER TABLE nama_tabel
ADD CONSTRAINT nama_foreign key FOREIGN KEY (nama_kolom)
REFERENCES
nama_tabel_diacu(nama_kolom_diacu);

• Contoh:
Dilakukan terlebih dahulu penambahan kolom id_kategori di tabel barang.
ALTER TABLE barang
ADD COLUMN id_kategori;

• Maka untuk melakukan penambahan foreign key pada tabel barang kolom
id_kategori dengan mengacu pada tabel kategori kolom id_kategori adalah
sebagai berikut:
ALTER TABLE barang
ADD CONSTRAINT fk_barang_kategori FOREIGN KEY (id_kategori)
REFERENCES kategori(id_kategori);
Hapus Kolom dari Tabel
• Hapus kolom dari sebuah tabel yang sudah ada dapat
dilakukan dengan perintah SQL sebagai berikut:
ALTER TABLE nama_tabel
DROP COLUMN nama_kolom;

• Contoh:
Dilakukan hapus kolom tanggal_lahir pada tabel
pelanggan.
• Solusi:
ALTER TABLE pelanggan
DROP COLUMN tanggal_lahir;
Hapus Tabel dalam Database
• DROP TABLE nama_tabel;

• Contoh:
Menghapus tabel kategori dari database.
• Solusi:
DROP TABLE kategori;

Anda mungkin juga menyukai