KD 10 Basis Data
KD 10 Basis Data
A. MySQL
MySQL merupakan DBMS yang pertama kali mulai dikembangkan tahun 1994 oleh
sebuah perusahaan software bernama TcX Data Konsult AB yang dikemudian hari berganti
label menjadi MySQL-AB. “My” pada kata MySQL sebenarnya bukan berarti MY dalam
bahasa inggris, tetapi konon merupakan nama putri dari Michel Widenius seorang perintis
dari MySQL. Versi lain menyebutkan “My” adalah kependekan dari “Monty”, yang
merupakan julukan untuk Michel Widenius.
MySQL adalah Sebuah program database server yang mampu menerima dan
mengirimkan datanya sangat cepat, multi user serta menggunakan perintah dasar SQL (
Structured Query Language).MySQL merupakan dua bentuk lisensi, yaitu FreeSoftware dan
Shareware. MySQL yang biasa kita gunakan adalah MySQL FreeSoftware yang berada
dibawah Lisensi GNU/GPL ( General Public License ). MySQL Merupakan sebuah database
server yang free, artinya kita bebas menggunakan database ini untuk keperluan pribadi atau
usaha tanpa harus membeli atau membayar lisensinya . Selain database server, MySQl juga
merupakan program yang dapat mengakses suatu database MySQL yang berposisisebagai
Server, yang berarti program kita berposisi sebagai Client. Jadi MySQL adalah sebuah
database yang dapat digunakan sebagai Client mupun server. Database MySQL merupakan
suatu perangkat lunak database yang berbentuk database relasional atau disebut Relational
Database Management System ( RDBMS ) yang menggunakan suatu bahasa permintaan yang
bernama SQL (Structured Query Language ).
Sebagaimana database sistem yang lain, dalam SQL juga dikenal hierarki server
dengan database-database.Tiap-tiap database memiliki tabel-tabel. Tiap-tiap tabel memiliki
field-field. Umumnya informasi tersimpan dalam tabel – tabel yang secara logic merupakan
struktur 2 dimensi terdiri atas baris dan kolom.Field-field tersebut dapat berupa data seperti
int , realm char, date, time dan lainnya. SQL tidak memiliki fasilitas pemrograman yang
lengkap,tidak ada looping ataupun percabangan,misalnya.Sehingga untuk menutupi
kelemahan ini perlu digabung dengan bahasa pemrograman semisal C.
Data Definition Language (DDL) merupakan perintah SQL yang digunakan untuk melakukan
definisi awal suatau basis data dan tabel pada konsep RDBMS. Secara sederhana, penulisan
perintah SQL pada kelompok ini terdiri dari Create, Alter, dan Drop. Berikut merupakan
pembahasan untuk perintah SQL tersebut.
A. Create
Perintah SQL ini digunakan untuk membuat suatu basis data dan table pendukung
didalam pembangunan basis data tersebut. Table merupakan objek yang sangat penting
dalam suatu basis data.
1. Sintak untuk membuat database baru :
CREATE DATABASE databasename;
2. Sintak untuk membuat table baru:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
3. Contoh membuat database baru:
CREATE DATABASE testDB;
4. Contoh membuat table baru:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT
NULL, FirstName varchar(255),
Age int,
PRIMARY KEY
(ID)
);
C. Drop
Perintah SQL ini digunakan untuk menghapus table yang terdapat didalam basis data.
Berikut ini merupakan aturan umum penulisan yang digunakan pada drop table.
a. Sintak menghapus database:
DROP DATABASE databasename;
b. Sintak menghapus table:
DROP TABLE table_name;
c. Contoh menghapus database testDB:
DROP DATABASE testDB;
d. Contoh menghapus table mahasiswa:
DROP TABLE mahasiswa;
Data Manipulation Language (DML) merupakan perintah SQL yang digunakan untuk
melakukan pengolahan record atau memanipulasi data pada table dalam suatu basis data.
Secara sederhana penulisan perintah SQL pada kelompok ini terdiri dari insert, select, update,
dan delete. Berikut ini adalah deskripsi mengenai kelompok perintah DML tersebut.
A. Insert
Perintah SQL ini digunakan untuk melakukan entry atau penambahan suatu record pada
table dalam basis data. Berikut ini merupakan aturan umum penulisan yang digunakan
pada insert suatu table.
1. Sintak pertama:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2. Sintak kedua:
INSERT INTO table_name VALUES (value1, value2, value3, ...);
3. Contoh penerapan sintak pertama:
a. Menambahkan satu record pada tabel cutomer
B. Select
Perintah SQL ini digunakan untuk memilih record yang akan ditampilkan berdasarkan
data pada table dalam basis data. Berikut ini merupakan aturan umum dan variasi
penulisan yang digunakan pada select.
1. Sintak untuk menampilkan salah satu kolom yang ada ditabel:
SELECT column1, column2, ...FROM table_name;
2. Sintak untuk menampilkan semua kolom yang ada ditabel:
SELECT * FROM table_name;
3. Contoh penerapan
a. Menampilkan CustomerName dan City pada table customer:
SELECT CustomerName,City FROM Customers;
C. Update
Perintah SQL ini untuk mengubah data dalam suatu table pada field tertentu dengan
record baru berdasarkan suatu field sebagai kriteria pengubahan record-nya.
1. Sintak perintah update:
UPDATE table_name SET column1 = value1, column2 = value2, ...
WHERE condition;
2. Contoh penerapan
a. Merubah ContactName= ‘Maria Anders’ menjadi 'Alfred Schmidt' dan
City= 'Frankfurt'
D. Delete
Perintah SQL ini digunakan untuk menghapus data dalam suatu table, berdasarkan suatu
field sebagai kriteria penghapusan record-nya. Berikut ini merupakan aturan umum
penulisan yang digunakan pada delete sebagai berikut :
1. Sintak perintah untuk menghapus salah satu record:
DELETE FROM table_name WHERE condition;
2. Sintak untuk menghapus seluruh record pada tabel:
DELETE FROM table_name;
3. Contoh penerapan
a. Menghapus CustomerName= ‘Alfreds Futterkiste’ dari tabel customer
Data Control Language (DCL) merupakan perintah SQL yang digunakan untuk melakukan
pengaturan hak akses suatu objek data para pengguna basis data. Secara sederhana, penulisan
perintah SQL pada kelompok ini terdiri dari grant, revoke.
A. Grant
Perintah SQL ini digunakan oleh seorang administrator basis data untuk memberikan hak
aksesnya kepada pengguna tertentu, agar dapat mengakses suatu table dalam basis data.
Hak akses tersebut adalah insert, delete, update, dan select. Berikut in merupakan aturan
umum penulisan yang digunakan pada Grant.
1. Sintak :
GRANT hak_akses ON nama_tabel TO pengguna_tertentu;
2. Contoh penerapan dan penjelasan:
Pemberian hak akses INSERT dan DELETE pada tabel mahasiswa kepada Budi
GRANT INSERT, DELETE ON mahasiswa TO Budi;
Pemberian hak akses UPDATE pada tabel mahasiswa kepada Raisa
GRANT UPDATE ON mahasiswa TO Raisa;
B. Revoke
Perintah SQL ini digunakan oleh seorang administrator basis data, untuk membatalkan /
menghentikan hak akses yang telah diberikan kepada pengguna tertentu, agar tidak dapat
mengakses table dalam basis data. Berikut ini merupakan aturan umum penulisan yang
digunakan pada revoke.
1. Sintak :
REVOKE hak_akses ON nama_tabel FROM pengguna_tertentu;
2. Contoh penerapan dan penjelasan:
Membatalkan hak akses INSERT dan DELETE pada tabel mahasiswa kepada
Budi
REVOKE INSERT, DELETE ON mahasiswa FROM Budi;
Membatalkan hak akses UPDATE pada tabel mahasiswa kepada Raisa
REVOKE UPDATE ON mahasiswa FROM Raisa;
Setelah pada kajian sebelumnya dilakukan pembahasan untuk tiga jenis perintah SQL,
yaitu DDL, DML, dan DCL kemudian pada bab ini dilakukan beberapa eksplorasi dari suatu
perintah SQL dengan adanya penggabungan klausa, operator, fungsi agregat, join, dan relasi.
Berikut ini merupakan hal umum untuk perintah SQL yang dilakukan saat eksplorasi
tersebut.
A. Where
Where ini digunakan untuk melakukan seleksi pada record, yang sesuai dengan syarat
suatu kriteria pada suatu kondisi perintah SQL. Pada table 6.1 disajikan operator
matematika yang digunakan oleh klausa where.
Tabel 6.1 Operator Matematika
NO OPERATOR ARTI
1 = Sama dengan
2 <> Tidak sama dengan
3 < Lebih kecil
4 <= Lebih kecil sama dengan
5 > Lebih besar
6 >= Lebih besar sama dengan
Penggunaan WHERE juga bisa digunakan dalam perintah UPDATE dan DELETE.
b. Memilih semua costumer yang berasal dari negara yang sama dengan supplier
SELECT * FROM Customers WHERE Country IN (SELECT Country
FROM Suppliers);
F. Order By
Order By digunakan untuk melakukan pengurutan berdasarkan suatu field, yang
merupakan hasil dari penyataan select secara ascending atau descending. Default
pengurutan klausa order by adalah ascending.
1. Sintak Order By:
SELECT column1, column2,...FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
2. Contoh penerapan
a. Menampilkan seluruh record dari tabel cutomer dan diurutkan berdasarkan nama
costumer
SELECT * FROM Customers ORDER BY Country;
G. Select Distinct
Distinct digunakan untuk menghilangkan duplikasi pada suatu tampilan, dengan cara
menghilangkan tampilan record dengan nilai yang sama untuk hasil suatu perintah SQL,
tetapi bukan menghapus record secara fisik.
1. Sintak Distinct
SELECT DISTINCT column1, column2,...FROM table_name;
2. Contoh penerapan
a. Menampilkan country yang berbeda dari tabel costumer
SELECT DISTINCT Country FROM Customers;
H. Group By
Group By digunakan untuk melakukan pengelompokan berdasarkan suatu field atau
beberapa field.
1. Sintak group by
SELECT column_name(s) FROM
table_name WHERE condition GROUP BY column_name(s)
ORDER BY column_name(s);
2. Contoh penerapan
1. AVG
a. Sintak
SELECT AVG(column_name)FROM table_name WHERE condition;
b. Contoh penerapan
Mencari rata-rata jumlah beli(quantity) dari tabel orderdetail
3. MAX
a. Sintak
SELECT MAX(column_name)FROM table_name;
b. Contoh penerapan
Mencari Quantity terbesar dari tabel orderdetail
4. MIN
a. Sintak
SELECT MAX(column_name)FROM table_name;
b. Contoh penerapan
Mencari Quantity terkecil dari tabel orderdetail
5. SUM
a. Sintak
SELECT SUM(column_name)FROM table_name;
b. Contoh penerapan
Mencari jumlah (Quantity) dari tabel OrderDetail
K. Operator Aritmatika
Pada umumnya operator aritmatika untuk proses perhitungan yang digunakan dalam
perintah SQL terdiri dari perkalian(*), pembagian(/), penjumlahan(+), dan pengurangan(-
).
1. Operator perkalian
(*) Contoh:
SELECT 30 * 20;
Hasilnya:
4. Operator Penjumlahan
( + ) Contoh:
SELECT 30 + 10;
Hasilnya:
L. Aliases
Alias secara sederhana adalah "nama lain", artinya kita dapat mengganti sementara
sebuah nama tabel dan nama kolom dengan nama yang sesuai dengan keinginan
kita. Tujuan penggunaan alias adalah untuk mempermudah dan menyingkat deskripsi
sebuah nama tabel dan nama kolom pada sebuah query.
1. Sintak
a. Mengganti nama kolom
SELECT column_name AS alias_name FROM table_name;
b. Mengganti nama tabel
SELECT column_name(s) FROM table_name AS alias_name;
2. Contoh penerapan
31
Perintah Exists biasanya digunakan untuk check keberadaan suatu suatu obyek di
suatu database. Operator EXISTS mengembalikan nilai true jika subquery mengembalikan
satu atau beberapa record. Kata kunci EXIST dan NOT EXIST dirancang hanya untuk
digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE
EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table
hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm
table kosong NOT EXIST kebalian dan EXIST. Karena EXIST dan NOT EXIST hanya
memeriksa keberadaan baris-baris di table hasil subquery.
1. Sintak
SELECT column_name(s)FROM table_name
WHERE EXISTS(SELECT column_name FROM table_name WHERE conditio
n);
2. Contoh penerapan
a. Mengembalikan TRUE dan mencantumkan Suppliers dengan harga product kurang
dari 20.
33
N. Having
HAVING ditambahkan ke SQL karena kata kunci WHERE tidak dapat digunakan dengan
fungsi agregat. HAVING digunakan untuk menentukan kondisi bagi GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan.
1. Sintak
SELECT column_name(s)FROM table_nameWHERE conditionGROUP BY
column_name(s) HAVING condition ORDER BY column_name(s);
2. Contoh penerapan
a. Menampilkan jumlah customer di setiap negara. Hanya sertakan negara dengan
lebih dari 5 customer:
O. Union
Operator UNION digunakan untuk menggabungkan hasil-set dari dua atau lebih
pernyataan SELECT. Dengan persyaratan sebagai yaitu: Setiap pernyataan SELECT
dalam UNION harus memiliki jumlah kolom yang sama, Kolom juga harus memiliki tipe
data yang sama, dan Kolom di setiap pernyataan SELECT juga harus berada dalam urutan
yang sama.
1. Sintak
SELECT column_name(s) FROM table1
UNION SELECT column_name(s) FROM table2;
Atau:
SELECT column_name(s) FROM table1
UNION ALL SELECT column_name(s) FROM table2;
2. Contoh penerapan
a. Pernyataan SQL berikut memilih semua kota yang berbeda (hanya nilai yang
berbeda) dari "Customers" dan "Suppliers":
SELECT City FROM Customers UNION SELECT City FROM Suppliers
ORDER BY City;
Hasilnya:
P. View
View adalah tabel virtual berdasarkan hasil-set pernyataan SQL.Tampilan berisi baris dan
kolom, seperti tabel sebenarnya. Bidang dalam tampilan adalah bidang dari satu atau
lebih tabel nyata dalam database. Dalam view dapat menambahkan fungsi SQL, WHERE,
dan JOIN statements untuk melihat dan menyajikan data seolah-olah data berasal dari
satu tabel tunggal.
1. Sintak
CREATE VIEW view_name AS SELECT column1,column2,...
FROM table_name WHERE condition;
2. Contoh penerapan
2. Contoh penerapan
a. Any
SELECT ProductName
FROM Products
WHERE ProductID
= ANY (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);
b. All
SELECT ProductName
FROM Products
WHERE ProductID
= ALL (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);
R. Constraint
Constrain dapat ditentukan saat tabel dibuat dengan pernyataan CREATE TABLE, atau
setelah tabel dibuat dengan pernyataan ALTER TABLE.
2. Contoh penerapan
a. Not Null
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
b. Unique
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);
c. Primary Key
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
d. Foreign Key
CREATE TABLE Orders (
OrderID int NOT NULL,
Merupakan operasi yang digunakan untuk menghasilkan kumpulan record dari dua buah table
atau lebih. Secara umum operasi join dapat dikelompokan menjadi:
A. Inner Join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua
buah table atau lebih dengan nilai yang sama, nilai tersebut merupakan irisan yang
terdapat pada tabel-tabel tersebut.
1. Sintak
SELECT column_name(s)FROM table1
INNER JOIN table2 ON table1.column_name = table2.c
olumn_name;
2. Contoh penerapan
a. Menggabungkan Tabel Orders dan Customer
1. Sintaknya
SELECT column_name(s)FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.c
olumn_name;
2. Contoh penerapan
1. Sintak
SELECT column_name(s) FROM table1
FULL OUTER JOIN table2 ON table1.column_name = tab
le2.column_name;
2. Contoh penerapan
Abdul Kadir (2013). Pengertian MySQL. Tersedia dalam : Buku Pintar Programer Pemula
PHP. Yogyakarta. Mediakom.
Priyadi, Yudi. 2014. Kolaborasi SQL & ERD Dalam Implementasi Database. Penerbit
Andi.Yogyakarta.