DDL dan DML

 DDL (Data Definition Language)

DDL (Data Definition Language), DDL merupakan kelompok perintah yang berfungsi

untuk mendefinisikan atribut-atribut basis data, tabel, atribut(kolom), batasan-batasan terhadap

suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini adalah

CREATE, ALTER, dan DROP.


a. Syntax Membuat Database : CREATE DATABASE namadatabase;

Namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama

yang sama antar database. Berikut ini perintah untuk membuat database dengan nama

rental : CREATE DATABASE CV_SEJAHTERA;


Syntax tambahan untuk menampilkan daftar nama database yang ada pada

mysql menggunakan perintah : SHOW DATABASES;


b. Memilih Database : USE namadatabase;

Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database

sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel, Berikut ini

perintah untuk menggunakan database dengan nama CV_SEJAHTERA:

USE SEJAHTERA;


c. Syntax Menghapus Database : DROP DATABASE namadatabase;

Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah

untuk menghapus database dengan nama rental : DROP DATABASE RENTAL;


d. Membuat Tabel : CREATE TABLE namatabel2 ( Field1 TipeData1,Field2 TipeData2);

Nama tabel tidak boleh mengandung spasi (space). Field1 dan TipeData1

merupakan nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat

tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya

diberikan tanda koma (,).


e. Menampilkan Tabel

Untuk menampilkan daftar nama tabel yang ada pada database yang sedang

aktif/digunakan (dalam hal ini database rental) : SHOW TABLES;


f. Menampilkan Atribut Tabel : DESC namatabel;

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :

DESC barang;


g. Syntax Menghapus Tabel : DROP TABLE namatabel;

Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk

menghapus tabel dengan nama jenisfilm : DROP TABLE BARANG;


h. Mendefinisikan Null/Not Null

 : CREATE TABLE namatabel ( Field1 TipeData1 NOT

NULL, Field2 TipeData2);


i. Mendefinisikan Primary Key Pada Tabel

Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah Syntax

mendefinisikan primary key untuk Field1

CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEY, Field2

TipeData2);

Atau

CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, PRIMARY

KEY(Field1));

Atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY

(namakolom);


j. Menghapus Primary Key Pada Tabel

Cara 1 : Jika primary key dibuat dengan menggunakan alter table :

ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;

Cara 2 : Jika primary key dibuat melalui create table :

ALTER TABLE namatabel DROP PRIMARY KEY;


k. Menambah Kolom Baru Pada Tabel : ALTER TABLE namatabel ADD fieldbaru tipe;

Namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah

nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan

ditambahkan. Berikut ini contoh perintah untuk menambah kolom keterangan dengan tipe data

varchar(25):

ALTER TABLE JENISFILM ADD KETERANGAN VARCHAR(25);

Untuk meletakkan field diawal, tambahkan sintaks first :

ALTER TABLE PELANGAN ADD COLUMN KODE CHAR(5) FIRST;

Untuk menyisipkan field setelah field tertentu, tambahkan sintaks after :

ALTER TABLE PELANGAN ADD COLUMN PHONE CHAR(5) AFTER ALAMAT;


l. Mengubah Tipe Data atau Lebar Kolom Pada Tabel : ALTER TABLE NAMATABEL

MODIFY COLUMN FIELD TIPE

Namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya.

Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru

atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini contoh perintah untuk

mengubah tipe data untuk kolom keterangan dengan char(20) :

ALTER TABLE JENISFILM MODIFY COLUMN KETERANGAN VARCHAR(20);


m. Mengubah Nama Kolom :

ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom

tipedatabaru;

Namatabel adalah nama tabel yang akan diubah nama kolomnya,

namalamakolom adalah kolom yang akan diganti namanya, namabarukolom adalah

nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini contoh

perintah untuk mengubah nama kolom keterangan menjadi ket :

ALTER TABLE JENISFILM CHANGE COLUMN KETERANGAN KET

VARCHAR(20);


n. Menghapus Kolom Pada Tabel :

ALTER TABLE namatabel DROP COLUMN namakolom;



DML (Data Manipulation Language)

DML (Data Manipulation Language) DML adalah kelompok perintah yang berfungsi

untuk memanipulasi data dalam basis data, misalnya untuk pengambilan, penyisipan,

pengubahan dan penghapusan data. Perintah yang termasuk dalah kategori DML adalah :

INSERT, DELETE, UPDATE dan SELECT.


1. I N S E R T

Perintah INSERT digunakan untuk menambahkan baris pada suatu tabel. Terdapat dua cara

untuk menambah baris, yaitu:

Cara 1: Menambah baris dengan mengisi data pada setiap kolom :

INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);

Cara 2 : Menambah baris dengan hanya mengisi data pada kolom tertentu :

INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES (nilai1,nilai2,nilai-n);

Keterangan :

Jika data bertipe string, date atau time (contoh : action, horor, 2007-11-10) maka

pemberian nilainya diapit dengan tanda petik tunggal ('horor') atau petik ganda ("horor"). Jika

data bertipe numerik (2500, 400) maka pemberian nilainya tidak diapit tanda petik tunggal

maupun ganda.


2. DELETE

Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu atau

seluruh baris. Syntax : DELETE FROM namatabel [WHERE kondisi];

Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu

kondisi tertentu.


3. UPDATE

Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada

suatu table. Syntax :

UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];

Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi

tertentu.


4. SELECT

Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat

dihubungkan dengan tabel yang lainnya.

a. Menampilkan data untuk semua kolom menggunakan asterisk (*) :

SELECT * FROM namatabel;

b. Menampilkan data untuk kolom tertentu :

SELECT kolom1,kolom2,kolom-n FROM namatabel;

c. Menampilkan data dengan kondisi data tertentu dengan klausa WHERE:

SELECT * FROM namatabel WHERE kondisi;

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE adalah

"="(sama dengan), > (lebih dari), < (kurang dari), < > (tidak sama dengan), >= (lebih

dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun operator lain, yaitu:

AND, OR, NOT, BETWEEN-AND, IN dan LIKE.

d. Memberikan nama lain pada kolom :SELECT namakolomlama AS namakolombaru

FROM namatabel;

Berikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film

pada tabel jenisfilm:

SELECT JENIS AS TYPE FROM JENISFILM;

e. Menggunakan alias untuk nama tabel: SELECT namalias .jenis, namalias .harga

FROM namatabel namalias;

Berikut ini perintah untuk memberikan alias pada tabel jenisfilm :

SELECT J.JENIS, J.HARGA FROM JENISFILM J;

f. Menampilkan data lebih dari dua tabel: SELECT * FROM namatabel1, namatabel2,

namatabel-n;

g. Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)

Subquery berarti query di dalam query. Dengan menggunakan subquery, hasil dari

query akan menjadi bagian dari query di atasnya. Subquery terletak di dalam klausa

WHERE atau HAVING. Pada klausa WHERE, subquery digunakan untuk memilih

baris-baris tertentu yang kemudian digunakan oleh query. Sedangkan pada klausa

HAVING, subquery digunakan untuk memilih kelompok baris yang kemudian

digunakan oleh query.

Contoh 1: perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada

kolomjenis-nya tercantum pada tabel film menggunakan IN :

SELECT * FROM JENISFILM WHERE JENIS IN (SELECT JENIS FROM FILM);

atau menggunakan EXISTS

SELECT * FROM JENISFILM WHERE EXISTS (SELECT * FROM FILM WHERE

HARGA > 2000);

Pada contoh di atas:

SELECT JENIS FROM FILM disebut subquery, sedangkan :

SELECT * F ROM JENISFILM berkedudukan sebagai query. Perhatikan, terdapat data

jenis dan harga pada tabel jenisfilm yang tidak ditampilkan. Hal ini disebabkan data pada

kolom jenis tidak terdapat pada kolom jenis di tabel film.

Contoh 2: perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada

kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN:

SELECT * FROM JENISFILM WHERE JENIS NOT IN (SELECT JENIS FROM

FILM);

atau menggunakan NOT EXISTS

SELECT * FROM JENISFILM WHERE NOT EXISTS (SELECT * FROM FILM

WHERE HARGA > 2000);

h. Operator comparison ANY dan ALL

Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE

(benar) jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan

nilai TRUE. Ilustrasinya jika:

Gaji > ANY (S)

Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik dengan:

(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)

Contoh: perintah untuk menampilkan semua data jenisfilm yang harganya bukan

yang terkecil:

SELECT * FROM JENISFILM WHERE HARGA > ANY (SELECT HARGA FROM

JENISFILM);

Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi

dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun

atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil

subquery.

Contoh : perintah untuk menampilkan data jenisfilm yang harganya paling tinggi:

SELECT * FROM JENISFILM WHERE HARGA >= ALL (SELECT HARGA FROM

JENISFILM);

i. Sintak ORDER BY

Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu

sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk mengurutkan data film

berdasarkan kolom judul:

SELECT * FROM FILM ORDER BY JUDUL;

atau tambahkan ASC untuk pengurutan secara ascending (menaik) :

SELECT * FROM FILM ORDER BY JUDUL ASC;

atau tambahkan DESC untuk pengurutan secara descending (menurun):

SELECT * FROM FILM ORDER BY JUDUL DESC;

j. Sintak DISTINCT

Distinct adalah kata kunci ini untuk menghilangan duplikasi. Sebagai Contoh, buat

sebuah tabel pelanggan yang berisi nama dan kota asal dengan beberapa record isi dan

beberapa kota asal yang sama. Kemudian ketikkan perintah berikut:

SELECT DISTINCT KOTA FROM PELANGGAN;

Dengan perintah di atas maka nama kota yang sama hanya akan ditampilkan satu saja.

k. UNION, INTERSECT dan EXCEPT

UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan

ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan

datanya harus sama. Berikut ini perintah untuk memperoleh data pada tabel film dimana

jenisnya action dan horor:

SELECT JENIS, JUDUL FROM FILM WHERE JENIS = 'ACTION' UNION

SELECT

JENIS, JUDUL FROM FILM WHERE JENIS = 'HOROR';


Perintah di atas identik dengan:


SELECT JENIS, JUDUL FROM FILM WHERE JENIS = 'ACTION' OR JENIS =

'HOROR';

Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja

pada dua tabel atau lebih.


INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah

query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut

dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan

ditampilkan datanya harus sama.


SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2;

Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat

menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.


EXCEPT / Set Difference merupakan operator yang digunakan untuk memperoleh data

dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query

1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe

kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2;

Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat

menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.

Komentar

Postingan populer dari blog ini

20 DASAR PERINTAH LINUX