SlideShare a Scribd company logo
1 of 14
MATERI PART 2 – Prak. BASISDATA
TABEL dan MANIPULASI DATA
LABORATORIUM 4 – BASISDATA
MENU PART INI :
1. Tabel dengan PRIMARY KEY
2. Memberikan nilai UNIQUE
3. Parameter IF NOT EXISTS
4. Menyalin tabel dengan statement SELECT
5. Membuat TEMPORARY TABLE
6. Tabel dengan FOREIGN KEY
7. Memodifikasi tabel dengan ALTER TABLE
i. Menambah kolom pada tabel
ii. Memodifikasi nama tabel
iii. Memodifikasi definisi tabel
iv. Mengganti nama kolom
v. Menghapus kolom
vi. Menambah primary key
vii. Menghapus semua data dalam tabel
8. Memasukkan data lebih dari 1 data dengan INSERT
9. INSERT menggunakan data dari tabel lain
10. Mengubah data menggunakan UPDATE
11. Mengganti data dari tabel
12. Menghapus data dari tabel
1. Tabel dengan PRIMARY KEY
PRIMARY KEY
- untuk menjadikan filed kunci agar tidak terjadi duplikasi data
CODE :
mysql> create table t_pegawai(id_peg varchar(8) primary key, nama_peg
varchar(50), alamat_peg varchar(50));
Query OK, 0 rows affected (0.07 sec)
LIHAT DESKRIPSINYA…
mysql> desc t_pegawai;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id_peg | varchar(8) | NO | PRI | NULL | |
| nama_peg | varchar(50) | YES | | NULL | |
| alamat_peg | varchar(50) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
ISI TABELNYA
mysql> select*from t_pegawai;
+---------+----------+------------+
| id_peg | nama_peg | alamat_peg |
+---------+----------+------------+
| HRD-001 | Chandra | Jakarta |
| HRD-002 | Cindy | Bandung |
+---------+----------+------------+
2 rows in set (0.00 sec)
LIHAT ERRORNYA..
mysql> insert into t_pegawai values('HRD-001','Budi','Jogja');
ERROR 1062 (23000): Duplicate entry 'HRD-001' for key 'PRIMARY'
2. Table dengan nilai UNIQUE
- memberikan batasan bahwa nilai dalam sebuah kolom harus
distinct (atau tidak ada data yang nilainya sama)
CODE:
mysql> create table t_parkir(id_parkir varchar(5) primary key, plat_no
varchar(12), merk varchar(10), UNIQUE(plat_no));
Query OK, 0 rows affected (0.09 sec)
LIHAT DESKRIPSINYA…
mysql> desc t_parkir;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id_parkir | varchar(5) | NO | PRI | NULL | |
| plat_no | varchar(12) | YES | UNI | NULL | |
| merk | varchar(10) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
ISI TABEL
mysql> select*from t_parkir;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
+-----------+------------+--------+
2 rows in set (0.00 sec)
LIHAT ERRORNYA..
mysql> insert into t_parkir values('11103','AB-1234-OP','JAGUAR');
ERROR 1062 (23000): Duplicate entry 'AB-1234-OP' for key 'plat_no'
3. Parameter IF NOT EXISTS
untuk mengecek apakah sebuah tabel dengan nama yang sama sudah
ada atau belum sebelum membuat tabel
mysql> show tables;
+-------------------+
| Tables_in_minggu2 |
+-------------------+
| t_parkir |
| t_pegawai |
+-------------------+
2 rows in set (0.00 sec)
CODE..
mysql> create table IF NOT EXISTS t_pegawai(id_peg varchar(8) primary
key, nama_peg varchar(50), alamat_peg varchar(50));
Query OK, 0 rows affected, 1 warning (0.00 sec)
4. Menyalin tabel dengan statement SELECT
Kita juga bisa membuat tabel baru dengan mengkopy isi dari tabel yang sudah ada, caranya
Pastikan kita sudah punya tabel yang sudah ada isinya..
Contoh :
Kita gunakan table t_parkir
mysql> select*from t_parkir;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
+-----------+------------+--------+
2 rows in set (0.00 sec)
Lalu kita buat tabel baru dengan nama t_parkir_copy dengan mengduplikasi
seluruh isi dari tabel t_parkir, caranya :
CODE..
mysql> create table t_parkir_copy as select*from t_parkir;
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
Lalu kita lihat hasil dari tabel t_parkir_copy :
mysql> select*from t_parkir_copy;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
+-----------+------------+--------+
2 rows in set (0.00 sec)
Kita bisa lihat isi dari tabel t_parkir_copy sama dengan isi tabel dari
t_parkir.
5. Membuat TEMPORARY TABLE
Temporary table adalah pembuatan table secara temporary atau sementara, jadi
tabel tersebut akan ada sewaktu kita buat hingga kita mematikan SQL kita.
Sebagai contoh kita akan membuat tabel t_temporary
CODE:
mysql> create temporary table t_temporary(id int(8));
Query OK, 0 rows affected (0.09 sec)
Lihat strukturnya..
mysql> desc t_temporary;
+-------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id | int(8) | YES | | NULL | |
+-------+--------+------+-----+---------+-------+
1 row in set (0.01 sec)
Jika kita lihat dengan perintah SHOW TABLES maka temporary tabel tidak akan
muncul
mysql> show tables;
+-------------------+
| Tables_in_minggu2 |
+-------------------+
| t_parkir |
| t_parkir_copy |
| t_pegawai |
+-------------------+
3 rows in set (0.00 sec)
Tetapi kita bisa menginputkan nilai ke temporary table, contohnya :
mysql> insert into t_temporary values('11100010');
Query OK, 1 row affected (0.03 sec)
mysql> insert into t_temporary values('11100011');
Query OK, 1 row affected (0.02 sec)
mysql> insert into t_temporary values('11100012');
Query OK, 1 row affected (0.02 sec)
mysql> insert into t_temporary values('11100013');
Query OK, 1 row affected (0.01 sec)
mysql> select*from t_temporary;
+----------+
| id |
+----------+
| 11100010 |
| 11100011 |
| 11100012 |
| 11100013 |
+----------+
4 rows in set (0.00 sec)
Tapi jika kita matikan atau tutup MySQL kita maka temporary tabel akan
langsung hilang..
mysql> q
bye
mysql> use minggu2;
Database changed
mysql> select*from t_temporary;
ERROR 1146 (42S02): Table 'minggu2.t_temporary' doesn't exist
6. Tabel dengan FOREIGN KEY
- satu atau beberapa kolom pada table yang merupakan primary key pada
table satu namun diletakan pada table dimana tablenya berelasi dengan
table dirinya
Misal kita punya dua tabel yang saling berkaitan contoh :
- tabel induk : t_mobil dengan field(id_mobil, type)
- tabel anak : t_stok dengan field(id_stok, id_mobil, stok)
Kita buat dulu tabel induknya :
mysql> create table t_mobil(id_mobil varchar(8) primary key, type varchar(20));
Query OK, 0 rows affected (0.07 sec)
mysql> desc t_mobil;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
Isi tabel :
mysql> select*from t_mobil;
+----------+--------+
| id_mobil | type |
+----------+--------+
| HON-01 | Jazz |
| TOY-01 | Avanza |
| TOY-02 | Innova |
+----------+--------+
3 rows in set (0.00 sec)
Buat tabel anak :
mysql> create table t_stok(id_stok varchar(8) primary key, id_mobil varchar(8),
stok int(5), foreign key(id_mobil) references t_mobil(id_mobil));
Query OK, 0 rows affected (0.08 sec)
mysql> desc t_stok;
+----------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------+------+-----+---------+-------+
| id_stok | varchar(8) | NO | PRI | NULL | |
| id_mobil | varchar(8) | YES | MUL | NULL | |
| stok | int(5) | YES | | NULL | |
+----------+------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
ISI TABEL :
mysql> select*from t_stok;
+---------+----------+------+
| id_stok | id_mobil | stok |
+---------+----------+------+
| ST-001 | TOY-01 | 1000 |
| ST-002 | TOY-02 | 521 |
| ST-003 | HON-01 | 875 |
+---------+----------+------+
3 rows in set (0.00 sec)
Kita akan buktikan apakah FOREIGN KEY kita berfungsi dengan baik, kita bisa menggunakan
code :
mysql> delete from t_mobil where id_mobil='TOY-01';
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key
constraint fails (`minggu2`. t_stok`, CONSTRAINT `t_stok_ibfk_1` FOREIGN KEY
(`id_mobil`) REFERENCES `t_mobil` (`id_mobil`))
Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk
karena bereferensi pada table t_stok.
Lalu bagaimana solusinya?
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE
[opsi]pada table yang mereferensikan foreign key. Opsi pada perintah tersebut
jelasnya dibawah ini.
A. RESTRICT
Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama
dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa
dihapus, dan nilai di kolom terkait tidak dapat diupdate. Ini adalah opsi
default jika klausa ON DELETE atau ON UPDATE tidak dispesifikasikan.
B. CASCADE
Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat
dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan
dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai
yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-
nilai yang berkaitan diupdate dalam tabel induk.
C. SET NULL
Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat
baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau
ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini,
semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL.
D. NO ACTION
Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus
dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk
diupdate.
E. SET DEFAULT
Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai
default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait
dari tabel induk diupdate.
Untuk kali ini kita akan belajar tentang CASCADE, jadi data yang terdapat di tabel
induk dan tabel anak akan sama – sama terhapus atau terupdate.
Langkah pertama kita ganti struktur dari tabel anak agar memuat perintah untuk
mengaktifkan “fitur” CASCADE
Hapus dulu tabel t_stok.
Mysql> drop table t_stok;
Rubah struktur tabel t_stok
mysql> create table t_stok(id_stok varchar(8) primary key, id_mobil varchar(8),
stok int(5), foreign key(id_mobil) references t_mobil(id_mobil) on delete
cascade on update cascade);
Query OK, 0 rows affected (0.06 sec)
mysql> desc t_stok;
+----------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------+------+-----+---------+-------+
| id_stok | varchar(8) | NO | PRI | NULL | |
| id_mobil | varchar(8) | YES | MUL | NULL | |
| stok | int(5) | YES | | NULL | |
+----------+------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
Isi tabelnya lagi
mysql> insert into t_stok values('ST-001','TOY-01','1000'),('ST-002','TOY-
02','521'),('ST-003','HON-01','875');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select*from t_stok;
+---------+----------+------+
| id_stok | id_mobil | stok |
+---------+----------+------+
| ST-001 | TOY-01 | 1000 |
| ST-002 | TOY-02 | 521 |
| ST-003 | HON-01 | 875 |
+---------+----------+------+
3 rows in set (0.00 sec)
Setelah itu, kita coba delete lagi :
mysql> delete from t_mobil where id_mobil='TOY-01';
Query OK, 1 row affected (0.01 sec)
Kita lihat hasilnya…
mysql> select*from t_mobil;
+----------+--------+
| id_mobil | type |
+----------+--------+
| HON-01 | Jazz |
| TOY-02 | Innova |
+----------+--------+
2 rows in set (0.01 sec)
mysql> select*from t_stok;
+---------+----------+------+
| id_stok | id_mobil | stok |
+---------+----------+------+
| ST-002 | TOY-02 | 521 |
| ST-003 | HON-01 | 875 |
+---------+----------+------+
2 rows in set (0.00 sec)
Jadi setelah kita rubah struktur tabel anak,
maka akan bisa ter delete.
Data di tabel anak dan induk akan sama –
sama ter hapus atau ter update.
Itulah contoh penggunaan on delete cascade
dan on upodate cascade
7. Memodifikasi Tabel dengan ALTER TABLE
a. Menambah Kolom pada Tabel
Dalam menambah kolom dalam tabel kita bisa menggunakan perintah alter table,
contohnya kita akan menambahkan kolom pada tabel t_mobil :
mysql> alter table t_mobil add harga bigint(11);
Query OK, 2 rows affected (0.16 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc t_mobil;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(20) | YES | | NULL | |
| harga | bigint(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
Kita juga bisa mengatur letak kolom yang akan kita buat
mysql> alter table t_mobil add series varchar(8) after type;
Query OK, 2 rows affected (0.12 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc t_mobil;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(20) | YES | | NULL | |
| series | varchar(8) | YES | | NULL | |
| harga | bigint(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
b. Modifikasi Nama Tabel
Dalam memodifikasi definisi tabel contohnya jika kita ingin mengganti definisi
dari t_mobil maka caranya :
mysql> alter table t_mobil rename to t_car;
Query OK, 0 rows affected (0.07 sec)
mysql> desc t_car;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(20) | YES | | NULL | |
| series | varchar(8) | YES | | NULL | |
| harga | bigint(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.04 sec)
c. Modifikasi Definisi Tabel
Dalam memodifikasi definisi tabel contohnya jika kita ingin mengganti definisi
dari t_car maka caranya :
mysql> alter table t_car modify type varchar(15), modify
series varchar(10);
Query OK, 2 rows affected (0.14 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc t_car;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(15) | YES | | NULL | |
| series | varchar(10) | YES | | NULL | |
| harga | bigint(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
d. Mengganti Nama Kolom
Dalam memodifikasi nama kolom contohnya jika kita ingin mengganti nama kolom
dari t_car maka caranya :
mysql> alter table t_car change harga harga_mobil
bigint(11);
Query OK, 2 rows affected (0.14 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc t_car;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(15) | YES | | NULL | |
| series | varchar(10) | YES | | NULL | |
| harga_mobil | bigint(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
e. Menghapus Kolom
Cara untuk menghapus kolom dengan perintah ALTER TABLE adalah sbb, misal kita
akan menghapus salah satu kolom di t_car, maka caranya :
mysql> alter table t_car drop harga_mobil;
Query OK, 2 rows affected (0.12 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc t_car;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id_mobil | varchar(8) | NO | PRI | NULL | |
| type | varchar(15) | YES | | NULL | |
| series | varchar(10) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
f. Menghapus & Menambah Primary Key
Cara untuk menghapus & menambah primary key dengan perintah ALTER TABLE adalah
sbb, misal kita akan menghapus & menambah primary key di suatu table, maka
caranya :
Hapus primary key
mysql> alter table t_pegawai drop primary key;
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t_pegawai;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id_peg | varchar(8) | NO | | NULL | |
| nama_peg | varchar(50) | YES | | NULL | |
| alamat_peg | varchar(50) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Tambah primary key
mysql> alter table t_pegawai add primary key (id_peg);
Query OK, 0 rows affected (0.53 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t_pegawai;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id_peg | varchar(8) | NO | PRI | NULL | |
| nama_peg | varchar(50) | YES | | NULL | |
| alamat_peg | varchar(50) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
g. Menghapus Semua Data dalam Tabel
Untuk menghapus seluruh isi dalam tabel menggunakan perintah TRUNCATE
Misal kita akan menghapus seluruh table dari tabel t_parkir_copy maka sytxnya
sbb:
mysql> select*from t_parkir_copy;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
+-----------+------------+--------+
2 rows in set (0.03 sec)
Menggunakan perintah TRUNCATE dalam menghapus seluruh ISI tabel
mysql> truncate table t_parkir_copy;
Query OK, 0 rows affected (0.05 sec)
mysql> select*from t_parkir_copy;
Empty set (0.00 sec)
8. Memasukkan data lebih dari 1 data dengan INSERT
Perintah INSERT dalam memasukkan data juga melayani pemasukkan data lebih dari 1 data
sekaligus, misal kita akan memasukkan data di table t_parkir maka syntax yang digunakan
sbb:
mysql> insert into t_parkir values('11103','AB-5555-UX','HONDA'),
('11104','BH-36-B','SUZUKI'),('11105','N-7876-OK','KIA');
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select*from t_parkir;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
| 11103 | AB-5555-UX | HONDA |
| 11104 | BH-36-B | SUZUKI |
| 11105 | N-7876-OK | KIA |
+-----------+------------+--------+
5 rows in set (0.00 sec)
9. INSERT Menggunakan Data dari Tabel Lain
Perintah ini mirip dengan perintah copy tabel SELECT tapi yang membedakan perintah ini
digunakan setelah terdapat tabel yang akan digunakan untuk menyimpan hasil copyan file
dan bisa diatur seluruh field atau sebagian field, syntxnya adalah sbb :
Kita siapkan dulu tabel baru, bernama table t_user
mysql> create table t_user(no_plat varchar(10), merk_kend varchar(20));
Query OK, 0 rows affected (0.05 sec)
mysql> desc t_user;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| no_plat | varchar(10) | YES | | NULL | |
| merk_kend | varchar(20) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
Lalu kita isi t_user dengan sebagian tabel dari t_parkir
mysql> insert into t_user(no_plat, merk_kend) select plat_no, merk
from t_parkir;
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select*from t_user;
+------------+-----------+
| no_plat | merk_kend |
+------------+-----------+
| AB-1234-OP | TOYOTA |
| B-3454-SDE | BMW |
| AB-5555-UX | HONDA |
| BH-36-B | SUZUKI |
| N-7876-OK | KIA |
+------------+-----------+
5 rows in set (0.00 sec)
10. Mengubah data menggunakan UPDATE
Mengubah data dalam suatu tabel bisa dilakukan juga tanpa menggunakan perintah
ALTER TABLE yaitu menggunakan perintah UPDATE, contohnya
mysql> update t_user set merk_kend='NISSAN' where no_plat='B-3454-
SDE';
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select*from t_user;
+------------+-----------+
| no_plat | merk_kend |
+------------+-----------+
| AB-1234-OP | TOYOTA |
| B-3454-SDE | NISSAN |
| AB-5555-UX | HONDA |
| BH-36-B | SUZUKI |
| N-7876-OK | KIA |
+------------+-----------+
5 rows in set (0.00 sec)
11. Mengganti data dari tabel
Kali ini cara mengganti data tabel tapi menggunakan perintah REPLACE, yang membedakan
perintah ini dengan yang lain adalah, jika REPLACE digunakan pada tabel yang memiliki
PRIMARY KEY atau nilai UNIQUE
Contoh :
mysql> replace into t_parkir( id_parkir, plat_no , merk) values
('11104','BH-36-B','ISUZU');
Query OK, 2 rows affected (0.03 sec)
mysql> select*from t_parkir;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
| 11103 | AB-5555-UX | HONDA |
| 11104 | BH-36-B | ISUZU |
| 11105 | N-7876-OK | KIA |
+-----------+------------+--------+
5 rows in set (0.00 sec)
12. Menghapus data dari tabel
Menghapus data dalam basisdata bisa menggunakan perintah DELETE,
Contoh :
mysql> delete from t_parkir where id_parkir='11105';
Query OK, 1 row affected (0.16 sec)
mysql> select*from t_parkir;
+-----------+------------+--------+
| id_parkir | plat_no | merk |
+-----------+------------+--------+
| 11101 | AB-1234-OP | TOYOTA |
| 11102 | B-3454-SDE | BMW |
| 11103 | AB-5555-UX | HONDA |
| 11104 | BH-36-B | ISUZU |
+-----------+------------+--------+
4 rows in set (0.00 sec)

More Related Content

What's hot (17)

Bab 06-tabel
Bab 06-tabelBab 06-tabel
Bab 06-tabel
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetchMengenal fungsi php untuk pengambilan data my sql: mysql fetch
Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
 
Praktikum Pengenalan Dasar Database
Praktikum Pengenalan Dasar DatabasePraktikum Pengenalan Dasar Database
Praktikum Pengenalan Dasar Database
 
Sql programming
Sql programmingSql programming
Sql programming
 
Prak05 sbd 24010311130069
Prak05 sbd 24010311130069Prak05 sbd 24010311130069
Prak05 sbd 24010311130069
 
Dasar dasar Database
Dasar dasar DatabaseDasar dasar Database
Dasar dasar Database
 
MySQL CRUD FORMAT QUERY
MySQL CRUD FORMAT QUERY MySQL CRUD FORMAT QUERY
MySQL CRUD FORMAT QUERY
 
Tugasjarkom4
Tugasjarkom4Tugasjarkom4
Tugasjarkom4
 
Modul framework code igniter
Modul framework code igniterModul framework code igniter
Modul framework code igniter
 
Array
ArrayArray
Array
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Function pada PHP
Function pada PHPFunction pada PHP
Function pada PHP
 
015 function
015  function015  function
015 function
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
Tutorial crud PHP
Tutorial crud PHPTutorial crud PHP
Tutorial crud PHP
 
Djoni (key)
Djoni (key)Djoni (key)
Djoni (key)
 

Similar to Materi my sql part 2

Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan functionErwin Setiawan
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysqljafra
 
SQL (Structured query language).pptx
SQL (Structured query language).pptxSQL (Structured query language).pptx
SQL (Structured query language).pptxBagusSantoso44
 
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.ppt
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.pptfile_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.ppt
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.pptlumaeducation
 
Di2k sq lite-command-line
Di2k sq lite-command-lineDi2k sq lite-command-line
Di2k sq lite-command-linefajarnugroho_id
 
Praktikum basis data 2
Praktikum basis data 2Praktikum basis data 2
Praktikum basis data 2AuliyaRahman9
 
05. manipulasi data update,delete & seleksi
05. manipulasi data   update,delete & seleksi05. manipulasi data   update,delete & seleksi
05. manipulasi data update,delete & seleksiFakhrian Fadlia Adiwijaya
 
Pertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQLPertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQLdezavalorant123
 
Prak 2 pbd Soal dml dan select (share)
Prak 2 pbd   Soal dml dan select (share)Prak 2 pbd   Soal dml dan select (share)
Prak 2 pbd Soal dml dan select (share)rahmantoyuri
 

Similar to Materi my sql part 2 (20)

Laporan praktikum 2
Laporan praktikum 2Laporan praktikum 2
Laporan praktikum 2
 
Bab. 5
Bab. 5Bab. 5
Bab. 5
 
Bab. 6
Bab. 6Bab. 6
Bab. 6
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
 
Cara Menghapus Table Di MySQL
Cara Menghapus Table Di MySQLCara Menghapus Table Di MySQL
Cara Menghapus Table Di MySQL
 
T modul 5 mysql
T modul 5 mysqlT modul 5 mysql
T modul 5 mysql
 
abd_01_2223.pdf
abd_01_2223.pdfabd_01_2223.pdf
abd_01_2223.pdf
 
SQL (Structured query language).pptx
SQL (Structured query language).pptxSQL (Structured query language).pptx
SQL (Structured query language).pptx
 
Tugas 3 smbd
Tugas 3 smbdTugas 3 smbd
Tugas 3 smbd
 
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.ppt
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.pptfile_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.ppt
file_2013-09-24_11_21_37_WIBOWO_WICAKSONO,_ST.,M.Kom__5._SQL2.ppt
 
Di2k sq lite-command-line
Di2k sq lite-command-lineDi2k sq lite-command-line
Di2k sq lite-command-line
 
Tutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeansTutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeans
 
Modul 07 basisdata
Modul 07 basisdataModul 07 basisdata
Modul 07 basisdata
 
Praktikum basis data 2
Praktikum basis data 2Praktikum basis data 2
Praktikum basis data 2
 
05. manipulasi data update,delete & seleksi
05. manipulasi data   update,delete & seleksi05. manipulasi data   update,delete & seleksi
05. manipulasi data update,delete & seleksi
 
Pengantar mysql
Pengantar mysqlPengantar mysql
Pengantar mysql
 
Oracle kisi2
Oracle kisi2Oracle kisi2
Oracle kisi2
 
Pertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQLPertemuan tentang DDL DML dan praktikum system basis data MYSQL
Pertemuan tentang DDL DML dan praktikum system basis data MYSQL
 
Prak 2 pbd Soal dml dan select (share)
Prak 2 pbd   Soal dml dan select (share)Prak 2 pbd   Soal dml dan select (share)
Prak 2 pbd Soal dml dan select (share)
 
Pratikum sistem basis data 3
Pratikum sistem basis data 3Pratikum sistem basis data 3
Pratikum sistem basis data 3
 

Recently uploaded

Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptxwongcp2
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdfcicovendra
 
Materi power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptMateri power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptAcemediadotkoM1
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxrahmaamaw03
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
Panduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfPanduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfandriasyulianto57
 
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSKisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSyudi_alfian
 
Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaModul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaAbdiera
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfWahyudinST
 
Catatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuCatatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuHANHAN164733
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptx
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptxKonflik, Kekerasan, dan Perdamaian Bagian 1.pptx
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptxintansidauruk2
 
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.aechacha366
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxsudianaade137
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdfShintaNovianti1
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
TPPK_panduan pembentukan tim TPPK di satuan pendidikan
TPPK_panduan pembentukan tim TPPK di satuan pendidikanTPPK_panduan pembentukan tim TPPK di satuan pendidikan
TPPK_panduan pembentukan tim TPPK di satuan pendidikanNiKomangRaiVerawati
 

Recently uploaded (20)

Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
 
Materi power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptMateri power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .ppt
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docx
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
Panduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfPanduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdf
 
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSKisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
 
Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum MerdekaModul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar Matematika Kelas 2 Fase A Kurikulum Merdeka
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdf
 
Catatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuCatatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus Perilaku
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptx
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptxKonflik, Kekerasan, dan Perdamaian Bagian 1.pptx
Konflik, Kekerasan, dan Perdamaian Bagian 1.pptx
 
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.
PUEBI.bahasa Indonesia/pedoman umum ejaan bahasa Indonesia pptx.
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
TPPK_panduan pembentukan tim TPPK di satuan pendidikan
TPPK_panduan pembentukan tim TPPK di satuan pendidikanTPPK_panduan pembentukan tim TPPK di satuan pendidikan
TPPK_panduan pembentukan tim TPPK di satuan pendidikan
 

Materi my sql part 2

  • 1. MATERI PART 2 – Prak. BASISDATA TABEL dan MANIPULASI DATA LABORATORIUM 4 – BASISDATA MENU PART INI : 1. Tabel dengan PRIMARY KEY 2. Memberikan nilai UNIQUE 3. Parameter IF NOT EXISTS 4. Menyalin tabel dengan statement SELECT 5. Membuat TEMPORARY TABLE 6. Tabel dengan FOREIGN KEY 7. Memodifikasi tabel dengan ALTER TABLE i. Menambah kolom pada tabel ii. Memodifikasi nama tabel iii. Memodifikasi definisi tabel iv. Mengganti nama kolom v. Menghapus kolom vi. Menambah primary key vii. Menghapus semua data dalam tabel 8. Memasukkan data lebih dari 1 data dengan INSERT 9. INSERT menggunakan data dari tabel lain 10. Mengubah data menggunakan UPDATE 11. Mengganti data dari tabel 12. Menghapus data dari tabel
  • 2. 1. Tabel dengan PRIMARY KEY PRIMARY KEY - untuk menjadikan filed kunci agar tidak terjadi duplikasi data CODE : mysql> create table t_pegawai(id_peg varchar(8) primary key, nama_peg varchar(50), alamat_peg varchar(50)); Query OK, 0 rows affected (0.07 sec) LIHAT DESKRIPSINYA… mysql> desc t_pegawai; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id_peg | varchar(8) | NO | PRI | NULL | | | nama_peg | varchar(50) | YES | | NULL | | | alamat_peg | varchar(50) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.01 sec) ISI TABELNYA mysql> select*from t_pegawai; +---------+----------+------------+ | id_peg | nama_peg | alamat_peg | +---------+----------+------------+ | HRD-001 | Chandra | Jakarta | | HRD-002 | Cindy | Bandung | +---------+----------+------------+ 2 rows in set (0.00 sec) LIHAT ERRORNYA.. mysql> insert into t_pegawai values('HRD-001','Budi','Jogja'); ERROR 1062 (23000): Duplicate entry 'HRD-001' for key 'PRIMARY' 2. Table dengan nilai UNIQUE - memberikan batasan bahwa nilai dalam sebuah kolom harus distinct (atau tidak ada data yang nilainya sama) CODE: mysql> create table t_parkir(id_parkir varchar(5) primary key, plat_no varchar(12), merk varchar(10), UNIQUE(plat_no)); Query OK, 0 rows affected (0.09 sec) LIHAT DESKRIPSINYA… mysql> desc t_parkir; +-----------+-------------+------+-----+---------+-------+
  • 3. | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | id_parkir | varchar(5) | NO | PRI | NULL | | | plat_no | varchar(12) | YES | UNI | NULL | | | merk | varchar(10) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) ISI TABEL mysql> select*from t_parkir; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | +-----------+------------+--------+ 2 rows in set (0.00 sec) LIHAT ERRORNYA.. mysql> insert into t_parkir values('11103','AB-1234-OP','JAGUAR'); ERROR 1062 (23000): Duplicate entry 'AB-1234-OP' for key 'plat_no' 3. Parameter IF NOT EXISTS untuk mengecek apakah sebuah tabel dengan nama yang sama sudah ada atau belum sebelum membuat tabel mysql> show tables; +-------------------+ | Tables_in_minggu2 | +-------------------+ | t_parkir | | t_pegawai | +-------------------+ 2 rows in set (0.00 sec) CODE.. mysql> create table IF NOT EXISTS t_pegawai(id_peg varchar(8) primary key, nama_peg varchar(50), alamat_peg varchar(50)); Query OK, 0 rows affected, 1 warning (0.00 sec) 4. Menyalin tabel dengan statement SELECT Kita juga bisa membuat tabel baru dengan mengkopy isi dari tabel yang sudah ada, caranya Pastikan kita sudah punya tabel yang sudah ada isinya.. Contoh : Kita gunakan table t_parkir mysql> select*from t_parkir; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+
  • 4. | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | +-----------+------------+--------+ 2 rows in set (0.00 sec) Lalu kita buat tabel baru dengan nama t_parkir_copy dengan mengduplikasi seluruh isi dari tabel t_parkir, caranya : CODE.. mysql> create table t_parkir_copy as select*from t_parkir; Query OK, 2 rows affected (0.08 sec) Records: 2 Duplicates: 0 Warnings: 0 Lalu kita lihat hasil dari tabel t_parkir_copy : mysql> select*from t_parkir_copy; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | +-----------+------------+--------+ 2 rows in set (0.00 sec) Kita bisa lihat isi dari tabel t_parkir_copy sama dengan isi tabel dari t_parkir. 5. Membuat TEMPORARY TABLE Temporary table adalah pembuatan table secara temporary atau sementara, jadi tabel tersebut akan ada sewaktu kita buat hingga kita mematikan SQL kita. Sebagai contoh kita akan membuat tabel t_temporary CODE: mysql> create temporary table t_temporary(id int(8)); Query OK, 0 rows affected (0.09 sec) Lihat strukturnya.. mysql> desc t_temporary; +-------+--------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+-------+ | id | int(8) | YES | | NULL | | +-------+--------+------+-----+---------+-------+ 1 row in set (0.01 sec) Jika kita lihat dengan perintah SHOW TABLES maka temporary tabel tidak akan muncul
  • 5. mysql> show tables; +-------------------+ | Tables_in_minggu2 | +-------------------+ | t_parkir | | t_parkir_copy | | t_pegawai | +-------------------+ 3 rows in set (0.00 sec) Tetapi kita bisa menginputkan nilai ke temporary table, contohnya : mysql> insert into t_temporary values('11100010'); Query OK, 1 row affected (0.03 sec) mysql> insert into t_temporary values('11100011'); Query OK, 1 row affected (0.02 sec) mysql> insert into t_temporary values('11100012'); Query OK, 1 row affected (0.02 sec) mysql> insert into t_temporary values('11100013'); Query OK, 1 row affected (0.01 sec) mysql> select*from t_temporary; +----------+ | id | +----------+ | 11100010 | | 11100011 | | 11100012 | | 11100013 | +----------+ 4 rows in set (0.00 sec) Tapi jika kita matikan atau tutup MySQL kita maka temporary tabel akan langsung hilang.. mysql> q bye mysql> use minggu2; Database changed mysql> select*from t_temporary; ERROR 1146 (42S02): Table 'minggu2.t_temporary' doesn't exist 6. Tabel dengan FOREIGN KEY - satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya Misal kita punya dua tabel yang saling berkaitan contoh : - tabel induk : t_mobil dengan field(id_mobil, type) - tabel anak : t_stok dengan field(id_stok, id_mobil, stok)
  • 6. Kita buat dulu tabel induknya : mysql> create table t_mobil(id_mobil varchar(8) primary key, type varchar(20)); Query OK, 0 rows affected (0.07 sec) mysql> desc t_mobil; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(20) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 2 rows in set (0.01 sec) Isi tabel : mysql> select*from t_mobil; +----------+--------+ | id_mobil | type | +----------+--------+ | HON-01 | Jazz | | TOY-01 | Avanza | | TOY-02 | Innova | +----------+--------+ 3 rows in set (0.00 sec) Buat tabel anak : mysql> create table t_stok(id_stok varchar(8) primary key, id_mobil varchar(8), stok int(5), foreign key(id_mobil) references t_mobil(id_mobil)); Query OK, 0 rows affected (0.08 sec) mysql> desc t_stok; +----------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------------+------+-----+---------+-------+ | id_stok | varchar(8) | NO | PRI | NULL | | | id_mobil | varchar(8) | YES | MUL | NULL | | | stok | int(5) | YES | | NULL | | +----------+------------+------+-----+---------+-------+ 3 rows in set (0.01 sec) ISI TABEL : mysql> select*from t_stok; +---------+----------+------+ | id_stok | id_mobil | stok | +---------+----------+------+ | ST-001 | TOY-01 | 1000 | | ST-002 | TOY-02 | 521 | | ST-003 | HON-01 | 875 | +---------+----------+------+ 3 rows in set (0.00 sec) Kita akan buktikan apakah FOREIGN KEY kita berfungsi dengan baik, kita bisa menggunakan code : mysql> delete from t_mobil where id_mobil='TOY-01';
  • 7. ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`minggu2`. t_stok`, CONSTRAINT `t_stok_ibfk_1` FOREIGN KEY (`id_mobil`) REFERENCES `t_mobil` (`id_mobil`)) Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk karena bereferensi pada table t_stok. Lalu bagaimana solusinya? Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key. Opsi pada perintah tersebut jelasnya dibawah ini. A. RESTRICT Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak dapat diupdate. Ini adalah opsi default jika klausa ON DELETE atau ON UPDATE tidak dispesifikasikan. B. CASCADE Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai- nilai yang berkaitan diupdate dalam tabel induk. C. SET NULL Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL. D. NO ACTION Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk diupdate. E. SET DEFAULT Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait dari tabel induk diupdate. Untuk kali ini kita akan belajar tentang CASCADE, jadi data yang terdapat di tabel induk dan tabel anak akan sama – sama terhapus atau terupdate. Langkah pertama kita ganti struktur dari tabel anak agar memuat perintah untuk mengaktifkan “fitur” CASCADE
  • 8. Hapus dulu tabel t_stok. Mysql> drop table t_stok; Rubah struktur tabel t_stok mysql> create table t_stok(id_stok varchar(8) primary key, id_mobil varchar(8), stok int(5), foreign key(id_mobil) references t_mobil(id_mobil) on delete cascade on update cascade); Query OK, 0 rows affected (0.06 sec) mysql> desc t_stok; +----------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------------+------+-----+---------+-------+ | id_stok | varchar(8) | NO | PRI | NULL | | | id_mobil | varchar(8) | YES | MUL | NULL | | | stok | int(5) | YES | | NULL | | +----------+------------+------+-----+---------+-------+ 3 rows in set (0.01 sec) Isi tabelnya lagi mysql> insert into t_stok values('ST-001','TOY-01','1000'),('ST-002','TOY- 02','521'),('ST-003','HON-01','875'); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select*from t_stok; +---------+----------+------+ | id_stok | id_mobil | stok | +---------+----------+------+ | ST-001 | TOY-01 | 1000 | | ST-002 | TOY-02 | 521 | | ST-003 | HON-01 | 875 | +---------+----------+------+ 3 rows in set (0.00 sec) Setelah itu, kita coba delete lagi : mysql> delete from t_mobil where id_mobil='TOY-01'; Query OK, 1 row affected (0.01 sec) Kita lihat hasilnya… mysql> select*from t_mobil; +----------+--------+ | id_mobil | type | +----------+--------+ | HON-01 | Jazz | | TOY-02 | Innova | +----------+--------+ 2 rows in set (0.01 sec) mysql> select*from t_stok; +---------+----------+------+ | id_stok | id_mobil | stok | +---------+----------+------+ | ST-002 | TOY-02 | 521 | | ST-003 | HON-01 | 875 | +---------+----------+------+ 2 rows in set (0.00 sec) Jadi setelah kita rubah struktur tabel anak, maka akan bisa ter delete. Data di tabel anak dan induk akan sama – sama ter hapus atau ter update. Itulah contoh penggunaan on delete cascade dan on upodate cascade
  • 9. 7. Memodifikasi Tabel dengan ALTER TABLE a. Menambah Kolom pada Tabel Dalam menambah kolom dalam tabel kita bisa menggunakan perintah alter table, contohnya kita akan menambahkan kolom pada tabel t_mobil : mysql> alter table t_mobil add harga bigint(11); Query OK, 2 rows affected (0.16 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t_mobil; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(20) | YES | | NULL | | | harga | bigint(11) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 3 rows in set (0.01 sec) Kita juga bisa mengatur letak kolom yang akan kita buat mysql> alter table t_mobil add series varchar(8) after type; Query OK, 2 rows affected (0.12 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t_mobil; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(20) | YES | | NULL | | | series | varchar(8) | YES | | NULL | | | harga | bigint(11) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) b. Modifikasi Nama Tabel Dalam memodifikasi definisi tabel contohnya jika kita ingin mengganti definisi dari t_mobil maka caranya : mysql> alter table t_mobil rename to t_car; Query OK, 0 rows affected (0.07 sec) mysql> desc t_car; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(20) | YES | | NULL | | | series | varchar(8) | YES | | NULL | | | harga | bigint(11) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+
  • 10. 4 rows in set (0.04 sec) c. Modifikasi Definisi Tabel Dalam memodifikasi definisi tabel contohnya jika kita ingin mengganti definisi dari t_car maka caranya : mysql> alter table t_car modify type varchar(15), modify series varchar(10); Query OK, 2 rows affected (0.14 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t_car; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(15) | YES | | NULL | | | series | varchar(10) | YES | | NULL | | | harga | bigint(11) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) d. Mengganti Nama Kolom Dalam memodifikasi nama kolom contohnya jika kita ingin mengganti nama kolom dari t_car maka caranya : mysql> alter table t_car change harga harga_mobil bigint(11); Query OK, 2 rows affected (0.14 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t_car; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(15) | YES | | NULL | | | series | varchar(10) | YES | | NULL | | | harga_mobil | bigint(11) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) e. Menghapus Kolom Cara untuk menghapus kolom dengan perintah ALTER TABLE adalah sbb, misal kita akan menghapus salah satu kolom di t_car, maka caranya : mysql> alter table t_car drop harga_mobil; Query OK, 2 rows affected (0.12 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> desc t_car; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id_mobil | varchar(8) | NO | PRI | NULL | | | type | varchar(15) | YES | | NULL | | | series | varchar(10) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
  • 11. f. Menghapus & Menambah Primary Key Cara untuk menghapus & menambah primary key dengan perintah ALTER TABLE adalah sbb, misal kita akan menghapus & menambah primary key di suatu table, maka caranya : Hapus primary key mysql> alter table t_pegawai drop primary key; Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc t_pegawai; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id_peg | varchar(8) | NO | | NULL | | | nama_peg | varchar(50) | YES | | NULL | | | alamat_peg | varchar(50) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) Tambah primary key mysql> alter table t_pegawai add primary key (id_peg); Query OK, 0 rows affected (0.53 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> desc t_pegawai; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id_peg | varchar(8) | NO | PRI | NULL | | | nama_peg | varchar(50) | YES | | NULL | | | alamat_peg | varchar(50) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) g. Menghapus Semua Data dalam Tabel Untuk menghapus seluruh isi dalam tabel menggunakan perintah TRUNCATE Misal kita akan menghapus seluruh table dari tabel t_parkir_copy maka sytxnya sbb: mysql> select*from t_parkir_copy; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | +-----------+------------+--------+ 2 rows in set (0.03 sec) Menggunakan perintah TRUNCATE dalam menghapus seluruh ISI tabel mysql> truncate table t_parkir_copy; Query OK, 0 rows affected (0.05 sec) mysql> select*from t_parkir_copy; Empty set (0.00 sec) 8. Memasukkan data lebih dari 1 data dengan INSERT
  • 12. Perintah INSERT dalam memasukkan data juga melayani pemasukkan data lebih dari 1 data sekaligus, misal kita akan memasukkan data di table t_parkir maka syntax yang digunakan sbb: mysql> insert into t_parkir values('11103','AB-5555-UX','HONDA'), ('11104','BH-36-B','SUZUKI'),('11105','N-7876-OK','KIA'); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select*from t_parkir; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | | 11103 | AB-5555-UX | HONDA | | 11104 | BH-36-B | SUZUKI | | 11105 | N-7876-OK | KIA | +-----------+------------+--------+ 5 rows in set (0.00 sec) 9. INSERT Menggunakan Data dari Tabel Lain Perintah ini mirip dengan perintah copy tabel SELECT tapi yang membedakan perintah ini digunakan setelah terdapat tabel yang akan digunakan untuk menyimpan hasil copyan file dan bisa diatur seluruh field atau sebagian field, syntxnya adalah sbb : Kita siapkan dulu tabel baru, bernama table t_user mysql> create table t_user(no_plat varchar(10), merk_kend varchar(20)); Query OK, 0 rows affected (0.05 sec) mysql> desc t_user; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | no_plat | varchar(10) | YES | | NULL | | | merk_kend | varchar(20) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ Lalu kita isi t_user dengan sebagian tabel dari t_parkir mysql> insert into t_user(no_plat, merk_kend) select plat_no, merk from t_parkir; Query OK, 5 rows affected (0.05 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> select*from t_user; +------------+-----------+ | no_plat | merk_kend | +------------+-----------+ | AB-1234-OP | TOYOTA | | B-3454-SDE | BMW | | AB-5555-UX | HONDA | | BH-36-B | SUZUKI | | N-7876-OK | KIA | +------------+-----------+ 5 rows in set (0.00 sec) 10. Mengubah data menggunakan UPDATE
  • 13. Mengubah data dalam suatu tabel bisa dilakukan juga tanpa menggunakan perintah ALTER TABLE yaitu menggunakan perintah UPDATE, contohnya mysql> update t_user set merk_kend='NISSAN' where no_plat='B-3454- SDE'; Query OK, 1 row affected (0.09 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select*from t_user; +------------+-----------+ | no_plat | merk_kend | +------------+-----------+ | AB-1234-OP | TOYOTA | | B-3454-SDE | NISSAN | | AB-5555-UX | HONDA | | BH-36-B | SUZUKI | | N-7876-OK | KIA | +------------+-----------+ 5 rows in set (0.00 sec) 11. Mengganti data dari tabel Kali ini cara mengganti data tabel tapi menggunakan perintah REPLACE, yang membedakan perintah ini dengan yang lain adalah, jika REPLACE digunakan pada tabel yang memiliki PRIMARY KEY atau nilai UNIQUE Contoh : mysql> replace into t_parkir( id_parkir, plat_no , merk) values ('11104','BH-36-B','ISUZU'); Query OK, 2 rows affected (0.03 sec) mysql> select*from t_parkir; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | | 11103 | AB-5555-UX | HONDA | | 11104 | BH-36-B | ISUZU | | 11105 | N-7876-OK | KIA | +-----------+------------+--------+ 5 rows in set (0.00 sec) 12. Menghapus data dari tabel Menghapus data dalam basisdata bisa menggunakan perintah DELETE, Contoh : mysql> delete from t_parkir where id_parkir='11105'; Query OK, 1 row affected (0.16 sec) mysql> select*from t_parkir; +-----------+------------+--------+ | id_parkir | plat_no | merk | +-----------+------------+--------+ | 11101 | AB-1234-OP | TOYOTA | | 11102 | B-3454-SDE | BMW | | 11103 | AB-5555-UX | HONDA | | 11104 | BH-36-B | ISUZU |