Landasan Teori
Pengenalan Operasi Dasar
Hasil Praktikum
Pengenalan Operasi Dasar
MENGENAL OPERASI DASAR SQL
1. DDL (Data Definition Language)
DDL merupakan bahasa yang digunakan untuk membuat atau memodifikasi database dan tabel,
1. DDL (Data Definition Language)
DDL merupakan bahasa yang digunakan untuk membuat atau memodifikasi database dan tabel,
Perintah DDL a.l:
a. CREATE Untuk membuat
Syntak :
- membuat database
CREATE DATABASE nama_database
a. CREATE Untuk membuat
Syntak :
- membuat database
CREATE DATABASE nama_database
- membuat tabel
CREATE TABLE nama_tabel ( field1 type_data1 (lebar_data1), field2 type_data2 (lebar_data2)
CREATE TABLE nama_tabel ( field1 type_data1 (lebar_data1), field2 type_data2 (lebar_data2)
- Apabila akan menambahkan konstrain integritas PRIMARY KEY maka syntaknya adalah sbb :
CREATE TABLE nama_tabel ( field1 type_data1 (lebar_data1) PRIMARY KEY, field2 type_data2 (lebar_data2))
CREATE TABLE nama_tabel ( field1 type_data1 (lebar_data1) PRIMARY KEY, field2 type_data2 (lebar_data2))
- Catatan : yang akan dijadikan primary key adalah field1
Misal :CREATE TABLE mahasiswa (nim char(10), nama char(30), jurusan char(2), ipk decimal(4,2))
Misal :CREATE TABLE mahasiswa (nim char(10), nama char(30), jurusan char(2), ipk decimal(4,2))
- Mengatur agar data selalu diisi
Saat menciptakan tabel, pada field ditambah pemodifikasi NOT NULL
Saat menciptakan tabel, pada field ditambah pemodifikasi NOT NULL
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR NOT NULL ,
Jumlah INTEGER,
PRIMARY KEY(kode)
);
Kode CHAR(3) NOT NULL,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR NOT NULL ,
Jumlah INTEGER,
PRIMARY KEY(kode)
);
Maka pada saat mengisi ke tabel Barang field Kode, Nama, Jenis harus
diisi, sedangkan field Jumlah tidak harus diisi (boleh diisi boleh
tidak)
- Menentukan kunci primer
dengan menyertakan PRIMARY KEY.
- Menentukan kunci primer
dengan menyertakan PRIMARY KEY.
- Membuat kunci komposit
Untuk kunci yang tersusun lebih dari satu kolom.
Untuk kunci yang tersusun lebih dari satu kolom.
CREATE TABLE DetilJual (
NoNota CHAR(3),
Kode CHAR(3),
Jumlah INTEGER UNSIGNED,
PRIMARY KEY(NoNota, Kode));
NoNota CHAR(3),
Kode CHAR(3),
Jumlah INTEGER UNSIGNED,
PRIMARY KEY(NoNota, Kode));
Ctt: tipe Integer lebarnya boleh diisi boleh tidak, kalau diisi maksimum 11 karakter, kalau tidak defaulnya 11 karakter.
Tipe Integer Unsigned (bilangan bulat positif)
Tipe Integer Unsigned (bilangan bulat positif)
- Memberi Nilai Bawaan
Jika suatu kolom tidak diberi nilai, bisa dikehendaki untuk dapat diberi nilai bawaan.
Dengan kata kunci DEFAULT.
Jika suatu kolom tidak diberi nilai, bisa dikehendaki untuk dapat diberi nilai bawaan.
Dengan kata kunci DEFAULT.
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR,
Jumlah INTEGER DEFAULT 0);
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR,
Jumlah INTEGER DEFAULT 0);
Ctt: kalau jumlah tidak diisi maka akan diisi defaultnya yi 0 atau:
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR DEFAULT MI,
Jumlah INTEGER DEFAULT 0);
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR DEFAULT MI,
Jumlah INTEGER DEFAULT 0);
kalau jenis tidak diisi maka akan diisi defaultnya yi MI (minuman)
- Memberi nilai yang unik
Sebenarnya kunci primer juga bertindak sebagi penjamin bahwa nilai suatu kolom akan bersifat unik (tdk kembar). Namun, kadangkala diperlukan agar suatu kolom yang tidak berfungsi sebagai kunci primer juga bersifat unik. Hal ini dapat dilakukan dengan memberikan kekangan UNIQUE pada kolom yang bersangkutan. Contoh
Sebenarnya kunci primer juga bertindak sebagi penjamin bahwa nilai suatu kolom akan bersifat unik (tdk kembar). Namun, kadangkala diperlukan agar suatu kolom yang tidak berfungsi sebagai kunci primer juga bersifat unik. Hal ini dapat dilakukan dengan memberikan kekangan UNIQUE pada kolom yang bersangkutan. Contoh
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL UNIQUE,
Jenis CHAR,
Jumlah INTEGER DEFAULT 0);
Kode CHAR(3) NOT NULL PRIMARY KEY,
Nama VARCHAR(20) NOT NULL UNIQUE,
Jenis CHAR,
Jumlah INTEGER DEFAULT 0);
Penambahan kata UNIQUE pada kolom nama menyatakan bahwa tidak boleh ada nama barang yang sama
- Perbedaan PRIMARY KEY dan UNIQUE
PRIMARY KEY UNIQUE
Dalam sebuah tabel, keberadaannya hanya bisa satu kali Sejumlah kolom yang unik bisa didefinisikan
Kolom-kolom yang menjadi kunci primer tidak boleh berisi NULL Kolom yang didefinisikan sebagai kolom unik boleh berisi NULL sepanjang kolom tidak didefinisikan sebagai NOT NULL
b. DROP Untuk menghapus :
Syntak :
- menghapus database
DROP DATABASE nama_database
PRIMARY KEY UNIQUE
Dalam sebuah tabel, keberadaannya hanya bisa satu kali Sejumlah kolom yang unik bisa didefinisikan
Kolom-kolom yang menjadi kunci primer tidak boleh berisi NULL Kolom yang didefinisikan sebagai kolom unik boleh berisi NULL sepanjang kolom tidak didefinisikan sebagai NOT NULL
b. DROP Untuk menghapus :
Syntak :
- menghapus database
DROP DATABASE nama_database
- menghapus tabel
DROP TABLE nama_table
DROP TABLE nama_table
c. ALTER Untuk memodifikasi tabel
Syntak :
- menambah field baru
ALTER TABLE nama_tabel ADD [COLUMN] field_baru type_data(lebar_data)
Misal :
ALTER TABLE mahasiswa ADD [COLUMN] alamat varchar(30)
Syntak :
- menambah field baru
ALTER TABLE nama_tabel ADD [COLUMN] field_baru type_data(lebar_data)
Misal :
ALTER TABLE mahasiswa ADD [COLUMN] alamat varchar(30)
- menghapus field
ALTER TABLE nama_tabel DROP [COLUMN] field_yang_dihapus
Misal :
ALTER TABLE mahasiswa DROP COLUMN alamat atau
ALTER TABLE mahasiswa DROP alamat
ALTER TABLE nama_tabel DROP [COLUMN] field_yang_dihapus
Misal :
ALTER TABLE mahasiswa DROP COLUMN alamat atau
ALTER TABLE mahasiswa DROP alamat
- mengedit / mengganti field
ALTER TABLE nama_tabel CHANGE [COLUMN] field_lama field_baru type_data(lebar_data)
Misal :
ALTER TABLE mahasiswa CHANGE nama nama_mhs char(40)
ALTER TABLE nama_tabel CHANGE [COLUMN] field_lama field_baru type_data(lebar_data)
Misal :
ALTER TABLE mahasiswa CHANGE nama nama_mhs char(40)
- Mengubah struktur tabel
mysql> alter table mhs modify nama varchar(35);
artinya: mengubah tipe field nama menjadi varchar(35)
mysql> alter table mhs modify nama varchar(35);
artinya: mengubah tipe field nama menjadi varchar(35)
2. DML (Data Manipulation Language)
DML merupakan bahasa untuk memanipulasi data (menambah, membaca/menampilkan, mengedit, menghapus)
DML merupakan bahasa untuk memanipulasi data (menambah, membaca/menampilkan, mengedit, menghapus)
Perintah DML a.l :
a. INSERT INTO: Untuk Menambah data baru/record/baris/row
Syntak :
INSERT INTO nama_tabel (field1, field2, …) VALUES (value1, value2,…).
a. INSERT INTO: Untuk Menambah data baru/record/baris/row
Syntak :
INSERT INTO nama_tabel (field1, field2, …) VALUES (value1, value2,…).
Field dan value harus berjumlah sama dan masing-masing berpasangan,
artinya : value1 akan diisikan ke field1, value2 akan diisikan ke
field2,dst.
Misal:
create table mhs (
nim char(9) not null,
nama varchar(30),
kelamin enum(‘L’,'P’),
tglahir date,
jurusan char(2),
ipkum decimal(3,2),
primary key(nim)
);
Misal:
create table mhs (
nim char(9) not null,
nama varchar(30),
kelamin enum(‘L’,'P’),
tglahir date,
jurusan char(2),
ipkum decimal(3,2),
primary key(nim)
);
INSERT INTO mhs (nim,nama,kelamin, tglahir,jurusan,ipkum)VALUES(‘05023562’,’TOTOK’,’L’,’1991-06-11’,’TI’, 2.45);
atau kalau semua field mau diisi, nama fieldnya tidak perlu ditulis
atau kalau semua field mau diisi, nama fieldnya tidak perlu ditulis
mysql> insert into mhs
values(’067890001′, ‘Agus Sugiarto’, ‘L’, ’1990-08-17′, ‘TI’, 2.56);
values(’067890001′, ‘Agus Sugiarto’, ‘L’, ’1990-08-17′, ‘TI’, 2.56);
Cobalah untuk mengisi beberapa record lagi. Ingat! nim tidak boleh sama dan harus diisi (krn not null).
Menambah record tetapi hanya field nim, nama, dan kelamin yang diisi:
mysql> insert into mhs(nim, nama, kelamin) values(’067890003′, ‘Amir Hamzah’, ‘L’);
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR(1) NOT NULL ,
Jumlah INTEGER,
PRIMARY KEY(kode)
);
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’001′, ‘Beras’, ‘M’, 10);
mysql> insert into mhs(nim, nama, kelamin) values(’067890003′, ‘Amir Hamzah’, ‘L’);
CREATE TABLE Barang (
Kode CHAR(3) NOT NULL,
Nama VARCHAR(20) NOT NULL,
Jenis CHAR(1) NOT NULL ,
Jumlah INTEGER,
PRIMARY KEY(kode)
);
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’001′, ‘Beras’, ‘M’, 10);
Jika tidak ingin untuk memasukkan data ke kolom Jenis (Kode,Nama,Jenis: semua NOT NULL)
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’001′, ‘Beras’, NULL, 10);
VALUES (’001′, ‘Beras’, NULL, 10);
perintah ini akan ditolak: krn jenis tdk diisi padahal harus diisi/NOT NULL (tidak boleh kosong)
Tetapi kalau jenis diisi ’null’ pakai tanda petik, perintah ini akan diterima karena dianggap karakter
Tetapi kalau jenis diisi ’null’ pakai tanda petik, perintah ini akan diterima karena dianggap karakter
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’001′, ‘Beras’, ’NULL’, 10);
VALUES (’001′, ‘Beras’, ’NULL’, 10);
Atau perintah di bawah ini, juga akan ditolak: krn nama, jenis tidak diisi (padahal not null : tdk boleh kosong)
INSERT INTO Barang (Kode, Jumlah)
VALUES (’006′, 12);
VALUES (’006′, 12);
Maka yang benar:
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’006′,’Buku’,’alat tulis’,12);
INSERT INTO Barang (Kode, Nama, Jenis, Jumlah)
VALUES (’006′,’Buku’,’alat tulis’,12);
Tetapi kalau field Jumlah tidak diisi maka field jumlah tidak usah ditulis (krn jumlah boleh kosong/bukan NOT NULL)
INSERT INTO Barang (Kode, Nama, Jenis)
VALUES (’006′,’Buku’,’alat tulis’);
VALUES (’006′,’Buku’,’alat tulis’);
atau ditulis juga bisa
INSERT INTO Barang (Kode, Nama, Jenis,jumlah)
VALUES (’006′,’Buku’,’alat tulis’,null);
VALUES (’006′,’Buku’,’alat tulis’,null);
Dengan menggunakan sebuah INSERT, kita bisa menambahkan sejumlah
baris yang berasal dari hasil qeury. Sekarang dicoba membuat tabel baru
bernama barangbr dengan perintah sbb:
create table barangbr (
Kd_brg char(3),
nama varchar(10),
Jenis char(1);
Kd_brg char(3),
nama varchar(10),
Jenis char(1);
dengan menggunakan INSERT, semua data barang, dengan jenis M (jenis ttt) dapat di transfer ke tabel barangbr. Caranya sbb:
INSERT INTO barangbr (Kd_brg, nama, Jenis) SELECT Kode, nama, Jenis FROM barang WHERE Jenis = ’M’;
b. UPDATE: Untuk MengEdit/mengubah data
Syntak :
UPDATE nama_tabel SET field1 = value1, field2 = value2,…[ WHERE kriteria ]
b. UPDATE: Untuk MengEdit/mengubah data
Syntak :
UPDATE nama_tabel SET field1 = value1, field2 = value2,…[ WHERE kriteria ]
Ctt: WHERE tujuannya untuk mengurangu jumlah record yang ditampilkan, kalau tanpa WHERE semua record akan tampil
Misal :Untuk mengganti nama mahasiwa menjadi ANDI untuk nim 05023562
UPDATE mahasiswa SET nama = “ANDI” WHERE nim=”05023562”
UPDATE mahasiswa SET nama = “ANDI” WHERE nim=”05023562”
mengubah sebuah kolom sebuah baris
UPDATE barang
SET nama = ‘beras delanggu’
WHERE Kode = ‘001’;
UPDATE barang
SET nama = ‘beras delanggu’
WHERE Kode = ‘001’;
Mengubah beberapa kolom
UPDATE barang
SET Nama = ‘beras delanggu’,
Jumlah = 10
WHERE Kode = ‘001’;
UPDATE barang
SET Nama = ‘beras delanggu’,
Jumlah = 10
WHERE Kode = ‘001’;
Mengubah beberapa baris
UPDATE barang
SET Jumlah = 0
WHERE Jenis = ‘M’;
UPDATE barang
SET Jumlah = 0
WHERE Jenis = ‘M’;
atau
UPDATE barang
SET Jumlah = 10
WHERE Kode = ‘001’ OR
Kode = ‘004’;
SET Jumlah = 10
WHERE Kode = ‘001’ OR
Kode = ‘004’;
setelah dieksekusi perintah diatas maka data jumlah milik kode 001 serta 004 berubah menjadi 10
Mengubah semua baris (semua record, field jumlah isinya null semua)
UPDATE barang
SET Jumlah = null;
UPDATE barang
SET Jumlah = null;
Misal dalam tabel barang ditambah atribut/field harga, kita bisa
menaikkan harga 20% dari harga semula, dengan menggunakan bentuk
ekspresi sbb:
UPDATE barang
SET harga = 1.2 * harga;
c. DELETE: Untuk Menghapus Data
Syntak :
DELETE FROM nama_tabel[WHERE Kriteria];
Misal :
- Untuk menghapus data mahasiswa yang mempunyai nim 05023562
DELETE FROM mahasiswa WHERE nim = “05023562”
UPDATE barang
SET harga = 1.2 * harga;
c. DELETE: Untuk Menghapus Data
Syntak :
DELETE FROM nama_tabel[WHERE Kriteria];
Misal :
- Untuk menghapus data mahasiswa yang mempunyai nim 05023562
DELETE FROM mahasiswa WHERE nim = “05023562”
- Menghpus sebuah baris
DELETE FROM Barang WHERE Kode = ‘001’;
DELETE FROM Barang WHERE Kode = ‘001’;
akan menghapus baris yang kolom Kode bernilai ‘001’ (hanya satu karena kunci primer)
- Menghapus beberapa baris
DELETE FROM Barang WHERE Jenis = ‘M’;
DELETE FROM Barang WHERE Jenis = ‘M’;
akan menghapus baris yang kolom Jenis bernilai ‘M’ (bisa lebih dari satu)
- Menghapus semua baris
DELETE FROM Barang;
d. SELECT: untuk membaca atau menampilkan data
SELECT Daftar_field_yang_akan_ditampilkan
FROM nama_tabel
[WHERE kriteria_data_yang_akan_ditampilkan]
DELETE FROM Barang;
d. SELECT: untuk membaca atau menampilkan data
SELECT Daftar_field_yang_akan_ditampilkan
FROM nama_tabel
[WHERE kriteria_data_yang_akan_ditampilkan]
Misal :
- Menampilkan semua kolom semua baris
SELECT * FROM Barang;
- Menampilkan semua kolom semua baris
SELECT * FROM Barang;
- menampilkan nim dan nama semua mahasiswa (menampilkan kolom tertentu)
SELECT nim, nama FROM mahasiswa
SELECT Kode, Nama FROM Barang;
SELECT nim, nama FROM mahasiswa
SELECT Kode, Nama FROM Barang;
- menampilkan nim dan nama mahasiswa jurusan MI
SELECT nim, nama FROM mahasiswa WHERE jurusan = ‘MI’
SELECT nim, nama FROM mahasiswa WHERE jurusan = ‘MI’
- menampilkan semua field dari tabel mahasiswa jurusan MI (memilih baris tertentu)
SELECT * FROM mahasiswa WHERE jurusan = ‘MI’
SELECT * FROM Barang WHERE Jenis=’A’;
SELECT * FROM mahasiswa WHERE jurusan = ‘MI’
SELECT * FROM Barang WHERE Jenis=’A’;
- Kalau hasil yang dikehendaki hanya berupa kemungkinan isi dari
kolom jenis, maka bisa menyisipkan kata DISTINCT pada klausa SELECT
SELECT DISTINCT jenis FROM barang;
SELECT DISTINCT kota FROM pegawai;
SELECT DISTINCT kota FROM pegawai;
mengetahui di kota mana saja pegawai bertempat tinggal (tdk semua record ditampilkan)
- Menampilkan jam sekarang
SELECT time(now());
- Menampilkan waktu sekarang
SELECT now();
SELECT time(now());
- Menampilkan waktu sekarang
SELECT now();
- Menampilkan tahun sekarang
SELECT year(now());
SELECT year(now());
- Menampilkan tanggal sekarang
SELECT date(now());
SELECT date(now());
- Menampilkan hari sekarang
SELECT day(now());
SELECT day(now());
- Operator Relasi
Beberapa operator relasi yang digunakan pada saat akan dibutuhakan suatu kriteria tertentu untuk menampilkan data adalah :
Operator Arti
= Sama dengan
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
<> Tidak Sama Dengan
LIKE Mengandung suatu kata/huruf tertentu
BETWEEN Rentang antara dua nilai
Beberapa operator relasi yang digunakan pada saat akan dibutuhakan suatu kriteria tertentu untuk menampilkan data adalah :
Operator Arti
= Sama dengan
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
<> Tidak Sama Dengan
LIKE Mengandung suatu kata/huruf tertentu
BETWEEN Rentang antara dua nilai
- untuk memperoleh barang yang jumlahnya antara 4 dan 11
SELECT * FROM Barang WHERE Jumlah >= 4 AND Jumlah <= 11;
SELECT * FROM Barang WHERE Jumlah >= 4 AND Jumlah <= 11;
dapat diganti dengan perintah
SELECT * FROM Barang WHERE Jumlah BETWEEN 4 AND 11;
SELECT * FROM Barang WHERE Jumlah BETWEEN 4 AND 11;
SELECT nama,stok FROM barang WHERE Jumlah > 10;
SELECT nama,harga FROM barang where not (harga > 6600 AND harga < 3000);
SELECT nama,harga FROM barang where not (harga > 6600 AND harga < 3000);
Operator logika (operator Boolean)
Yang sering digunakan adalah : AND (dan/dua-duanya harus benar), OR (atau/salah satu benar, jawabannya benar) dan NOT (bukan/tidak)
Yang sering digunakan adalah : AND (dan/dua-duanya harus benar), OR (atau/salah satu benar, jawabannya benar) dan NOT (bukan/tidak)
- Menampilkan nim, nama dan alamat mahasiswa jurusan TI dan berjenis kelamin wanita
SELECT nim,nama,alamat FROM mahasiswa WHERE jurusan= ‘TI’ AND jenis_kel = ‘WANITA’;
SELECT * FROM barang WHERE jenis = ‘MI’ AND stok = 10;
SELECT * FROM barang WHERE jenis = ‘MI’ OR stok = 10;
SELECT nama,jenis FROM barang WHERE NOT jenis = ‘MI’;
Operator BETWEEN dan NOT BETWEEN
- untuk memperoleh barang yang jumlahnya antara 4 dan 11
SELECT * FROM Barang WHERE Jumlah BETWEEN 4 AND 11;
- untuk memperoleh barang yang jumlahnya antara 4 dan 11
SELECT * FROM Barang WHERE Jumlah BETWEEN 4 AND 11;
- Menampilkan nim, nama dan IPK mahasiswa yang mempunyai IPK 2,5 sampai 3,2
SELECT nim,nama,ipk FROM mahasiswa WHERE ipk BETWEEN 2.5 AND 3.2
SELECT nim,nama,ipk FROM mahasiswa WHERE ipk BETWEEN 2.5 AND 3.2
- untuk memperoleh barang yang jumlahnya lebih kecil dari 4 dan lebih besar dr 11
SELECT * FROM Barang WHERE Jumlah NOT BETWEEN 4 AND 11;
SELECT * FROM Barang WHERE Jumlah NOT BETWEEN 4 AND 11;
Operator IN dan NOT IN
untuk melakukan pencocokan dengan salah satu yang termasuk didalam daftar
untuk melakukan pencocokan dengan salah satu yang termasuk didalam daftar
select * from mhs where jurusan = ‘MI’ or jurusan = ‘KA’;
untuk memperoleh mhs yang jurusannya MI atau KA.
untuk memperoleh mhs yang jurusannya MI atau KA.
Dapat diganti dengan
select * from mhs where jurusan IN(‘MI’,'KA’);
select * from mhs where jurusan IN(‘MI’,'KA’);
Bila ditambah NOT di depan IN akan memperoleh data diluar MI dan KA.
Menampilkan semua dari tabel barang yang jenis nya hanya MI dan SA
select * from barang where jenis IN(‘MI’,’SA’);
select * from barang where jenis IN(‘MI’,’SA’);
Menampilkan semua tabel barang yang jenisnya selain MI dan SA
select * from barang where jenis NOT IN(‘MI’,’SA’);
Operator LIKE dan NOT LIKE
- bermanfaat untuk mencari data semacam:
- barang apa saja yang mengandung huruf ‘be’
- perlu menyebutkan tanda wilcard berupa garis bawah ( _ ) atau persen (%).
• tanda _ berarti sebuah karakter apa saja
contoh:
a_i bisa berati ani, ali, abi, dll
select * from barang where jenis NOT IN(‘MI’,’SA’);
Operator LIKE dan NOT LIKE
- bermanfaat untuk mencari data semacam:
- barang apa saja yang mengandung huruf ‘be’
- perlu menyebutkan tanda wilcard berupa garis bawah ( _ ) atau persen (%).
• tanda _ berarti sebuah karakter apa saja
contoh:
a_i bisa berati ani, ali, abi, dll
• tanda % berarti cocok dengan karakter apa saja dan berapapun panjangnya
contoh:
- %a% cocok dengan apa saja yang mengandung karakter a atau A.
- %a cocok dengan yang berakhiran a atau A, hanya berlaku untuk yang bertipe VARCHAR
- a% cocok dengan yang berawalan a atau A
contoh:
- %a% cocok dengan apa saja yang mengandung karakter a atau A.
- %a cocok dengan yang berakhiran a atau A, hanya berlaku untuk yang bertipe VARCHAR
- a% cocok dengan yang berawalan a atau A
contoh:
- menampilkan nama mahasiswa yang berawalan “PAR”
SELECT nama FROM mahasiswa WHERE nama LIKE “PAR%”
- menampilkan nama mahasiswa yang berawalan “PAR”
SELECT nama FROM mahasiswa WHERE nama LIKE “PAR%”
SELECT * FROM Barang WHERE Nama LIKE ‘b%’;
SELECT * FROM Barang WHERE Nama LIKE ‘%p’;
SELECT * FROM Barang WHERE Nama LIKE ‘%u%’;
SELECT * FROM Barang WHERE Nama LIKE ‘_u%’;
Kalau ditambah NOT berarti menampilkan selain kata yang berawalan b
SELECT * FROM Barang WHERE Nama NOT LIKE ‘b%’;
SELECT * FROM Barang WHERE Nama LIKE ‘%p’;
SELECT * FROM Barang WHERE Nama LIKE ‘%u%’;
SELECT * FROM Barang WHERE Nama LIKE ‘_u%’;
Kalau ditambah NOT berarti menampilkan selain kata yang berawalan b
SELECT * FROM Barang WHERE Nama NOT LIKE ‘b%’;
- Operator IS NULL dan IS NOT NULL
Jika ingin menampilkan data stok yang berisi NULL:
SELECT * FROM barang WHERE stok IS NULL;
Jika ingin menampilkan data stok yang berisi NULL:
SELECT * FROM barang WHERE stok IS NULL;
Jika ingin menampilkan semua barang yang stok nya tidak berisi NULL, anda bisa memakai operator IS NOT NULL
SELECT * FROM barang WHERE stok IS NOT NULL;
SELECT * FROM barang WHERE stok IS NOT NULL;
Mengurutkan data dengan ORDER BY
- Menampilkan semua barang yang ada di tabel barang secara urut naik berdasarkan kode barang
SELECT * FROM barang ORDER BY harga;
- Menampilkan semua barang yang ada di tabel barang secara urut naik berdasarkan kode barang
SELECT * FROM barang ORDER BY harga;
- Mengurutkan barang berdasar nama secara urut naik (ascending)
SELECT kode, nama FROM barang ORDER BY nama;
SELECT kode, nama FROM barang ORDER BY nama;
- Mengurutkan secara urut turun (descending)
SELECT kode, nama FROM barang ORDER BY nama DESC;
SELECT kode, nama FROM barang ORDER BY nama DESC;
- Mengurutkan barang menurut jenis dan nama
SELECT kode, jenis, nama FROM barang ORDER BY jenis, nama;
SELECT kode, jenis, nama FROM barang ORDER BY jenis, nama;
- Mengurutkan barang menurut jenis (descending) dan nama (ascending)
SELECT kode, jenis, nama FROM barang
ORDER BY jenis DESC, nama;
SELECT kode, jenis, nama FROM barang
ORDER BY jenis DESC, nama;
atau
SELECT kode, jenis, nama FROM barang
ORDER BY jenis , nama DESC;
- Mengurutkan barang menurut kolom 2 (jenis)
SELECT kode, jenis, nama FROM barang ORDER BY 2;
ORDER BY jenis , nama DESC;
- Mengurutkan barang menurut kolom 2 (jenis)
SELECT kode, jenis, nama FROM barang ORDER BY 2;
SELECT kode,jenis,nama FROM barang ORDER BY 2 DESC;
Mengelompokkan data dengan GROUP BY (hampir sama dengan DISTINCT)
Mengetahui jurusan apa saja dalam tabel mhs
SELECT jurusan FROM mhs GROUP BY jurusan;
Mengelompokkan data dengan GROUP BY (hampir sama dengan DISTINCT)
Mengetahui jurusan apa saja dalam tabel mhs
SELECT jurusan FROM mhs GROUP BY jurusan;
hasilnya:
+———+
| jurusan |
+———+
| KA |
| MI |
| TI |
| TK |
———–
+———+
| jurusan |
+———+
| KA |
| MI |
| TI |
| TK |
———–
SELECT jenis FROM barang GROUP BY jenis;
Klausa HAVING (pengganti WHERE)
• Klausa HAVING terkait dengan klausa GROUP BY
• Gunanya untuk menentukan kondisi bagi GROUP BY
• Kelompok yang memenuhi HAVING saja yang akan dihasilkan
Klausa HAVING (pengganti WHERE)
• Klausa HAVING terkait dengan klausa GROUP BY
• Gunanya untuk menentukan kondisi bagi GROUP BY
• Kelompok yang memenuhi HAVING saja yang akan dihasilkan
- Menampilkan jurusan dari tabel mhs berdasarkan kelompok jurusan, selain jurusan KA
SELECT jurusan FROM mhs group by jurusan
having jurusan <> ‘KA’;
having jurusan <> ‘KA’;
hasilnya:
+———+
| jurusan |
+———+
| MI |
| TI |
| TK |
+———+
+———+
| jurusan |
+———+
| MI |
| TI |
| TK |
+———+
perintah ini dapat diganti dengan:
SELECT jurusan FROM mhs WHERE jurusan <> ‘KA’
GROUP BY jurusan;
GROUP BY jurusan;
- Menampilkan jenis dari tabel barang berdasarkan kelompok jenis, yang jenisnya MA
SELECT jenis FROM barang group by jenis
having jenis = ‘MA’;
Penggunaan Fungsi Agregat
Daftar Fungsi Agregat
Fungsi Agregat Keterangan
AVG Memperoleh nilai rata-rata
COUNT Menghitung cacah data
MAX Menghasilkan nilai terbesar
MIN Menghasilkan nilai terkecil
SUM Memperoleh penjumlahan data
Fungsi AVG
- Menghitung harga rata-rata barang
SELECT AVG(harga) FROM barang;
having jenis = ‘MA’;
Penggunaan Fungsi Agregat
Daftar Fungsi Agregat
Fungsi Agregat Keterangan
AVG Memperoleh nilai rata-rata
COUNT Menghitung cacah data
MAX Menghasilkan nilai terbesar
MIN Menghasilkan nilai terkecil
SUM Memperoleh penjumlahan data
Fungsi AVG
- Menghitung harga rata-rata barang
SELECT AVG(harga) FROM barang;
- Menghasilkan rata-rata ipkum
SELECT AVG(ipkum) FROM mhs;
SELECT AVG(ipkum) FROM mhs;
- Menghitung harga rata-rata per jenis
SELECT jenis, AVG(harga) FROM barang GROUP BY jenis;
SELECT jenis, AVG(harga) FROM barang GROUP BY jenis;
- Menghasilkan rata-rata ipkum dikelompokkan berdasar jurusan
SELECT jurusan, AVG(ipkum) FROM mhs GROUP BY jurusan;
SELECT jurusan, AVG(ipkum) FROM mhs GROUP BY jurusan;
- Menghasilkan rata-rata ipkum mhs yang mempunyai jurusan MI
SELECT AVG(ipkum) FROM mhs WHERE jurusan = ‘MI’;
SELECT AVG(ipkum) FROM mhs WHERE jurusan = ‘MI’;
- Menampilkan rata-rata harga dari tabel barang yang jenis MI
SELECT AVG(harga) FROM barang WHERE jenis = ‘MI’;
SELECT AVG(harga) FROM barang WHERE jenis = ‘MI’;
atau
SELECT AVG(harga) FROM barang GROUP BY jenis HAVING jenis = ‘MI’;
Fungsi COUNT
- Menghasilkan cacah baris dari tabel mhs. Kolom nim dalam COUNT dapat diganti dengan kolom apa saja (hanya 1 field) atau cukup ditulis * (sembarang).
Fungsi COUNT
- Menghasilkan cacah baris dari tabel mhs. Kolom nim dalam COUNT dapat diganti dengan kolom apa saja (hanya 1 field) atau cukup ditulis * (sembarang).
SELECT COUNT(nim) FROM mhs;
SELECT jurusan, COUNT(*) FROM mhs GROUP BY jurusan;
menghasilkan:
+———+———-+
| jurusan | count(*) |
+———+———-+
| KA | 1 |
| MI | 2 |
| TI | 2 |
| TK | 1 |
+———+———-+
+———+———-+
| jurusan | count(*) |
+———+———-+
| KA | 1 |
| MI | 2 |
| TI | 2 |
| TK | 1 |
+———+———-+
- catatan: kolom kedua bisa diganti nama kolomnya dengan klausa AS (untuk memberi nama lain terhadap suatu keluaran):
SELECT jurusan, COUNT(*) AS cacah FROM mhs GROUP BY jurusan;
menghasilkan:
+———+———-+
| jurusan | cacah |
+———+———-+
| KA | 1 |
| MI | 2 |
| TI | 2 |
| TK | 1 |
+———+———-+
+———+———-+
| jurusan | cacah |
+———+———-+
| KA | 1 |
| MI | 2 |
| TI | 2 |
| TK | 1 |
+———+———-+
- Menghitung cacah/jml barang per jenis, khusus untuk yang jumlahnya lebih dari 2
SELECT jenis, COUNT(*) FROM barang GROUP BY jenis HAVING COUNT(jenis) > 2;
- Menghitung cacah jenis yang tertera dalam tabel barang
SELECT COUNT(DISTINCT jenis) FROM barang;
SELECT COUNT(DISTINCT jenis) FROM barang;
Fungsi MAX
Untuk memperoleh nilai terbesar
- Menampilkan harga terbesar
SELECT MAX(harga) FROM barang;
SELECT nama, MAX(harga) FROM barang;
Untuk memperoleh nilai terbesar
- Menampilkan harga terbesar
SELECT MAX(harga) FROM barang;
SELECT nama, MAX(harga) FROM barang;
- Menampilkan harga terbesar per jenis
SELECT jenis, MAX(harga) FROM barang GROUP BY jenis;
SELECT jenis, nama, MAX(harga) FROM barang GROUP BY jenis;
SELECT jenis, MAX(harga) FROM barang GROUP BY jenis;
SELECT jenis, nama, MAX(harga) FROM barang GROUP BY jenis;
Fungsi MIN
Untuk memperoleh nilai yang terkecil
- Menampilkan harga terkecil
SELECT MIN(harga) FROM barang;
SELECT nama, MIN(harga) FROM barang;
Untuk memperoleh nilai yang terkecil
- Menampilkan harga terkecil
SELECT MIN(harga) FROM barang;
SELECT nama, MIN(harga) FROM barang;
- Menampilkan harga terkecil per jenis
SELECT jenis, MIN(harga) FROM barang GROUP BY jenis;
SELECT jenis, nama, MIN(harga) FROM barang GROUP BY jenis;
SELECT jenis, MIN(harga) FROM barang GROUP BY jenis;
SELECT jenis, nama, MIN(harga) FROM barang GROUP BY jenis;
Fungsi SUM
Untuk melakukan penjumlahan data
- Menghasilkan jumlah seluruh ipkum
SELECT SUM(ipkum) FROM mhs;
Untuk melakukan penjumlahan data
- Menghasilkan jumlah seluruh ipkum
SELECT SUM(ipkum) FROM mhs;
- Menampilkan seluruh stok barang
SELECT SUM(stok) FROM barang;
SELECT SUM(stok) FROM barang;
- Menampilkan total stok untuk setiap jenis
SELECT jenis, SUM(stok) FROM barang GROUP BY jenis;
SELECT jenis, SUM(stok) FROM barang GROUP BY jenis;
Klausa LIMIT
untuk membatasi jumlah baris yang ditampilkan,
- SELECT * FROM mhs LIMIT 3;
hanya menampilkan 3 record dari atas
untuk membatasi jumlah baris yang ditampilkan,
- SELECT * FROM mhs LIMIT 3;
hanya menampilkan 3 record dari atas
- SELECT nama, harga FROM barang LIMIT 4;
Penggunaan Ekspresi
SELECT harga FROM barang;
Penggunaan Ekspresi
SELECT harga FROM barang;
- Misal harga diskon 10%
SELECT nama,harga * 0.1 FROM barang;
SELECT nama,harga * 0.1 FROM barang;
- berarti harga yang di bayarkan 90%
SELECT nama,harga * 0.9 AS hargabr FROM barang;
SELECT nama,harga * 0.9 AS hargabr FROM barang where Kd_brg=’B07’;
SELECT nama,harga * 0.9 AS hargabr FROM barang;
SELECT nama,harga * 0.9 AS hargabr FROM barang where Kd_brg=’B07’;
Ctt:kolom harga diberi judul hargabr
- Untuk melihat kekayaan per barang
SELECT harga * stok FROM barang;
SELECT harga * stok FROM barang;
- Melihat total kekayaan
SELECT sum(harga * stok) FROM barang;
SELECT sum(harga * stok) FROM barang;
Hasil Praktikum
Persiapan praktek : Gunakan tabel mahasiswa dan fakultas pada pertemuan 3. Tambahkan kolom gender di tabel mahasiswa kemudian update data mahasiswa. Insert data mahasiswa hingga 7 baris.
1. Berdasarkan tabel sebelumnya yaitu bab 3, tampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen.
2. Tampilkan nama mahasiswa fakultas saintek yang berjenis kelamin laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki
3. Suatu tabel mahasiswa terdapat 7 baris data mahasiswa. Tampilkan data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between.
4. Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN.
5. Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”.
6. Tampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”.
7. Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir.
8. Tampilkan data mahasiswa 3 baris saja.
9. Tampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh r atau boleh t atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll.
*Boleh dengan awalan dan ciri yang lain namun karakteristiknya harus sesuai soal
10. Buatlah tabel dengan nama organ_dalam dan organ_luar sebagai berikut :
a. Tabel organ_dalamNomorNama
1Jantung
2Paru-paru
3Tenggorokan
b. Tabel organ_luar
NomorNama
1Hidung
2Mata
3Tenggorokan
Tampilkan data dari kedua tabel tersebut menggunakan UNION, EXCEPT dan INTERSECT
Evaluasi Perbandingan 2 DBMS
PostgreSQL
PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.PostgreSQL adalah sistem database yang kuat untuk urusan relasi, open source. Memiliki lebih dari 15 tahun pengembangan aktif dan sudah terbukti segala rancangan arsitekturnya telah mendapat reputasi tentang “kuat”, “handal”, “integritas data”, dan “akurasi data”
Fitur
PostgreSQL
Sebagai enterprise
class database, PostgreSQL menghadirkan berbagai fitur yang memuaskan seperti
Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces,
asynchronous replication, nested transactions (savepoints), online/hot backups,
query planner/optimizer yang baik, dan write ahead logging untuk fault
tolerance. Object-relational database system ini juga mendukung international
character set, multibyte character encoding, Unicode, dan memiliki kemampuan
yang baik dalam sorting, case-sensitivity, dan formatting.
PostgreSQL sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam jumlah concurrent user yang dapat diakomodasi olehnya. Sebagai contoh ketangguhannya, terdapat sistem PostgreSQL aktif yang mampu menangani dan mengelola penggunaan 4 terabyte data.
PostgreSQL memiliki kemampuan yang tidak dapat diremehkan karena memiliki fitur yang sangat lengkap dan bersifat standard compliant. Sistem database ini juga fleksibel dan dapat dengan mudah disesuaikan (highly customizable), di mana PostgreSQL dapat digunakan dengan berbagai bahasa pemrograman seperti Java, Perl, Python, Ruby, Tcl, C/C++, dan PL/pgSQL (serupa dengan PL/SQL Oracle).
PostgreSQL sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam jumlah concurrent user yang dapat diakomodasi olehnya. Sebagai contoh ketangguhannya, terdapat sistem PostgreSQL aktif yang mampu menangani dan mengelola penggunaan 4 terabyte data.
PostgreSQL memiliki kemampuan yang tidak dapat diremehkan karena memiliki fitur yang sangat lengkap dan bersifat standard compliant. Sistem database ini juga fleksibel dan dapat dengan mudah disesuaikan (highly customizable), di mana PostgreSQL dapat digunakan dengan berbagai bahasa pemrograman seperti Java, Perl, Python, Ruby, Tcl, C/C++, dan PL/pgSQL (serupa dengan PL/SQL Oracle).
Dan yang terbaik,
source code PostgreSQL tersedia di bawah lisensi liberal open source license,
yaitu PostgreSQL License. Lisensi ini memberikan kebebasan bagi Anda untuk
menggunakan, memodifikasi dan mendistribusikan PostgreSQL dalam bentuk yang
Anda sukai, baik open source maupun closed source.
Sistem
Operasi yang Digunakan Untuk PostgreSQL
PostgreSQL berjalan
pada semua sistem operasi utama, termasuk Linux, UNIX (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64), dan tidak ketinggalan sistem operasi Windows.
PostgreSQL memiliki kemampuan fully ACID compliant, memiliki dukungan penuh
terhadap foreign key, join, view, trigger, dan stored procedure (pada lebih
dari satu bahasa). Selain itu, PostgreSQL juga mencakup sebagian besar tipe
data SQL:2008, termasuk INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATA,
INTERVAL, dan TIMESTAMP. PostgreSQL mendukung penyimpanan binary large object,
seperti gambar, suara, atau video, dan memiliki native programming interface
untuk C/C++, Java, .NET, Perl, Python, Ruby, Tcl, ODBC, dan lain-lain.
Pengguna PostgreSQL
- Yahoo! untuk analisa prilaku pengguna web, menyimpan 2 petabyte data dan mengklaim sebagai gudang data terbesar. Menggunakan versi PostgreSQL yang dimodifikasi, dengan engine penyimpanan berbasis kolom yang sepenuhnya berbeda.
- MySpace, situs jejaring sosial populer, menggunakan basisdata Aster nCluster untuk gudang data, dibangun diatas PostgreSQL tanpa modifikasi.
- OpenStreetMap, proyek kolaboratif untuk menciptakan peta dunia yang bebas sunting.
- Afilias, register domain untuk .org, .info, dan sebagainya.
- Sony Online multiplayer online game.
- BASF, platform belanja untuk portal agribisnisnya.
- hi5.com portal jejaring sosial.
- Skype aplikasi VoIP, basisdata pusat bisnis.
- Sun xVM, perangkat lunak virtualisasi dan otomasi datacenter milik Sun.
Penghargaan
Sampai
dengan tahun 2012 PostgreSQL telah menerima penghargaan-penghargaan
sebagai berikut : • Database terbaik tahun 1999 dari LinuxWorld Editor’s Choice Award
• Database terbaik tahun 2000 dari Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2002 dari Linux New Media Editor Choice Award
• Database terbaik tahun 2003 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2004 dari Linux New Media Award
• Database terbaik tahun 2004 Linux Journal Editors’ Choice Awards
• Ars Technica Best Server Application Award tahun 2004
• Database terbaik tahun 2005 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2006 Linux Journal Editors’ Choice Awards
• Product of the Year, Database Tool tahun 2008 dari Developer.com
• Linux New Media Award tahun 2012 untuk kategori Database Open source terbaik
MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
Sistem manajemen basis data relasional
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.
Sejarah MySQL
MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty" Widenius, seorang programmer komputer asal Swedia. Monty mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di Swedia.TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem database. Namun sayangnya, UNIREG dianggagap tidak cocok untuk database yang dinamis seperti web.
TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.
Dengan tujuan memperbaiki performa mSQL, Monty mencoba menghubungi David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Namun saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.
Dikarenakan penolakan tersebut, David Hughes, TcX (dan juga Monty) akhirnya memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source codenya dapat bebas digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL dirilis.
David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’ dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep bisnis ini sekarang dikenal dengan istilah Open Source.
Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan Swedia.
Keistimewaan MySQL
MySQL memiliki beberapa keistimewaan, antara lain :- Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
- Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
- Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
- 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
- Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
- Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
- Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
- Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
- Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
- Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
- Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
- Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
- Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
Penggunaan
MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo.
Bahasa pemrograman
Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.
Kesimpulan
Rangkuman
Perbandingan dalam
Perintah Dasar SQL
1. Dilihat
dari segi perbedaan dan kesamaan :
·
Perbedaan : Dalam
praktikum ke-3 ini, khususnya tentang “Perintah Dasar SQL” pada penulisan
source code tidak ada perbedaan.
·
Kesamaan : Cara
penulisan source code sama.
2. Dilihat
dari segi kelebihan dan kekurangan :
·
Kelebihan : MySQL lebih mudah dikerjakan
dibanding postgresql karena kalau salah, maka akan tetap ditampilkan
diprojectnya (tidak bisa dihapus) selama programnya dijalankan.
·
Kekurangan : PostgreSQL lebih sulit dijalankan
karena harus benar-benar teliti.
3.
Tambahan :
Secara
keseluruhan hamper sama antara PostgreSQL dan MySQL hanya ada beberapa
perbedaan yang saya temukan dalam percobaan di praktikum ini, yaitu pada
pengoperasian PostgreSQL harus diinisialisasi tipe datanya agar mendapatkan
hasil yang sebenarnya, sedangkan pada MySQL tidak perlu menginisialisasi tipe
datanya karena hasilnya sudah benar.























