ตอนที่ 13 : การสร้าง VIEW Table บน MySQL Database (MySQL : View Table)

มิถุนายน 1, 2018 6:24 am โดย admin
0
36

ตอนที่ 13 : การสร้าง VIEW Table บน MySQL Database (MySQL : View Table) วิว (VIEW) เป็นโครงสร้าง Table ที่เราจำลองขึ้นตาม SQL Statement ที่เราเขียนไว้ โดยปกติแล้วในการ Query ข้อมูลจาก Table ถ้าเกิดมีการ JOIN ข้อมูลหลาย ๆ ตาราง แล้วได้ผลลัพธ์ที่ต้องการแล้ว เมื่อเราจะนำ Query นั้นไปใช้งานบ่อย ๆ จะเกิดปัญหาที่ว่าเราต้องเขียน SQL ซ้ำ ๆ ในทุก ๆ ที่ ที่มีการเรียกใช้งาน ฉะนั้นจะดีไม่น้อยถ้าเรานำ Query นั้นมาสร้างเป็น VIEW ไว้ ซึ่ง VIEW นี้จะไม่มีโครงสร้างหรือชนิดของข้อมูลเป็นของตัวเอง แต่จะเป็นเพียงรูปแบบคำสั่ง SQL Statement ที่จะลองตัวเองขึ้นมาเท่านั้น และเมื่อเรียกใช้ VIEW ตัว VIEW เริ่มทำงานก็จะไป Query ข้อมูลตามคำสั่ง SQL ที่ถูกเขียนไว้

นอกจากนี้ VIEW ยังถูกใช้ในรูปแบบของการกำหนดสิทธิ์ในการเรียกใช้ข้อมูล เช่น แทนที่จะให้ผู้ที่เรียกใช้งาน Query ข้อมูลจาก Table โดยตรง เราก็จะให้เรียกจาก VIEW แทน ซึ่งใน VIEW นี้เราก็จะใช้การเขียน SQL เพื่อให้เห็นได้เฉพาะบางรายการของข้อมูลเท่านั้น รวมทั้งกำหนดสิทธิ์ในการเห็นข้อมูลได้

Note!! วิว (VIEW) จะอณุญาติให้ Query แต่ดูอย่างเดียวเท่านั้น ไม่สามารถทำการ INSERTUPDATE หรือ DELETE ข้อมูลใน VIEW ได้

โครงสร้างของตาราง customer และ country

Table : customer

Stored Procedure บน MySQL

Table : country

Stored Procedure บน MySQL

Table : audit

Stored Procedure บน MySQL

Create VIEW Syntax

1.CREATE OR REPLACE VIEW `view_name` AS
2.// Statement

Create VIEW Syntax กรณีกำหนดสิทธิ์ของ User root ให้ใช้ได้เท่านั้น

1.CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `view_name` AS
2.// Statement

Example : ตัวอย่างการสร้าง VIEW แบบง่าย ๆ บน MySQL Database

1.CREATE OR REPLACE VIEW customer_info AS
2. 
3.SELECT     A.CUSTOMER_ID, A.NAME, B.COUNTRY_NAME, A.BUDGET, A.USED, COUNT(C.AUDIT_ID) AS ITEM_AUDIT
4.FROM         CUSTOMER AS LEFT OUTER JOIN
5.COUNTRY AS ON A.COUNTRY_CODE = B.COUNTRY_CODE LEFT OUTER JOIN
6.AUDIT AS ON A.CUSTOMER_ID = C.CUSTOMER_ID
7.GROUP BY A.CUSTOMER_ID, A.NAME, B.COUNTRY_NAME, A.BUDGET, A.USED;

MySQL View

การสร้าง VIEW บน Query

MySQL View

รายการของ VIEW จะแสดงร่วมกับ TABLE

MySQL View

การเรียกใช้งาน VIEW

1.SELECT FROM customer_info

สามารถ Query ได้เช่นเดียวกับ TABLE

MySQL View

สามารถ WHERE ได้เหมือนกับ TABLE

1.SELECT FROM customer_info WHERE ITEM_AUDIT >= 3

MySQL View

การเขียน Query จาก VIEW

MySQL View

Result ที่ได้
การแก้ไข VIEW

MySQL View

เลือกที่รายการ VIEW

MySQL View

คลิกที่ Structure -> Edit View

MySQL View

คำสั่ง VIEW ที่เราได้สร้างไว้ จะเห็นว่า Format ที่ MySQL จัดเรียงมาให้ ค่อนข้างจะดูยากพอสมควร ฉะนั้นแนะนำให้เก็บต้นฉบับไว้ แล้วนำมาแก้ไขแล้วค่อยนำไป Query เพื่อสร้างใหม่

แหล่งที่มา : thaicreate.com/tutorial