บทเรียน PostgreSQL Stored Procedures

บทเรียน PostgreSQL Stored Procedures เป็นเนื้อหาสำหรับสอน Store Procedure ด้วยภาษา SQL สำหรับ PostgreSQL แนะนำ ใช้ PostgreSQL เวอร์ชั่น 9.x

ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน

Create Table with INHERITS (ครีเอท เทเบิล วิธ อินเฮริท) หรือ การสร้างตารางด้วยการสืบทอดตาราง

!! การสร้างตารางนี้สร้างขึ้นมาสำหรับเป็นตัวอย่างในการเขียน SQL บน PostgreSQL เท่านั้น

  ในบทความเรื่อง PostgreSQL : คำสั่ง {--mlinkarticle=3896--}SQL{--mlinkarticle--} การ Create Table นั้น เป็นการสร้างตารางแบบพื้นฐาน ซึ่งจะทำการกำหนดชื่อตาราง ชื่อคอลัมน์ที่ต้องการ และค่าต่างๆ เอง

  ส่วนในบทความนี้ จะเป็นการสร้างตารางโดยวิธี INHERITS หรือ การสืบทอดคุณสมบัติ

INHERITS คืออะไร? 

“Inherits” หรือ “Inheritance” คือการสืบทอด {--mlinkarticle=3363--}Class {--mlinkarticle--} (คลาส) จาก Class ต้นฉบับไปยัง Class ใหม่ โดยจะทำการ {--mlinkarticle=830--}copy{--mlinkarticle--} (ก๊อปปี้) สิ่งที่อยู่ใน Class ต้นฉบับไปยัง Class ใหม่ทั้งหมด อธิบายตามภาษาบ้านๆ ก็คือ การสืบทอดคุณสมบัติจากแม่ไปสู่ลูก

CREATE TABLE table_name (

  column_name TYPE column_constraint,

  table_constraint table_constraint

) INHERITS (existing_table_name);

อธิบายคำสั่ง

table_name (เทเบิล_เนม)    :  ชื่อตาราง

column_name (คอลลัมน์_เนม) :  ขื่อคอลัมน์

TYPE (ไทป์)                :  ชนิดของคอลัมน์

column_constraint (คอลลัมน์_คอนสเตรนท) :  ข้อจำกัดของคอลัมน์

table_constraint (เทเบิล_คอนสเตรนท)  : ข้อจำกัดของตาราง

INHERITS (อินเฮริท)      :  คำสั่งการสืบทอด

existing_table_name (เอ็กซิสทิ้ง_เทเบิล_เนม) :  ชื่อตารางที่ต้องการสืบทอดมา

ตัวอย่างการสร้างตาราง

CREATE TABLE z_testcreatetable_inherit(

  in_id serial PRIMARY KEY,

  in_name VARCHAR (255) UNIQUE NOT NULL

) INHERITS (z_testcreatetable);

ตัวอย่าง : 

การสร้างตารางแบบสืบทอด
การสร้างตารางแบบสืบทอด

ผลที่ได้ :

CREATE TABLE z_testcreatetable_inherit

(

-- Inherited from table z_testcreatetable:  id character varying(5) NOT NULL,

-- Inherited from table z_testcreatetable:  username character varying(50) NOT NULL,

-- Inherited from table z_testcreatetable:  pass character varying(50) NOT NULL,

-- Inherited from table z_testcreatetable:  email character varying(355) NOT NULL,

       in_id serial NOT NULL,

       in_name character varying(255) NOT NULL,

  CONSTRAINT z_testcreatetable_inherit_pkey PRIMARY KEY (in_id),

  CONSTRAINT z_testcreatetable_inherit_  in_name_key  UNIQUE (in_name)

)

INHERITS (z_testcreatetable)

WITH (

  OIDS=FALSE

);

ALTER TABLE z_testcreatetable_inherit

  OWNER TO openpg;

คำอธิบาย : 

ในตัวอย่าง เป็นการสร้างตารางที่มีชื่อว่า "z_testcreatetable_inherit" (แซดเทสครีเอทเทเบิล_อินเฮริท)โดยทำการสืบทอดคุณสมบัติของตาราง "z_testcreatetable" มาใช้โดยคำสั่ง Inherited from table z_testcreatetable: ซึ่งจะนำ คอลัมน์ id (ไอดี), username (ยูสเซอร์เนม), pass (พาส) และ email (อีเมล)มาโดยที่ผู้ใช้ไม่ต้องพิมพ์เอง

สามารถศึกษาเพิ่มเติมได้ที่ คำสั่ง {--mlinkarticle=3893--}SQL {--mlinkarticle--} ต่างๆ

www.postgresqltutorial.com Eng.ver

www.postgresql.org Eng.ver

โดย : http://www.mindphp.com

ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน

Create Table (ครีเอท เทเบิล) หรือ การสร้างตาราง 

!! การสร้างตารางนี้สร้างขึ้นมาสำหรับเป็นตัวอย่างในการเขียน {--mlinkarticle=3672--}SQL{--mlinkarticle--} (เอชคิวแอล) บน {--mlinkarticle=3872--}PostgreSQL{--mlinkarticle--} (โพสต์เกรสเอสคิวเอล) เท่านั้น

ใน PostgreSQL สามารถใช้คำสั่งต่อไปนี้เพื่อทำการสร้างตารางใหม่

CREATE TABLE table_name (

  column_name TYPE column_constraint,

  table_constraint table_constraint

); 

อธิบายคำสั่ง

table_name (เทเบิล_เนม)     : ชื่อตาราง

column_name (คอลลัมน์_เนม) :   ขื่อคอลัมน์

TYPE (ไทป์)             :   ชนิดของคอลัมน์

column_constraint (คอลลัมน์_คอนสเตรนท) : ข้อจำกัดของคอลัมน์

table_constraint (เทเบิล_คอนสเตรนท)        :    ข้อจำกัดของตาราง

ประเภทของ CONSTRAINT(คอนสเตรนท)

- NOT NULL (น็อต นัล) ค่าของข้อมูลในคอลัมน์นั้นๆ จะต้องไม่เป็นค่าว่าง

- UNIQUE (ยูนีค) เป็นการบังคับโดยระบุว่าค่าของข้อมูลในคอลัมน์นั้นๆ (คอลัมน์ในวงเล็บ) จะต้องไม่ซ้ำกัน

- CHECK (เช็ค) ตรวจสอบเงื่อนไขก่อนทำการเพิ่มหรือแก้ไขข้อมูล

- PRIMARY KEY (ไพมารี่ คีย์)เป็นการกำหนดคีย์หลัก โดยที่จะประกอบไปด้วยหลายคอลัมน์ ซึ่งในแต่ละคอลัมน์จะนำคุณสมบัติของ NOT NULL และ UNIQUE มาใช้ทันที

- FOREIGN KEY เป็นคีย์รอง สำหรับใช้ทำงานร่วมกับ PRIMARY KEY ในการสร้างความสัมพันธ์กับตารางอื่น

- {--mlinkarticle=3392--}Default{--mlinkarticle--} (ดีฟอลท์) ในกรณีที่ไม่มีการกำหนดค่าใดๆ ลงในตาราง ข้อมูลจะเป็นค่าเริ่มต้นที่ได้กำหนดไว้ทันที

ตัวอย่างการสร้างตาราง

CREATE TABLE z_testcreatetable(

  id VARCHAR (5) PRIMARY KEY,

  username VARCHAR (50) UNIQUE NOT NULL,

  pass VARCHAR (50) NOT NULL,

  email VARCHAR (355) UNIQUE NOT NULL

);

ตัวอย่าง : การสร้างตารางที่มีชื่อว่า "z_testcreatetable" (แซด_เทสครีเอทเทเบิล)

การสร้างตาราง
การสร้างตาราง

 

ผลที่ได้ :

CREATE TABLE z_testcreatetable

(

       id character varying(5) NOT NULL,

       username character varying(50) NOT NULL,

       pass character varying(50) NOT NULL,

       email character varying(355) NOT NULL,

  CONSTRAINT z_testcreatetable_pkey PRIMARY KEY (id),

  CONSTRAINT z_testcreatetable_  email_key" UNIQUE (email),

  CONSTRAINT z_testcreatetable_  username_key" UNIQUE (username)

)

WITH (

  OIDS=FALSE

);

ALTER TABLE z_testcreatetable

  OWNER TO openpg;

คำอธิบาย : 

ดังตัวอย่าง เป็นการสร้างตารางที่มีชื่อว่า "z_testcreatetable"

โดยในตารางจะประกอบไปด้วย

- คอลัมน์ id (ไอดี) มีประเภท (TYPE) เป็น VARCHAR มีขนาด (5) เป็นคีย์หลักของตาราง (PRIMARY KEY)

- คอลัมน์ username (ยูเซอร์เนม) มีประเภท(TYPE (ไทป์)) เป็น VARCHAR (วาร์ชาร์) มีขนาด (50) โดยกำหนดค่าคือห้ามซ้ำและห้ามมีค่าว่าง

- คอลัมน์ pass (พาส) มีประเภท (TYPE) เป็น VARCHAR มีขนาด (50) โดยกำหนดค่าคือห้ามมีค่าว่าง

- คอลัมน์ email (อีเมล) มีประเภท (TYPE) เป็น VARCHAR มีขนาด (355) โดยกำหนดค่าคือห้ามซ้ำและห้ามมีค่าว่าง

สามารถศึกษาเพิ่มเติมได้ที่ คำสั่ง {--mlinkarticle=3672--}SQL{--mlinkarticle--} ต่างๆ

www.postgresqltutorial.com Eng.ver

www.postgresql.org Eng.ver

โดย : http://www.mindphp.com

ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน

Create Database ( การสร้างฐานข้อมูล )

{--mlinkarticle=2534--}Create Database {--mlinkarticle--}ชื่อ{--mlinkarticle=3341--}ฐานข้อมูล{--mlinkarticle--}

OWNER (โอนเนอร์) = ชื่อผู้ใช้ // ไม่จำเป็นต้องใส่ ค่าเริ่มต้นจะเป็นชื่อผู้ใช้ที่ตั้งไว้เมื่อตอนติดตั้งโปรแกรม PostgreSQL

{--mlinkarticle=3513--}Template{--mlinkarticle--} = เทมเพลตของฐานข้อมูลใน PostgreSQL // ไม่จำเป็นต้องใส่ โดยค่าเริ่มต้นของ Template คือ template1

ENCODING (เอ็นโคนิ่ง)  = การกำหนดค่าชุดตัวอักษรที่ใช้ // ไม่จำเป็นต้องใส่ โดยค่าเริ่มต้นของชุดตัวอักษร คือ UTF8

LC_COLLATE (ซีแอล_คอลเล็ต) = การเรียงลำดับของฐานข้อมูล // ไม่จำเป็นต้องใส่ 

LC_CTYPE (แอลซี_ซีไทป์) = การจัดหมวดหมู่ของฐานข้อมูล // ไม่จำเป็นต้องใส่ 

TABLESPACE (เทเบิลสเปซ) = การระบุชื่อตาราง เพื่อกำหนดค่าเริ่มต้นของข้อมูล // ไม่จำเป็นต้องใส่ 

CONNECTION LIMIT (คอลเนคชั่น ลิมิต) = กำหนดค่าการเชื่อมต่อพร้อมกันของฐานข้อมูล // ค่าเริ่มต้นของการกำหนดการเชื่อต่อ คือ -1 หมายความว่า สามารถเชื่อมต่อได้อย่างไม่จำกัด

โค้ด :

   CREATE DATABASE ชื่อฐานข้อมูล;

ตัวอย่าง : การสร้างฐานข้อมูลที่ชื่อ "test_postgre"

การสร้างฐานข้อมูลด้วยคำสั่ง SQL
การสร้างฐานข้อมูลด้วยคำสั่ง SQL
CREATE DATABASE test_postgre

  WITH OWNER = openpg

       ENCODING = 'UTF8'

       TABLESPACE = pg_default

       LC_COLLATE = 'Thai_Thailand.874'

       LC_CTYPE = 'Thai_Thailand.874'

       CONNECTION LIMIT = -1;

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

สามารถศึกษาเพิ่มเติมได้ที่ คำสั่ง {--mlinkarticle=3672--}SQL{--mlinkarticle--}

www.postgresqltutorial.com Eng.ver

www.postgresql.org Eng.ver

โดย : http://www.mindphp.com

ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน

การเพิ่มผู้ใช้งานใน PostgreSQL(โพสต์เกรส)

   การเพิ่มผู้ใช้งาน หรือ Login Roles (ล็อกอิน โรวส) ทำได้ตามขั้นตอนดังนี้

ขั้นตอนที่ 1: เปิด {--mlinkarticle=3893--}PgAdmin{--mlinkarticle--} (พีจีแอดมิน) ขึ้นมา จากนั้น ทำการ {--mlinkarticle=2548--}Login{--mlinkarticle--} ใน user ที่เป็น Superuser (ซุปเปอร์ยูสเซอร์)

การ login เป็น superuser
การ login เป็น superuser

ขั้นตอนที่ 2: เมื่อ login เข้าได้แล้ว ให้เลือกที่ส่วนสุดท้ายของ {--mlinkarticle=3665--}Server {--mlinkarticle--} (เซิร์ฟเวอร์) ซึ่งก็คือ Login Roles

การเลือก Login Roles
การเลือก Login Roles

ขั้นตอนที่ 3: คลิกขวาที่ Login Role และเลือก New Login Role(นิวล็อกอิน โรวส)...

บทบาทการเข้าสูระบบใหม่
บทบาทการเข้าสูระบบใหม่

ขั้นตอนที่ 4: จะแสดงหน้า New Login Role จะอยู่ในแท็บ Properties (พรอปเพอร์ตี้)ในส่วนนี้ให้กรอก username (ยูสเซอร์เนม) ลงไปในส่วนของ Role name (โรวเนม)

การกรอก username
การกรอก username

ขั้นตอนที่ 5: แท็บต่อไปที่ต้องกรอกข้อมูลคือ Definition (ดีฟินิชั่น) ให้กรอก password (พาสเวิร์ด) พร้อม ยืนยัน password และ มีการตั้งค่าอายุการใช้งานของ user นี้

การกรอก password และ อายุการใช้งาน
การกรอก password และ อายุการใช้งาน

ขั้นตอนที่ 6: แท็บต่อไปจะเป็น Role privileges (โรว พริวิเล่จ) โดยส่วนนี้จะเป็นส่วนของการตั้งค่าว่าต้องการให้ user นี้ใช้งานส่วนไหนได้บาง โดยติ๊กเลือกส่วนที่ต้องการ จากนั้นกด OK

การกำหนดสิทธิว่า user นี้ใช้งานส่วนใดได้บ้าง
การกำหนดสิทธิว่า user นี้ใช้งานส่วนใดได้บ้าง

ขั้นตอนที่ 7: เมื่อเข้าไปในส่วนของ Login Roles อีกครั้งจะเห็นว่ามี user ที่เราตั้งขึ้น

แสดง user ที่สร้างไว้
แสดง user ที่สร้างไว้

ขั้นตอนที่ 8: เป็นการใช้งาน เมื่อเรามี user อยู่แล้ว โดยคลิกที่ รูปปลั๊กดังรูป หรือ คลิกที่ File (ไฟล์) แล้วเลือก Add Server (แอด เซิร์ฟเวอร์)

การเพิ่ม server
การเพิ่ม server

ขั้นตอนที่ 9: จะแสดงหน้า New Server Registration (นิว เซิร์ฟเวอร์ รีจิสสเตรชั่น)โดยต้องกรอกข้อมูล Name (เนม) , Host (โฮส) , Username , Password จากนั้นกด OK (โอเค)

การลงทะเบียนเซิร์ฟเวอร์ใหม่
การลงทะเบียนเซิร์ฟเวอร์ใหม่

ขั้นตอนที่ 10: เมื่อมาดูที่ Server จะเห็นที่เข้าได้เพิ่มเข้าไป สามารถใช้งานได้ตามปกติตามที่เราตั้งค่าให้ user นั้นสามารถใช้งานได้

การลงทะเบียนเซิร์ฟเวอร์ใหม่
การลงทะเบียนเซิร์ฟเวอร์ใหม่

สามารถศึกษาเพิ่มเติมได้ที่ รวมคำสั่ง {--mlinkarticle=3665--}SQL{--mlinkarticle--}

โดย : http://www.mindphp.com

ให้เรตสมาชิก: 0 / 5

ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน

เริ่มต้นการเขียน SQL ใน PgAdmin เพื่อจัดการฐานข้อมูลPostgreSQL

      ก่อนจะเริ่มทำการเขียน {--mlinkarticle=3672--}SQL{--mlinkarticle--} นี้ ต้องทำความรู้จักกับการใช้งาน {--mlinkarticle=2730--}PgAdmin{--mlinkarticle--} เพื่อจัดการ{--mlinkarticle=3341--}ฐานข้อมูล{--mlinkarticle--} PostgreSQL เสียก่อน 

โดยสามารถศึกษาเพิ่มเติมได้จาก... บทเรียน สอนการใช้งาน PgAdmin จัดการข้อมูล {--mlinkarticle=3418--}PostgreSQL {--mlinkarticle--} ...

เมื่อรู้จักวิธีการใช้งาน PgAdmin พอสมควรแล้ว สามารถเริ่มทำการเขียน sql เพื่อเชื่อมฐานข้อมูลได้เลย

1.หลังจากการทำการเชื่อมต่อโปรแกรม PgAdmin กับ ฐานข้อมูล PostgreSQL แล้ว ให้ทำการคลิกที่ SQL ในวงกลมสีแดง

การเชื่อมต่อโปรแกรมกับฐานข้อมูล
การเชื่อมต่อโปรแกรมกับฐานข้อมูล

2.เมื่อคลิกแล้วจะมีหน้าต่างการทำงานแสดงขึ้นมา ให้เราสามารถเขียนคำสั่งต่างๆ ได้

หน้าต่างการเขียนคำสั่ง SQL
หน้าต่างการเขียนคำสั่ง SQL

 

เริ่มต้นการเขียน SQL ใน PgAdmin เพื่อจัดการฐานข้อมูล PostgreSQL สามารถศึกษาเพิ่มเติมได้ที่ {--mlinkarticle=2139--}SQL {--mlinkarticle--}

โดย : http://www.mindphp.com

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
ไม่สามารถเข้าถึงไฟล์ PHP ใน Directory
โดย บุคคลทั่วไป ส 09 ธ.ค. 2017 3:40 pm บอร์ด Joomla Development
4
41
ส 09 ธ.ค. 2017 3:40 pm โดย บุคคลทั่วไป
เผยเทคนิค ดี ๆ ที่สามารถทำให้บ้านและสวนร่มรื่นได้
โดย บุคคลทั่วไป ศ 08 ธ.ค. 2017 4:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
ศ 08 ธ.ค. 2017 4:39 pm โดย บุคคลทั่วไป
วิธีการติดตั้ง Selenium ลง Python บน Windows
โดย Panchalee พฤ 07 ธ.ค. 2017 6:20 pm บอร์ด Software testing
0
27
พฤ 07 ธ.ค. 2017 6:20 pm โดย Panchalee
แสดงวันที่ปัจจุบันใน Python
โดย Wallapa พฤ 07 ธ.ค. 2017 11:30 am บอร์ด Python Knowledge
0
24
พฤ 07 ธ.ค. 2017 11:30 am โดย Wallapa
เมื่อต้องซ่อมคอมพิวเตอร์
โดย Before Dong พฤ 07 ธ.ค. 2017 10:48 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
35
พฤ 07 ธ.ค. 2017 10:48 am โดย mindphp
ขอวิธี Uninstall selenium web driver ใน python หน่อยค่ะ
โดย Panchalee พฤ 07 ธ.ค. 2017 10:48 am บอร์ด Programming - C/C++ & java & Python
3
35
พฤ 07 ธ.ค. 2017 10:48 am โดย Panchalee
แจกฟรี!! ปฏิทิน CRM ที่รวบรวมซอฟท์แวร CRM ยอดนิยมจากทั่วโลก ปี 2018/2561 พร้อมวันหยุด - โหลดก่อนได้ก่อนอย่ารอช้า!!
โดย Before Dong พ 06 ธ.ค. 2017 3:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
78
พ 06 ธ.ค. 2017 3:38 pm โดย Before Dong
สามารถลง Selenium ซ้ำกันในเครื่องเดียวกันได้มั้ยคะ หรือว่าต้อง Uninstall ออกก่อน
โดย Panchalee พ 06 ธ.ค. 2017 2:26 pm บอร์ด Programming - C/C++ & java & Python
1
42
พ 06 ธ.ค. 2017 2:26 pm โดย nuattawoot
แค่ใส่ CSS ชีวิตก็เปลี่ยน
โดย Before Dong พ 06 ธ.ค. 2017 10:31 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
59
พ 06 ธ.ค. 2017 10:31 am โดย mindphp
วิธี คำสั่ง เครียพื้นที่ Swap ในลีนุ๊ค
โดย mindphp อ 05 ธ.ค. 2017 4:04 pm บอร์ด Linux - Web Server
0
26
อ 05 ธ.ค. 2017 4:04 pm โดย mindphp
รถไฟฟ้า.zip - ภาพล้อ โปรแกรมคอมพิวเตอร์
โดย Before Dong อ 05 ธ.ค. 2017 9:20 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
178
อ 05 ธ.ค. 2017 9:20 am โดย mindphp
เรียนรู้ kotlin เบื้องต้น
โดย chavikat.p จ 04 ธ.ค. 2017 5:24 pm บอร์ด Mobile Application Developing- Android, iOS
0
36
จ 04 ธ.ค. 2017 5:24 pm โดย chavikat.p
การทำ Button Groups โดยใช้ bootstap
โดย chavikat.p จ 04 ธ.ค. 2017 3:49 pm บอร์ด Booststap Knowledge
0
37
จ 04 ธ.ค. 2017 3:49 pm โดย chavikat.p
การทำ Collapse โดยใช้ bootstap
โดย chavikat.p จ 04 ธ.ค. 2017 3:43 pm บอร์ด Booststap Knowledge
0
28
จ 04 ธ.ค. 2017 3:43 pm โดย chavikat.p
ตัวอย่าง Error เกี่ยวกับ session บน Host ที่ สำหรับเขียนพื้นที่
โดย mindphp จ 04 ธ.ค. 2017 11:34 am บอร์ด Programming - PHP
1
36
จ 04 ธ.ค. 2017 11:34 am โดย mindphp
รวมงานประจำปี 2560
โดย chavikat.p จ 04 ธ.ค. 2017 10:54 am บอร์ด M053 - ชาวิกา แตงศรี
0
6
จ 04 ธ.ค. 2017 10:54 am โดย chavikat.p
รวมบทความประจำปี 2560
โดย chavikat.p จ 04 ธ.ค. 2017 10:53 am บอร์ด M053 - ชาวิกา แตงศรี
0
2
จ 04 ธ.ค. 2017 10:53 am โดย chavikat.p
Note
โดย chavikat.p จ 04 ธ.ค. 2017 10:53 am บอร์ด M053 - ชาวิกา แตงศรี
0
5
จ 04 ธ.ค. 2017 10:53 am โดย chavikat.p
Work's on Hand ชาวิกา แตงศรี M053
โดย chavikat.p จ 04 ธ.ค. 2017 10:52 am บอร์ด M053 - ชาวิกา แตงศรี
0
14
จ 04 ธ.ค. 2017 10:52 am โดย chavikat.p
งานประจำวันที่ 4 ธันวาคม 2560
โดย chavikat.p จ 04 ธ.ค. 2017 10:50 am บอร์ด M053 - ชาวิกา แตงศรี
2
29
จ 04 ธ.ค. 2017 10:50 am โดย thatsawan