Dokumen tersebut membahas tentang manipulasi data pada database MySQL melalui update, delete, dan seleksi data. Terdapat penjelasan mengenai update data pada satu tabel dan join tabel, penghapusan data, serta seleksi data menggunakan berbagai klausula seperti where, group by, having, dan limit.
2. Nama Field Tipe Data Kunci Keterangan
IdBuku smallint Primary key Not Null
NamaBuku Varchar 40 Not Null
Stok smallint Not Null
Tabel Buku (Engine : Innodb)
Nama Field Tipe Data Kunci Keterangan
IdPembelian smallint Primary key Not Null
IdBuku smallint Foreign Key
Buku.IdBuku
Not Null
Kuantitas tinyint Not Null,
Default=1
TglBeli timestamp
Tabel Pembelian (Engine : Innodb)
3. CREATE TABLE Buku (
IdBuku SMALLINT PRIMARY KEY,
NamaBuku VARCHAR(40) NOT NULL,
Stok SMALLINT NOT NULL
)ENGINE=InnoDB;
Tabel Buku (Engine : Innodb)
Tabel Pembelian (Engine : Innodb)
CREATE TABLE Pembelian (
IdPembelian SMALLINT PRIMARY KEY,
IdBuku SMALLINT NOT NULL,
Kuantitas TINYINT NOT NULL DEFAULT 1,
TglBeli TIMESTAMP,
FOREIGN KEY (IdBuku) REFERENCES buku (IdBuku) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
4. Tabel Buku
IdBuku NamaBuku Stok
101 Noncomformity : Writing on Writing 12
102 The Shipping News 17
103 Hell’s Angels 23
104 Letters to a Young Poet 32
105 A Confedracy of Dunces 6
106 One Hundred Years of Solitude 28
INSERT INTO Buku VALUES
(‘101’,’Noncomformity : Writing on Writing’,12),
(‘102’,’The Shipping News’,’17’),
(‘103’,’Hell’s Angels’,’23’),
(‘104’,’Letters to a Young Poet’,’32’),
(‘105’,’A Confedracy of Dunces’,’6’),
(‘106’,’One Hundred Years of Solitude’,’28’);
6. Update Table Tunggal (Single Table)
Perhatikan bahwa nilai-nilai yang ditambahkan ke kolom IdBuku meliputi hanya nilai-nilai yang terdapat dalam kolom IdBuku
pada tabel Buku. Kolom IdBuku di Pembelian merupakan kolom yang mereferensi / mengkait, dan kolom IdBuku di tabel
Buku merupakan kolom yang direferensi / dikait. Setelah membuat tabel dan menambahkan data pada tabel-tabel tersebut,
anda dapat memodifikasi datanya, Contoh :
UPDATE Buku SET Stok=Stok+10;
Dalam pernyataan ini karena tidak ada kondisi khusus yang harus dipenuhi, berarti akan mengubah seluruh nilai dari kolom
Stok ditambahkan dengan 10.
UPDATE Pembelian SET Kuantitas=2 WHERE IdPembelian=1001;
Dalam pernyataan di atas berarti akan mengupdate kolom kuantitas menjadi 2 dimana IdPembelian=1001
7. Update Table Tunggal (Single Table) (cont)
UPDATE Pembelian SET Kuantitas=Kuantitas+1 WHERE IdPembelian=1001;
Dalam pernyataan di atas, baris dengan IDPembelian=1001, nilai dari kuantitasnya yang lama akan ditambahkan dengan 1
UPDATE LOW_PRIORITY Buku SET Stok=Stok+10 WHERE Stok<30;
Dalam pernyataan di atas, setiap baris data pada tabel buku yang mempunyai stok lebih kecil dari 30 akan ditambah dengan
10
UPDATE Pembelian SET Kuantitas=Kuantitas+1 WHERE IdBuku=103 ORDER BY TglBeli DESC LIMIT 5;
Dalam pernyataan di atas, akan mengupdate tabel pembelian yang mempunyai IdBuku = 103, dimana nilai kuantitas ditambah
1. diurutkan berdasarkan TglBeli secara Descending pada 5 baris pertama.
8. Update Table Join (Join Table)
Dalam contoh pernyataan Update sebelumnya anda telah melihat bahwa update hanya dilakukan pada tabel-tabel secara
individual tanpa menjoinkannya dengan tabel lain. contoh melakukan update untuk 2 tabel yang direferensi/dikait oleh
foreign key adalah sebagai berikut :
UPDATE Buku,Pembelian
SET Buku.Stok=Buku.Stok – Pembelian.Kuantitas
WHERE Buku.IdBuku=Pembelian.IdBuku AND Pembelian.IdPembelian=1002;
Dalam pernyataan di atas berarti, mengupdate tabel buku, dimana kolom stok yang baru merupakan hasil pengurangan kolom
stok yang lama dengan kolom kuantitas pada tabel pembelian dengan syarat IdBuku di tabel buku sama dengan IdBuku di
tabel pembelian dan IdPembelian di tabel pembelian = 1002
UPDATE Buku,Pembelian
SET Pembelian.Kuantitas=Pembelian.Kuantitas+2, Buku.Stok=Buku.Stok – 2
WHERE Buku.IdBuku=Pembelian.IdBuku AND Pembelian.IdPembelian=1002;
9. Menghapus Data Dalam Database MYSQL
DELETE FROM Pembelian WHERE IdPembelian=1002;
DELETE LOW_PRIORITY FROM Pembelian WHERE IdBuku=103 ORDER BY TglBeli DESC LIMIT 1;
Contoh menghapus pada tabel tunggal :
DELETE Pembelian.* FROM Buku,Pembelian
WHERE Buku.IdBuku = Pembelian.IdBuku
AND Buku.NamaBuku=‘Letters to a Young Poet’;
Contoh menghapus pada joined tables :
11. Seleksi Data Pada Tabel MYSQL
Salah satu fungsi terpenting dalam mengakses data yang ada dalam tabel di sistem adalah SELECT yang berguna dalam
mengakses data baik secara kolom maupun baris, dari satu tabel maupun lebih. Ketika anda mengeksekusi fungsi tersebut,
maka fungsi tersebut akan mengeluarkan berupa hasil yang kita butuhkan. Sebagai contoh kita buat terlebih dahulu Tabel
Angkot
Nama Field Tipe Data Kunci Keterangan
AngkotID smallint Primary key Not Null, Auto
Increment
NamaSupir varchar 50 Not Null
Jurusan varchar 50 Not Null
JenisMobil Enum Toyota, Daihatsu
JumlahMobil smallint Not Null
MaxPenumpang smallint Not Null
TahunAktif year Not Null
DataUpdate timestamp Not Null
CREATE TABLE Angkot (
AngkotID SMALLINT AUTO_INCREMENT,
NamaSupir VARCHAR(50) NOT NULL,
Jurusan VARCHAR(50) NOT NULL,
JenisMobil ENUM(‘Toyota’,’Daihatsu’) NOT NULL,
JumlahMobil SMALLINT NOT NULL,
MaxPenumpang SMALLINT NOT NULL,
TahunAktif YEAR,
DataUpdate TIMESTAMP NOT NULL,
PRIMARY KEY (AngkotID)
);
12. Seleksi Data Pada Tabel MYSQL
Tabel Angkot
NamaSupir Jurusan JenisMobil JumlahMobil MaxPenumpang TahunAktif DataUpdate
Adi Cicaheum-Ciroyom Toyota 4 9 1990 Timestamp
Ari Dago-Kelapa Toyota 6 7 1995 Timestamp
Andi Cicaheum-Ciroyom Daihatsu 10 4 1996 Timestamp
Budi Dago-Kalapa Daihatsu 3 7 1989 Timestamp
Cecep Kelapa-Ledeng Toyota 9 8 1997 Timestamp
Dika Kelapa-Ledeng Daihatsu 5 6 1986 Timestamp
Edi SadangSerang-
Caringin
Toyota 4 8 1991 Timestamp
Eka SadangSerang-
Caringin
Daihatsu 5 9 1988 Timestamp
INSERT INTO Angkot Values (Null, ‘Adi’,’Cicaheum-Ciroyom’,’Toyota’,4,9,1990,now());
13. Seleksi Tabel (*)
SELECT * FROM <nama tabel>
(Exp : SELECT * FROM angkot; )
Setelah data telah masuk dalam tabel, kita akan mencoba untuk memeriksa apakah data yang telah kita masukkan tadi sudah
ada atau tidak, yaitu dengan cara menjalankan statement berikut :
14. Seleksi Tabel (kolom)
SELECT < nama kolom, nama kolom, ... > FROM <nama tabel>
(Exp : SELECT angkotid, jurusan, jenismobil FROM angkot; )
Secara umum, data yang ada pada tabel akan selalu berubah dan memiliki data yang banyak. jika kita hanya memerlukan
beberapa berdasarkan kolomnya, maka perintahnya sbb :
15. Seleksi Tabel (Aritmatika)
SELECT namasupir, jumlahmobil + maxpenumpang AS total FROM angkot;
dalam perintah select, terkadang kita membutuhkan operasi aritmatika untuk proses (Tambah, Kurang, Pembagian, Perkalian)
kolom total terbentuk dari 2 kolom jumlahmobil dan maxpenumpang. ekspresi diatas dapat dikombinasikan lebih dari dua
variabel (kolom). oleh karena itu kombinasi ini dapat digunakan sesuai kebutuhan yang ada.
16. Seleksi Tabel (String)
SELECT concat(namasupir,“ “,jurusan,” “,jenismobil) AS semua FROM angkot;
dalam perintah select, terkadang kita menginginkan penggabungan sebuah string :
17. Seleksi Tabel (alias)
SELECT < nama kolom AS <nama kolom baru>, ... > FROM <nama tabel>
(Exp : SELECT namasupir AS supir, jurusan AS tujuan FROM angkot; )
dalam perintah select, terkadang nama kolom tabel terlalu panjang atau tidak dipahami oleh pengguna. oleh sebab itu
digunakanlah alias untuk merepresentasikan nama kolom pada tabel, sintaksnya adalah :
18. Seleksi Tabel (Clausa Where)
WHERE <expression> [{<operator><expression>}...]
Clausa WHERE digunakan untuk membuat satu atau lebih kondisi pada SELECT statement. secara sintaks adalah sebagai
berikut :
Jika dilihat dari sintaksnya maka minimal kondisi yang ada yaitu satu kondisi. dan jika terdapat lebih dari satu kondisi maka
kondisi-kondisi tersebut harus saling terhubung dengan fungsi AND atau OR.
SELECT namasupir, jurusan
FROM angkot
WHERE tahunaktif=1991;
SELECT namasupir, jurusan
FROM angkot
WHERE tahunaktif=1991 AND namasupir=‘budi’;
19. Seleksi Tabel (Clausa Group By)
Fungsi GROUP BY ini minimal terdiri dari satu kolom yang terdefinisi. Fungsi GROUP ini digunakan untuk mengelompokkan
kolom-kolom berdasarkan urutan kolom yang telah terdefinisi pada tabel. Dalam fungsi ini juga dapat diatur baik secara
ASCENDING maupun DESCENDING.
1. SELECT jurusan, COUNT(*) AS total FROM angkot;
2. SELECT jurusan, COUNT(*) AS total FROM angkot GROUP BY jurusan;
3. SELECT jurusan, COUNT(*) AS total FROM angkot WHERE jenismobil=‘toyota’ GROUP BY jurusan;
4. SELECT jurusan, jenismobil, COUNT(*) AS total FROM angkot WHERE jenismobil=‘toyota’ GROUP BY jurusan,jenismobil;
20. Seleksi Tabel (Clausa Limit)
Clausa limit sama dengan fungsi order by, namun fungsi ini akan lebih efektif pada statement SELECT. Clausa limit
menggunakan 2 argumen dan secara umum sintaksnya adalah :
LIMIT [<offset>,]<row count>
pilihan pertama <offset> merupakan pilihan optional. nilai defaultnya 0, dan pada argument kedua <row count> menujukkan
jumlah baris yang akan ditampilkan.
SELECT namasupir,jenismobil,maxpenumpang
FROM angkot
WHERE maxpenumpang>6
ORDER BY namasupir DESC
LIMIT 2;
SELECT namasupir,jenismobil,maxpenumpang
FROM angkot
WHERE maxpenumpang>6
ORDER BY namasupir DESC
LIMIT 3,2;
21. Seleksi Tabel (Clausa Having)
Fungsi clausa HAVING hampir sama dengan clausa WHERE. pada fungsi ini dapat memasukkan AGGREGATE. fungsi
AGGREGATE adalah fungsi untuk menghasilkan summarize seperti fungsi COUNT(), SUM(),AVG(),MAX(),MIN(). Sintaks secara
umum yaitu :
Select jurusan, COUNT(*) AS total FROM angkot
WHERE jenismobil=‘toyota’
GROUP BY jurusan
HAVING total<2;
HAVING <expression> [{<operator><expression>}...]
data yang akan tampil adalah data yang memiliki nilai total yang kurang dari 2