Kali ini saya ingin berbagi beberapa teknik yang digunakan untuk memasukkan data ke dalam tabel MySQL. pada teknik ini menggunakan statement insert dan sudah saya lakukan di MySQL versi 5 dan berjalan dengan baik.Statement SQL Insert adalah untuk menambahkan baris pada sebuah table. Insert statement juga dapat digunakan untuk memasukkan banyak baris, beberapa bagian baris, beberapa baris dan memasukkan data dari table lain.
Berikut adalah beberapa teknik input data pada table mysql:
Menggunakan @last --> fungsi ini banyak digunakan untuk table yang menggunakan foreign key guna menghindari kesalahan pada saat memasukkan data pada child table.
Contoh:
CREATE TABLE person (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE shirt (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
PRIMARY KEY (id)
);
INSERT INTO person VALUES (NULL, 'Antonio Paz');
SELECT @last := LAST_INSERT_ID();
INSERT INTO shirt VALUES
(NULL, 'polo', 'blue', @last),
(NULL, 'dress', 'white', @last),
(NULL, 't-shirt', 'blue', @last);
INSERT INTO person VALUES (NULL, 'Lilliana Angelovska');
SELECT @last := LAST_INSERT_ID();
INSERT INTO shirt VALUES
(NULL, 'dress', 'orange', @last),
(NULL, 'polo', 'red', @last),
(NULL, 'dress', 'blue', @last),
(NULL, 't-shirt', 'white', @last);
SELECT * FROM person;
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+----+---------------------+
SELECT * FROM shirt;
+----+---------+--------+-------+
| id | style | color | owner |
+----+---------+--------+-------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+----+---------+--------+-------+
SELECT s.* FROM person p INNER JOIN shirt s
ON s.owner = p.id
WHERE p.name LIKE 'Lilliana%'
AND s.color <> 'white';
+----+-------+--------+-------+
| id | style | color | owner |
+----+-------+--------+-------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+----+-------+--------+-------+
Inserting a Complete Row
Untuk menambahkan satu baris pada pada table, Statement Insert harus diikuti oleh nama table dimana baris tersebut akan ditambahkan, bersamaan dengan nama kolom yang dipisahkan dengan koma. Sebagai contoh:
mysql> create table products(product_id smallint unsigned not null auto_increment primary key, product_name varchar(30) not null, product_description text,product_location varchar(30), product_quantity int);
INSERT INTO products(
product_id,
product_name,
product_description,
product_location,
product_quantity)
VALUES(
NULL,
'CD-RW Model 4543',
'CD Writer',
'Shelf 4B',
10
);
Atau dengan cara yang lebih simple yaitu hanya dengan menyebutkan nilai yang akan ditambahkan kedalam table, kelemahan dari teknik ini adalah rawan kesalahan karena harus mengetahui urutan kolom menurut nilai yang akan dimasukkan
INSERT INTO products
VALUES(
NULL,
'CD-RW Model 4543',
'CD Writer',
'Shelf 4B',
10
};
Adding multiple Row
Untuk menambahkan beberapa baris kedalam table dapat dilakukan dengan memberikan sekali perintah Insert akan tetapi dengan memberikan lebih dari satu values baris yang dipisahkan oleh koma, perhatikan contoh berikut:
INSERT INTO products(
product_id,
product_name,
product_description,
product_location,
product_quantity)
VALUES(
NULL,
'CD-RW Model 4543',
'CD Writer',
'Shelf 4B',
10
),( NULL,
'Disk Drive 4500',
'60Gb 4500rpm Disk Drive',
'Shelf 6A',
100),(NULL,
'Kingston Ci20',
'Wired Optical Mouse',
'Shelf 6F',
24);
Inserting Result From a select statement
Statement Insert dapat digunakan untuk Memasukkan data hasil perintah select kedalam table. Sebagai contoh:
create table old_products(id smallint unsigned auto_increment primary key, product_name varchar(30) not null, product_description text, product_location
varchar(30), product_quantity int);
insert into old_products values(NULL,'Sapidol','sapidol warna','Cakra 4G','199');
INSERT INTO products
( product_name,
product_description,
product_location,
product_quantity
)
SELECT product_name,
product_description,
product_location,
product_quantity
FROM old_products;
Selamat mencoba jangan lupa komentarnya ya!!
Referensi:
- MySQL Reference Manual
- MySQL Essenstial Tutorial
1 komentar:
bagus gan postingnya ...nice
Post a Comment
Blog ini bersifat DoFollow. silahkan tinggalkan komentar yang sesuai dengan konten artikel. komentar yang tidak perlu akan kami hapus. Terima Kasih Atas Kunjungannya.