Wednesday, September 28, 2016

Pernyataan UPDATE dalam MySQL

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    |
+------------+----------------+---------------------+--------------+---------------+
Sumber