PostgreSQL : คำสั่ง SQL การ INSERT

PostgreSQL แชร์ความรู้เกี่ยวกับ PostgreSQL การใช้งาน ฟังก์ชั่นต่างๆ การเขียน SQL แบบ PGSQL

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

PostgreSQL : คำสั่ง SQL การ INSERT

โพสต์โดย thitikorn_lp » 23/08/2014 7:41 pm

INSERT ( การเพิ่มข้อมูลลงในตาราง )

  การ INSERT เป็นการเพิ่มข้อมูลลงตารางบนฐานข้อมูลที่เราสร้างไว้ โดยการเพิ่มข้อมูลลงตารางนั้นมีหลายวิธี และการเพิ่มข้อมูลลงตารางใน PostgreSQL นั้น สามารถใช้คำสั่งที่เหมือนกับคำสั่งใน MySql โดยทั่วไป

การ INSERT ข้อมูลมีหลากหลายรูปแบบ ดังนี้
» บทที่ 1 การ INSERT ข้อมูลทั้งหมด
» บทที่ 2 การ INSERT ข้อมูลโดยกำหนดคอลัมน์
» บทที่ 3 การ INSERT ข้อมูลทีละหลาย record
» บทที่ 4 การ INSERT ข้อมูลโดยการดึง(คัดลอก)จากตารางอื่น
แก้ไขล่าสุดโดย thitikorn_lp เมื่อ 26/08/2014 11:52 am, แก้ไขไปแล้ว 5 ครั้ง.
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ INSERT

โพสต์โดย thitikorn_lp » 25/08/2014 1:52 pm

การ INSERT ข้อมูลทั้งหมด

ตัวอย่างการเพิ่มข้อมูลทั้งหมด
วิธีการที่ 1 : การเพิ่มข้อมูลลงทุกคอลัมน์ในตาราง

โค้ด: เลือกทั้งหมด

INSERT INTO table_name
VALUES ( 'value_1', 'value_2', ..., 'value_n' );

อธิบายคำสั่ง
INSERT INTO    :  คำสั่งเพิ่มข้อมูล
table_name     :  ชื่อตารางที่ต้องการเพิ่มข้อมูล
value_1        :  ค่าที่ใส่ในตาราง
VALUES         :  คำสั่งแสดงค่าที่ต้องการเพิ่ม
** ค่า (value) ที่ใส่ต้องใส่ให้ตรงกับคอลัมน์ในตาราง

โค้ด :

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable
VALUES ( 1, 'testinsert', '1234','PM.com');

ตัวอย่าง :
insert.jpg
insert.jpg (263.96 KiB) เปิดดู 20867 ครั้ง

ผลที่ได้ :
ผลที่ได้จาการเพิ่มข้อมูลเข้าสู่ตารางในฐานข้อมูล postgreSQL สามารถทำการค้นหาดูได้จาก
- คลิกขวาที่ตารางที่ทำการเพิ่มข้อมูล > เลือก View Data > เลือก View all Rows
insert1.jpg
insert1.jpg (267.88 KiB) เปิดดู 20867 ครั้ง

หลังจากนั้น จะมีหน้าต่างแสดงผลขึ้นมา จะเห็นได้ว่ามีข้อมูลที่ได้หรอกไว้ขึ้นมาในตารางดังกล่าว
insert2.jpg
insert2.jpg (55.24 KiB) เปิดดู 20987 ครั้ง
แก้ไขล่าสุดโดย thitikorn_lp เมื่อ 26/08/2014 11:12 am, แก้ไขไปแล้ว 3 ครั้ง.
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ INSERT

โพสต์โดย thitikorn_lp » 25/08/2014 3:08 pm

การ INSERT ข้อมูลโดยกำหนดคอลัมน์

โค้ด: เลือกทั้งหมด

INSERT INTO table_name (column_1,column_2,...,column_n)
VALUES ( 'value_1', 'value_2', ..., 'value_n' );

อธิบายคำสั่ง
table_name     :  ชื่อตารางที่ต้องการเพิ่มข้อมูล
column_1       :  ชื่อคอลัมน์ในตาราง
value_1        :  ค่าที่ใส่ในตาราง

** ค่าจะถูกเพิ่มลงในฐานข้อมูลที่ตรงกับตำแหน่งของคอมลัมน์ เช่น value_1 จะถูกแทรกลงใน column_1 , value_2 ลงใน column_2 และต่อไปจน value_n และ column_n โดยจะคั่นระหว่างค่าต่างๆ ด้วยเครื่องหมายจุลภาค และข้อมูลที่เพิ่มจะใส่ไว้ในเครื่องหมายอัญประกาศ (' ')

โค้ด :

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable (id, username, pass, email)
VALUES ( 1, 'testinsert', '1234','PM.com');

** กำหนดคอลัมน์และค่าใน values ให้ตรงกัน

หรือ

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable (id, username, pass, email)
VALUES ( 2, 'timus potter', 'test1234','PM.com','');

** กรณีที่หากไม่กำหนดค่าใน values สามารถใส่เพียง ' ' ได้

หรือ

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable (id, username, email, pass)
VALUES ( 3, 'marisa bunaree', 'test12345','PM.com');

** สามารถสลับที่คอลัมน์ได้ แต่ต้องกำหนดค่าใน values ให้ตรงกับคอลัมน์ที่เปลี่ยนตำแหน่งไปด้วย

ผลที่ได้ :
insert3.jpg
insert3.jpg (99.84 KiB) เปิดดู 20867 ครั้ง

คำอธิบาย :
ไอดีที่ 2 คือผลที่ได้จากการไม่กำหนดค่าของ email โดยใส่แค่เพียง ' '
ไอดีที่ 3 คือผลที่ได้จากการสลับที่ของคอลัมน์
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ INSERT

โพสต์โดย thitikorn_lp » 25/08/2014 3:51 pm

การ INSERT ข้อมูลทีละหลาย record

โค้ด: เลือกทั้งหมด

INSERT INTO table_name ( column_1, column_2, ..., column_n )
VALUES ( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ..., 'value_n' ),
( 'value_1', 'value_2', ..., 'value_n' );

อธิบายคำสั่ง
table_name     :  ชื่อตารางที่ต้องการเพิ่มข้อมูล
column_1       :  ชื่อคอลัมน์ในตาราง
value_1        :  ค่าที่ใส่ในตาราง
,             :  อัญประกาศ (' ') เครื่องหมายคั่นข้อมูลแต่ละ record

โค้ด :

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable (id, username, pass, email)
VALUES ( 1, 'Sommai', '1234','PM.com'),
( 2, 'Saijai', 'Saijai','PM.com'),
( 3, 'tanit12', 'qwerty','PM.com');

ผลที่ได้ :
insert4.jpg
insert4.jpg (100.28 KiB) เปิดดู 20867 ครั้ง

คำอธิบาย :
ข้อมูลที่ทำการเพิ่มทั้งหมด 3 record จะลงไปอยู่ในตาราง ตามที่เราได้กำหนดค่าไว้
รูปภาพ

ภาพประจำตัวสมาชิก
thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 680
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

Re: PostgreSQL : คำสั่ง SQL การ INSERT

โพสต์โดย thitikorn_lp » 26/08/2014 11:09 am

การ INSERT ข้อมูลโดยการดึง(คัดลอก)จากตารางอื่น

โค้ด: เลือกทั้งหมด

INSERT INTO table_name ( column_1, column_2, ..., column_n )
SELECT column_name_1, column_name_2, ..., column_name_n
FROM table_name_1
WHERE condition;

อธิบายคำสั่ง
table_name     :  ชื่อตารางที่ต้องการเพิ่มข้อมูล
column_1       :  ชื่อคอลัมน์ในตารางที่ต้องการเพิ่ม
SELECT         :  คำสั่งเลือกคอมลัมน์
column_name_1 :  ชื่อคอลัมน์ในตารางที่ต้องการดึงข้อมูล
FROM           :  คำสั่งเลือกตาราง
table_name_1   :  ชื่อตารางที่ต้องการดึงข้อมูล[
WHERE         :  คำสั่งแสดงเงื่อนไข
condition       :  เงื่อนไขในการดึงข้อมูล

โค้ด :

โค้ด: เลือกทั้งหมด

INSERT INTO z_testcreatetable_cpartner(id,name,title,email,mobile,birthdate,state_id)
SELECT id,name,title,email,mobile,birthdate,state_id
FROM res_partner
WHERE res_partner.name like '%Demo%';

ผลที่ได้ :
ภาพที่ 1 เป็นภาพจากตารางที่มีชื่อว่า res_partner ซึ่งในตารางมีข้อมูลอยู่เยอะมาก เราไม่ต้องการทั้งหมด เราต้องการแค่เพียงบางส่วน เราก็ทำการตั้งเงื่อนไขในการดึงข้อมูล(คัดลอก)ข้อมูลเหล่านั้น
insert6.jpg
insert6.jpg (364.75 KiB) เปิดดู 20857 ครั้ง

ในโค้ดเงื่อนไข เราต้องการแค่เพียงชื่อที่มีคำว่า Demo
โดยใช้คำสั่งที่ว่า
WHERE res_partner.name like '%Demo%';
insert5.jpg
insert5.jpg (88.49 KiB) เปิดดู 20857 ครั้ง

ผลที่ได้คือ ข้อมูลชื่อ ( name ) จากตาราง res_partner ที่มีคำว่า "Demo" นั้นจะมาอยู่ในตาราง z_testcreatetable_cpartner ใหม่ที่เราต้องการ
รูปภาพ


  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 1 และ บุคคลทั่วไป 0 ท่าน