Anda di halaman 1dari 11

MENGENAL PERINTAH DDL, DML, DCL, TCL

KOMPETENSI DASAR
3.4 Memahami Kelompok perintah yang termasuk dalam DDL,
DML,
DCL, TCL
4.1 Membuat Kelompok perintah yang termasuk dalam DDL, DML,
DCL, TCL

TUJUAN PEMBELAJARAN
Setelah kegiatan pembelajaran, siswa dapat:
1. Memahami pengertian SQL
2. Memahami Data Definition Language (DDL)
3. Memahami Data Manipilation Language (DML)
4. Memahami Data Control Language (DCL)
5. Memahami Transaction Control Language (TCL)
6. Menciptakan ide untuk menghasilkan karya yang berhubungan
dengan DDL, DML, DCL, TCL

Xampp adalah perangkat lunak bersifat open source (bebas),


mendukung berbagai sistem operasi (Windows, Linux, atau Mac OS),
sebagai web server (Apache), sebagai database server (MySQL/MariaDB),
mendukung Bahasa pemrograman PHP.

1
DOWNLOAD
XAMPP
INSTAL
DBMS
XAMPP
JALANKAN
MySQL
PENGERTIAN DATA DEFINITION LANGUAGE (DDL)
DDL (Data Definition Language) merupakan sub perintah dari bahasa
SQL yang digunakan untuk membangun kerangka sebuah database. Dalam
hal ini DDL akan mendefinisikan struktur basis data maupun table.

DDL

membuat mengubah menghapus

CREATE (MEMBUAT DATABASE)


1. Buka XAMPP, jalankan MySQL saja. Karena hanya membuat
database
2. Buka CMD
3. Saat ini kita berada pada directory C:\Users\jarga> kita akan
pindah ke directory C dengan cara cd (change directory). Ketik cd..
sampai ke directory C atau cd/
4. Selanjutnya masuk ke folder bin pada MySQL dengan perintah
cd xampp enter cd mysql enter cd bin enter, atau bisa juga dengan
cd xampp/mysql/bin/ pastikan sudah berada pada direktori C:\
xampp\mysql\bin>

2
5. Terakhir masuk menggunakan root user. mysql –u root sampai
muncul MariaDB [(none)]>
6. Muncul welcome to MariaDB artinya sudah terhubung dengan
MySQL yang ada di xampp. Kenapa muncul MariaDB bukan MySQL
karena xampp yang diinstal support MariaDB.
7. Pertama Ketik kode SHOW DATABASES; untuk melihat database
apa saja yang sudah kita buat di xampp di MySQL
8. Kita buat database baru, misalnya Db_perpustakaan
CREATE DATABASE db_perpustakaan
Query OK, 1 row affected (0.003 sec) artinya kita sudah membuat
database baru
9. Kita lihat database yang sudah dibuat, SHOW DATABASES;

MEMBUAT TABEL
1. Untuk membuat table, masuk dulu ke database yang sudah kita
buat
USE db_perpustakaan pastikan sudah MariaDB
[db_perpustakaan]>
artinya kita akan berada di/menggunakan database
db_perpustakaan untuk perintah-perintah selanjutnya
2. Selanjutnya,
CREATE TABLE buku (
id_buku INT(10) NOT NULL,
kode_buku CHAR(5) NOT NULL,
judul_buku VARCHAR(50) NOT NULL,
penulis_buku VARCHAR(50) NOT NULL,
penerbit_buku VARCHAR(50),
tahun_terbit CHAR(4),
PRIMARY KEY (id_buku)
);
Untuk melihat hasilnya, bisa ketik SHOW TABLES;
Melihat struktur table, ketik DESCRIBE buku; atau DESC buku;

3
3. Kemudian buat table lain: anggota, petugas, rak, peminjaman,
pengembalian

4. CREATE TABLE petugas (


id_petugas INT(10) NOT NULL,
nama_petugas VARCHAR(50) NOT NULL,
jabatan_petugas VARCHAR(50) NOT NULL,
telp_petugas CHAR(15),
alamat_petugas VARCHAR(100),
PRIMARY KEY (id_petugas)
);
SHOW TABLES;
DESC petugas;
CREATE TABLE anggota (
id_anggota INT(11) NOT NULL,
nama_anggota VARCHAR(50) NOT NULL,
kelamin_anggota CHAR(1) NOT NULL,
telp_anggota CHAR(15),
alamat_anggota VARCHAR(100),
PRIMARY KEY (id_anggota)
);
SHOW TABLES;
DESC anggota;
CREATE TABLE peminjaman (
id_peminjaman INT(10) NOT NULL,
tanggal_pinjam DATE NOT NULL,
id_buku INT(10) NOT NULL,
id_anggota INT(11) NOT NULL,
id_petugas INT(10) NOT NULL,
PRIMARY KEY (id_peminjaman)
);
SHOW TABLES;
DESC peminjaman;

4
CREATE TABLE pengembalian (
id_pengembalian INT(10) NOT NULL,
tanggal_kembali DATE NOT NULL,
denda INT(10) NOT NULL,
id_buku INT(10) NOT NULL,
id_anggota INT(11) NOT NULL,
id_petugas INT(10) NOT NULL,
PRIMARY KEY (id_pengembalian));
SHOW TABLES;
DESC pengembalian;

DROP TABEL/ DATABASE


1. Selanjutnya kita akan coba menggunakan perintah yang lain, yaitu
menghapus table ataupun database. Kita akan membuat database
dummy, sebelumnya bisa keluar terebih dahulu ketik exit;
kemudian masuk lagi ke cd xampp/mysql/bin/ lalu mysql -u root
2. CREATE DATABASE coba;
SHOW DATABASES;
USE coba;
CREATE TABLE coba1 (
id_coba INT(10),
nama_coba VARCHAR(50));
SHOW TABLES;
DROP TABLE coba1;
SHOW TABLES;
DROP DATABASE coba;
SHOW DATABASES;

ALTER TABEL.
1. Selanjutnya kita akan mengubah struktur tabel yang sudah ada, kita
bisa menggunakan perintah ALTER.
SHOW TABLES; kemudian DESC anggota;
Kita akan menambahkan email pada tabel anggota, maka

5
ALTER TABLE anggota ADD email VARCHAR(50);
DESC anggota;
cobalah menambahkan atribut lain pada tabel buku
2. Selanjutnya menghapus kolom/atribut pada tabel
ALTER TABLE anggota ADD tess VARCHAR(50) AFTER
id_anggota;
DESC anggota;
ALTER TABLE anggota DROP tess;
3. Selanjutnya kita akan mengganti primary key dari tabel anggota
DESC anggota;
yang awalnya id_anggota sebagai primary key akan diganti menjadi
nama_anggota
ALTER TABLE anggota DROP PRIMARY KEY;
DESC anggota;
ALTER TABLE anggota ADD PRIMARY KEY(nama_anggota);
DESC anggota;
kembalikan seperti semula,
ALTER TABLE anggota DROP PRIMARY KEY;
ALTER TABLE anggota ADD PRIMARY KEY(id_anggota);
4. Selanjutnya merubah type data pada sebuah tabel
DESC anggota;
ALTER TABLE anggota MODIFY telp_anggota CHAR(16);
DESC anggota;
5. Selanjutnya merubah nama tabel
SHOW TABLES;
RENAME TABLE buku TO bacaan;
SHOW TABLES;
kembalikan seperti semula,
RENAME TABLE bacaan TO buku;
SHOW TABLES;
cobalah rename tabel lainnya

6
PENGERTIAN DATA MANIPULATION LANGUAGE (DML)
Data Manipulation Language (DDL) merupakan kumpulan perintah
SQL yang digunakan untuk proses pengolahan isi data di dalam table
seperti memasukkan, merubah dan menghapus isi data

DML

Memasuka Merubah Menghapus


n data data data

INSERT DAN SELECT


(MENAMBAHKAN DAN MENAMPILKAN DATA KE DALAM DATABASE)
1. Misal akan menampilkan isi dari tabel anggota, maka
SELECT * FROM anggota;
isinya masih kosong, karena kita belum memasukkan data apa-apa.
INSERT INTO anggota (id_anggota, nama_anggota,
kelamin_anggota, telp_anggota, email, alamat_anggota) VALUE
(202201, 'Budi', 'L', '087862240881', 'budi@gmail.com', 'Ds.Mas,
Gianyar');
SELECT * FROM anggota;
2. Selanjutnya, masukkan lagi data sebanyak 2 record.
INSERT INTO anggota (id_anggota, nama_anggota,
kelamin_anggota, telp_anggota, email, alamat_anggota) VALUE
(202202, 'Wati', 'P', '087862255411', 'wati@gmail.com',
'Ds.Singapadu, Gianyar');

7
INSERT INTO anggota (id_anggota, nama_anggota,
kelamin_anggota, telp_anggota, email, alamat_anggota) VALUE
(202203, 'Jelita', 'P', '087776555467', 'jelita@gmail.com',
'Ds.Batubulan, Gianyar');
SELECT * FROM anggota;

3. Selanjutnya, kita menampilkan kolom tertentu pada tabel anggota


misal hanya menampilkan nama anggota dan kelamin anggota
SELECT nama_anggota, kelamin_anggota FROM anggota;
misal hanya menampilkan id, nama dan telp anggota
SELECT id_anggota, nama_anggota, telp_anggota FROM anggota;

UPDATE DAN DELETE


(MERUBAH DAN MENGHAPUS DATA PADA TABEL)
1. Selanjutnya, kita akan melakukan update pada sebuah tabel, dalam
hal ini kita mengupdate tabel anggota.
SELECT * FROM anggota;
kita akan merubah nomor hp pada salah satu record
UPDATE anggota SET telp_anggota=’082144485971’ WHERE
id_anggota=’202203’;
cobalah mengganti beberapa field lainnya

2. Selanjutnya kita akan menghapus field dari suatu tabel.


cobalah mengisi 2 record pada tabel buku
DESC buku;
INSERT INTO buku (id_buku, kode_buku, judul_buku,
penulis_buku, penerbit_buku, tahun_terbit) VALUE (00001,
'BCA01', 'Bawang Merah Bawang Putih', 'Gibran Maulana', 'Cahaya
Agency', '2010');
INSERT INTO buku (id_buku, kode_buku, judul_buku,
penulis_buku, penerbit_buku, tahun_terbit) VALUE (00002,
'BCA02', 'Malin Kundang', 'Titis Asmaradana', 'Dua Media', '2011');
SELECT * FROM buku;

8
SELECT * FROM anggota;
selanjutnya kita akan menghapus 1 record pada tabel anggota
DELETE FROM anggota WHERE id_anggota=’202201’;
SELECT * FROM anggota;
DELETE FROM buku;
PENGERTIAN DATA CONTROL LANGUAGE (DCL)
Data Control Language (DCL) adalah salah satu dari kelompok
perintah SQL yang digunakan untuk melakukan kontrol terhadap hak
akses khusus untuk berinteraksi dengan database.

GRANT tipe_privilege
ON nama_objek
TO nama_pengguna;

 tipe_privilege diisi dengan privilege atau hak akses yang dimaksud


 nama_objek diisi dengan objek-objek database, seperti: database,
table
 nama_pengguna diisi dengan nama pengguna yang diberikan privilege

Tipe Keterangan
Privilege
All Memberikan seluruh akses secara penuh (full access)
privilege
Create Memberikan hak akses untuk membuat database atau objek
Drop hak akses untuk menghapus database atau objek database
Insert hak akses untuk menambahkan record / data baru ke tabel
Update hak akses untuk mengubah record / data di tabel
Delete hak akses untuk menghapus record / data di tabel

Sebelum menggunakan perintah Grant, pertama buat user baru terlebih


dahulu di database.
EXIT;
mysql -u root;

9
use mysql;
Sekarang kita sudah berada/ menggunakan database mysql. Setelah itu
kita akan membuat user baru dengan nama ‘hendra1‘ dengan password
‘rpl36‘.
CREATE USER 'hendra1'@'localhost' IDENTIFIED BY 'rpl36';

Selanjutnya kita coba membuat sebuah database yang nantinya database


tersebut akan dimodifikasi oleh user hendra1
CREATE DATABASE db_hendra;
SHOW DATABASES;
Setelah database-nya dibuat, langkah selanjutnya adalah memberikan
akses tersebut kepada user hendra1
GRANT CREATE, SELECT, INSERT ON db_hendra.* TO
'hendra1'@'localhost';
FLUSH PRIVILEGES; digunakan setiap kali selesai memberikan atau
menarik kembali hak akses user
Sekarang kita coba masuk sebagai user hendra1
EXIT;
mysql -u hendra1 -p
masukkan password rpl36
SHOW DATABASES;
USE db_hendra;
kemudian membuat sebuah tabel
CREATE TABLE buku (
id_buku INT(10) NOT NULL,
kode_buku CHAR(5) NOT NULL,
judul_buku VARCHAR(50) NOT NULL,
penulis_buku VARCHAR(50) NOT NULL,
penerbit_buku VARCHAR(50),
tahun_terbit CHAR(4),
PRIMARY KEY (id_buku)
);
SHOW TABLES;

10
DESC buku;
Kita bisa membuat tabel karena user hendra1 punya akses untuk create.
Bagaimana dengan menghapus tabel?
DROP TABLE buku; akan muncul eror. karena user hendra1 tidak
memiliki akses drop table

REVOKE digunakan untuk menarik kembali / mencabut hak akses khusus


yang sebelumnya telah diberikan.

REVOKE tipe_privilege
ON nama_objek
FROM nama_pengguna;

REVOKE CREATE, SELECT, INSERT


ON db_hendra.* FROM 'hendra1'@'localhost';
Kode di atas akan mencabut hak akses user atas nama hendra1 untuk
melakukan create, select dan insert pada database db_hendra

CONTOH LAIN.
masuk ke akses root, kemudian gunakan table db_perpustakaan yang telah
dibuat tadi
cd/
cd xampp/mysql/bin/
mysql -u root;
USE db_perpustakaan;
SHOW TABLES;
SELECT * FROM anggota;
GRANT INSERT ON anggota TO jelita;
REVOKE INSERT ON anggota FROM jelita;

11

Anda mungkin juga menyukai