Pernyataan UPDATE merupakan pernyataan DML dalam MySQL yang digunakan untuk mengubah/mengupdate data pada rekord-rekord yang ada dalam sebuah tabel.
Pada sesi ini akan dibahas tentang Pernyataan UPDATE dengan sub
bahasan Fungsi, sintaks, contoh-contoh, penggunaan klausa WHERE dalam
pernyataan UPDATE, serta latihan-latihan dan tugas.
Sintaks Pernyataan UPDATE
UPDATE nama_tabel
SET kolom_1 = nilai_baru_1, kolom_2 =nilai_baru_2, …
[WHERE kondisi];
Catatan: Jika klausa WHERE tidak disertakan dalam penyataan UPDATE akan mengakibatkan seluruh record ter-update seluruhnya berdasarkan nilai baru yang dicantukan
Latihan Pernyataan UPDATE
Basis Data Demo
Sebelum mempelajari lebih lanjut pernyataan UPDATE dalam mySQL buatlah database perpustakaan dan tabel anggota sebagai berikut, dengan peritntah MySQL sebagai berikut:
- Buat basisdata perpustakaan
1
| CREATE DATABASE perpustakaan; |
- Aktifkan basisdata perpustakaan
1
| USE DATABASE perpustakaan; |
- Buat tabel anggota, untuk penjelasan pembuatan tabel dapat anda pelajari pada materi SQL: CREATE TABLE
1
2
3
4
5
6
| CREATE TABLE anggota( no_anggota CHAR (5) PRIMARY KEY , nama VARCHAR (50), alamat VARCHAR (50), tempat_lahir VARCHAR (30), tanggal_lahir DATE ); |
- menyisipkan beberapa beberapa record sekaligus
1
2
3
4
5
| INSERT INTO anggota VALUES ( 'A0001' , 'Hari Syahab' , 'Jl. Sonosewu No. 14' , 'Sleman' , '1989-12-24' ), ( 'A0002' , 'Fairuz el Said' , 'Jl. Sonosewu No. 17' , 'Bulukumba' , '1974-09-27' ), ( 'A0003' , 'Tri Susilowati' , 'Jl. Rejodadi No. 11' , 'Blora' , '1976-09-27' ), ( 'A0004' , 'Tasnim' , 'Jl. Gejayan No. 12' , 'Bantul' , '1970-07-20' ); |
- Tampilkan seluruh record pada tabel anggota
1
2
3
4
5
6
7
8
9
| SELECT * FROM anggota; + ------------+----------------+---------------------+--------------+---------------+ | no_anggota | nama | alamat | tempat_lahir | tanggal_lahir | + ------------+----------------+---------------------+--------------+---------------+ | A0001 | Hari Syahab | Jl. Sonosewu No . 14 | Sleman | 1989-12-24 | | A0002 | Fairuz el Said | Jl. Sonosewu No . 17 | Bulukumba | 1974-09-27 | | A0003 | Tri Susilowati | Jl. Rejodadi No . 11 | Blora | 1976-09-27 | | A0004 | Tasnim | Jl. Gejayan No . 12 | Bantul | 1970-07-20 | + ------------+----------------+---------------------+--------------+---------------+ |
Contoh Penggunaan Penyataan UPDATE
- Ubah nama menjadi ‘Tasnim el Said’ untuk no_anggota = ‘A004’
1
2
3
4
5
| mysql> UPDATE anggota -> SET nama = 'Tasnim el Said' -> WHERE no_anggota = 'A004' ; Query OK, 0 rows affected (0.05 sec) Rows matched: 0 Changed: 0 Warnings: 0 |
- Tampilkan tabel anggota
1
2
3
4
5
6
7
8
9
10
| mysql> SELECT * FROM anggota; + ------------+----------------+---------------------+--------------+---------------+ | no_anggota | nama | alamat | tempat_lahir | tanggal_lahir | + ------------+----------------+---------------------+--------------+---------------+ | A0001 | Hari Syahab | Jl. Sonosewu No . 14 | Sleman | 1989-12-24 | | A0002 | Fairuz el Said | Jl. Sonosewu No . 17 | Bulukumba | 1974-09-27 | | A0003 | Tri Susilowati | Jl. Rejodadi No . 11 | Blora | 1976-09-27 | | A0004 | Tasnim | Jl. Gejayan No . 12 | Bantul | 1970-07-20 | + ------------+----------------+---------------------+--------------+---------------+ 4 rows in set (0.00 sec) |
Penggunaan klausa WHERE dalam pernyataan UPDATE sering kali
dikaitkan dengan field dengan indeks PRIMARY KEY. Dalam contoh kasus ini
menggunakan field no_anggota. Tujuannya agar data terupdate untuk satu
record tertentu.
Hati-hatilah penggunaan pernyataan UPDATE jika tidak menggunakan klausa WHERE maka akan mengubah seluruh record di dalam tabel. Sebagai Contoh.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| mysql> UPDATE anggota -> SET nama = 'Tasnim el Said' ; Query OK, 4 rows affected (0.08 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> SELECT * FROM anggota; + ------------+----------------+---------------------+--------------+---------------+ | no_anggota | nama | alamat | tempat_lahir | tanggal_lahir | + ------------+----------------+---------------------+--------------+---------------+ | A0001 | Tasnim el Said | Jl. Sonosewu No . 14 | Sleman | 1989-12-24 | | A0002 | Tasnim el Said | Jl. Sonosewu No . 17 | Bulukumba | 1974-09-27 | | A0003 | Tasnim el Said | Jl. Rejodadi No . 11 | Blora | 1976-09-27 | | A0004 | Tasnim el Said | Jl. Gejayan No . 12 | Bantul | 1970-07-20 | + ------------+----------------+---------------------+--------------+---------------+ 4 rows in set (0.01 sec) |
Terlihat bahwa kolom nama berubah seluruhnya menjadi Tasnim el Said.
Tugas Pernyataan UPDATE
Ubahlah tabel anggota sehingga datanya kembali seperti semula, sebagai berikut:
1
2
3
4
5
6
7
8
| + ------------+----------------+---------------------+--------------+---------------+ | no_anggota | nama | alamat | tempat_lahir | tanggal_lahir | + ------------+----------------+---------------------+--------------+---------------+ | A0001 | Hari Syahab | Jl. Sonosewu No . 14 | Sleman | 1989-12-24 | | A0002 | Fairuz el Said | Jl. Sonosewu No . 17 | Bulukumba | 1974-09-27 | | A0003 | Tri Susilowati | Jl. Rejodadi No . 11 | Blora | 1976-09-27 | | A0004 | Tasnim | Jl. Gejayan No . 12 | Bantul | 1970-07-20 | + ------------+----------------+---------------------+--------------+---------------+ |