Thursday, April 15, 2010

Beberapa Teknik Insert Data pada MySQL

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:
  1. MySQL Reference Manual
  2. 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.

Twitter Delicious Facebook Digg Stumbleupon Favorites More