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

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
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docxbkandrisaputra
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptxGiftaJewela
 

Recently uploaded (20)

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
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docx
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
 

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 |