Chapter 5

INSERT

အခု customers table ထဲကို data ထည့်ရအောင်။ Data ထည့်သွင်း ဖို့ အတွက် လက်ရှိ table မှာ ဘယ် column တွေပါလဲ အရင် ထုတ်ကြည့်ဖို့ လိုပါတယ်။

describe customers;
+------------------------+---------------+------+-----+---------+-------+
| Field                  | Type          | Null | Key | Default | Extra |
+------------------------+---------------+------+-----+---------+-------+
| customerNumber         | int(11)       | NO   | PRI | NULL    |       |
| customerName           | varchar(50)   | NO   |     | NULL    |       |
| contactLastName        | varchar(50)   | NO   |     | NULL    |       |
| contactFirstName       | varchar(50)   | NO   |     | NULL    |       |
| phone                  | varchar(50)   | NO   |     | NULL    |       |
| addressLine1           | varchar(50)   | NO   |     | NULL    |       |
| addressLine2           | varchar(50)   | YES  |     | NULL    |       |
| city                   | varchar(50)   | NO   |     | NULL    |       |
| state                  | varchar(50)   | YES  |     | NULL    |       |
| postalCode             | varchar(15)   | YES  |     | NULL    |       |
| country                | varchar(50)   | NO   |     | NULL    |       |
| salesRepEmployeeNumber | int(11)       | YES  | MUL | NULL    |       |
| creditLimit            | decimal(10,2) | YES  |     | NULL    |       |
+------------------------+---------------+------+-----+---------+-------+

ဆိုပြီး တွေ့ရပါမယ်။ Null ကို YES ပေးထားတာတွေက insert လုပ်သည့်အခါမှာ မထည့်လည်း ရသည့် သဘောပါ။ NO ပေးထားသည့် columns တွေကတော့ မဖြစ်မနေ ထည့်ရပါမယ်။

Type ကိုလည်း သတိထားပြီး ကြည့်ရပါမယ်။ int ကတော့ integer ဖြစ်သည့် အတွက်ကြောင့် number ပဲ ထည့်ရပါမယ်။ varchar ဆိုရင်တော့ string ပါ။ varchar(50) ဆိုတာကတော့ စာလုံးရေ ၅၀ ပဲ အများဆုံး ထည့်လို့ရပါမယ်။ varchar(15) ဆိုရင်တော့ စာလုံးရေ ၁၅ လုံးပဲ ရမယ့် သဘောပါ။ decimal ဆိုရင်တော့ ဒဿမ ထည့်ရမယ့် သဘောပါ။

INSERT ထည့် ဖို့ အတွက် Syntax လေးက အောက်ပါ အတိုင်း ဖြစ်ပါတယ်။

INSERT INTO [TABLE] ([COLUMN],[COLUMN],[COLUMN]) VALUES ([VALUES],[VALUES],[VALUES]);

INSERT INTO ပြီးလျှင် table အမည်လာပါတယ်။ ကွင်းစ ကွင်းပိတ်မှာ column order ထည့်ပါတယ်။ ပြီးလျှင် VALUES လာပါတယ်။

ကွင်းစ ကွင်းပိတ်မှာ column order အတိုင်း ထည့် ချင်သည့် value ကို ထည့်ပါတယ်။

ဥပမာ

INSERT INTO USERS (`name`,`phone`,`address`) VALUES ('Mg Mg','09974443332','No 444, KKK Street');

အကယ်၍ row တွေအများကြီး ကို တစ်ခါတည်း ထည့်ချင်ရင်တော့

INSERT INTO USERS (`name`,`phone`,`address`) VALUES 
('Mg Mg','09974443332','No 311, KKA Street') ,
('Aye Aung','09974443332','No 222, BK Street') ,
('Bo Bo','09974443332','No 112, MK Street') ,
('Toe Toe','09974443332','No 523, HHK Street');

အခု ကျွန်တော်တို့တွေ customers table ထဲကို ထည့်ကြည့်ရအောင်။

INSERT INTO customers (`customerNumber`,`customerName`,`contactLastName`,`contactFirstName`,`phone`, `addressLine1`,`city`,`country`) VALUES
(500,'Customer 1','Sample Customer 1','Contact 1','099999999','Address 1','Yangon','Myanmar');

အဲဒီ SQL ကို run လိုက်ရင်

Query OK, 1 row affected (0.003 sec)

ဆိုပြီး တွေ့ရပါမယ်။ အဲဒါဆိုရင်တော့ data သွင်းပြီးပါပြီ။ ပြန်ထုတ်ကြည့်ရအောင်။

SELECT * FROM customers WHERE `customerNumber` = 500;

ကျွန်တော်တို့ ထည့်ထားသည့် row ကို မြင်ရပါလိမ့်မယ်။

INSERT INTO customers (`customerNumber`,`customerName`,`contactLastName`,`contactFirstName`,`phone`, `addressLine1`,`city`,`country`) VALUES
(501,'Customer 2','Sample Customer 1','Contact 1','099999999','Address 1','Yangon','Myanmar'),
(502,'Customer 2','Sample Customer 1','Contact 1','099999999','Address 1','Yangon','Myanmar'),
(503,'Customer 2','Sample Customer 1','Contact 1','099999999','Address 1','Yangon','Myanmar');

အဲဒါဆိုရင်တော့ row ၃ ခု ဝင်သွားတာကို တွေ့နိုင်ပါတယ်။

Query OK, 3 rows affected (0.001 sec)
Records: 3  Duplicates: 0  Warnings: 0

အခုဆိုရင်တော့ INSERT ပိုင်းကို သိပါပြီ။ Update ကို ဆက်လေ့လာရအောင်။