PostgreSQL สร้างมุมมองพร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

PostgreSQL วิว (Views) คือตารางเสมือนที่สร้างขึ้นจากคำสั่ง SELECT ที่จัดเก็บไว้ ทำให้คุณสามารถห่อหุ้มคำสั่งที่ซับซ้อนหรือใช้งานบ่อยไว้ภายใต้ชื่อเดียว ซึ่งคุณสามารถอ่าน อัปเดต หรือลบได้เหมือนกับตารางทั่วไป

  • 🗂️ ตารางเสมือน: วิวจะเก็บคำสั่งค้นหา ไม่ใช่ข้อมูล แต่คุณสามารถเลือกข้อมูลจากวิวได้เหมือนกับการเลือกข้อมูลจากตาราง
  • 🛠️ สร้าง: คำสั่ง CREATE VIEW จะตั้งชื่อให้กับคำสั่ง SELECT แม้ว่าจะใช้กับตารางฐานข้อมูลหลายตารางก็ตาม เพื่อให้สามารถนำกลับมาใช้ซ้ำได้ง่าย
  • ♻️ แทนที่: คำสั่ง CREATE OR REPLACE VIEW จะเปลี่ยนมุมมองโดยไม่ต้องลากและวางping มัน
  • 🗑️ วาง: DROP VIEW ใช้สำหรับลบมุมมอง และ IF EXISTS ใช้สำหรับป้องกันข้อผิดพลาด
  • 🤖 ความช่วยเหลือจาก AI: ผู้ช่วย AI สร้างคำจำกัดความของมุมมองและแนะนำว่าควรห่อหุ้มคำค้นหาใดบ้าง

PostgreSQL สร้างมุมมอง

ความหมายของ PostgreSQL ดู?

In PostgreSQLมุมมองเป็นตารางหลอก ซึ่งหมายความว่ามุมมองไม่ใช่ตารางจริง แต่เราสามารถเลือกให้เป็นตารางธรรมดาได้ มุมมองสามารถมีคอลัมน์ตารางทั้งหมดหรือบางส่วนได้ มุมมองยังสามารถเป็นตัวแทนของตารางได้มากกว่าหนึ่งตาราง

ตารางเหล่านี้เรียกว่าตารางพื้นฐาน เมื่อสร้างวิว คุณเพียงแค่สร้างคิวรีแล้วตั้งชื่อให้ ทำให้มันเป็นเครื่องมือที่มีประโยชน์สำหรับการห่อหุ้มping คำถามที่ซับซ้อนและคำถามที่ใช้กันทั่วไป

การสร้าง PostgreSQL เข้าชม

เพื่อสร้าง PostgreSQL ดูเราใช้คำสั่ง CREATE VIEW นี่คือไวยากรณ์สำหรับคำสั่งนี้:

CREATE [OR REPLACE] VIEW view-name AS
  SELECT column(s)
  FROM table(s)
  [WHERE condition(s)];

พารามิเตอร์ OR REPLACE จะแทนที่มุมมองหากมีอยู่แล้ว หากละเว้นและมีมุมมองอยู่แล้ว ข้อผิดพลาดจะถูกส่งกลับ

พารามิเตอร์ชื่อมุมมองคือชื่อของมุมมองที่คุณต้องการสร้าง

เงื่อนไข WHERE เป็นตัวเลือก และต้องเป็นไปตามเงื่อนไขเหล่านั้นจึงจะเพิ่มเรคอร์ดใดๆ ลงในมุมมองได้

พิจารณาตารางราคาที่ระบุด้านล่าง:

ราคา:

การสร้าง PostgreSQL เข้าชม

ให้เราสร้างมุมมองจากตารางด้านบน:

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

คำสั่งดังกล่าวจะสร้างมุมมองตาม คำสั่ง SELECT- เฉพาะเรกคอร์ดที่มีราคามากกว่า 200 เท่านั้นที่จะถูกเพิ่มลงในมุมมอง มุมมองได้รับการตั้งชื่อว่า Price_View ให้เราสอบถามเพื่อดูเนื้อหา:

SELECT *
FROM Price_View;

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

การสร้าง PostgreSQL เข้าชม

แม้ว่าตารางฐานจะมี 4 เรกคอร์ด แต่มีเพียง 2 รายการเท่านั้นที่ถูกเพิ่มลงในมุมมอง

ในที่นี้ เราสามารถเพิ่มคอลัมน์ได้เพียงคอลัมน์เดียวในวิว มาสร้างวิวที่มีเพียงคอลัมน์เดียวจากตารางราคา (Price) กัน:

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

มุมมองได้รับการตั้งชื่อว่า Price_View2 และรวมเฉพาะคอลัมน์ราคาของตารางราคา ให้เราสอบถามมุมมองเพื่อดูเนื้อหา:

SELECT *
FROM Price_View2;

สิ่งนี้ส่งคืนสิ่งต่อไปนี้:

การสร้าง PostgreSQL เข้าชม

เปลี่ยนแปลง PostgreSQL เข้าชม

คำจำกัดความของมุมมองสามารถเปลี่ยนแปลงได้โดยไม่ต้องละทิ้ง ซึ่งทำได้โดยใช้คำสั่ง CREATE OR REPLACE VIEW

ให้เราสาธิตสิ่งนี้โดยการอัปเดตมุมมองชื่อ Price_View2

ราคา_ดู2:

เปลี่ยนแปลง PostgreSQL เข้าชม

ตารางหนังสือมีดังนี้:

หนังสือ:

เปลี่ยนแปลง PostgreSQL เข้าชม

ตารางราคามีดังนี้:

ราคา:

เปลี่ยนแปลง PostgreSQL เข้าชม

แบบสอบถามต่อไปนี้จะช่วยให้เราอัปเดตมุมมอง Price_View2:

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

ให้เราสอบถามมุมมองเพื่อดูเนื้อหา:

เปลี่ยนแปลง PostgreSQL เข้าชม

มุมมองมีการเปลี่ยนแปลง และตอนนี้เรามีสองคอลัมน์จากสองตารางที่แตกต่างกัน สิ่งนี้สามารถทำได้โดยใช้คำสั่ง JOIN

ลบ PostgreSQL เข้าชม

เมื่อใดก็ตามที่คุณต้องการลบ PostgreSQL หากต้องการดูมุมมองอื่น คุณสามารถใช้คำสั่ง DROP VIEW ได้ นี่คือไวยากรณ์ของคำสั่ง:

DROP VIEW [IF EXISTS] view-name;

ชื่อมุมมองพารามิเตอร์คือชื่อของมุมมองที่จะถูกลบ

ในไวยากรณ์นี้ คำสั่ง IF EXISTS เป็นตัวเลือกเสริม หากคุณไม่ระบุคำสั่งนี้และพยายามลบวิวที่ไม่มีอยู่ คุณจะได้รับข้อผิดพลาด

ตัวอย่างเช่น หากต้องการลบมุมมองที่ชื่อ Price_View2 เราสามารถรันคำสั่งต่อไปนี้:

DROP VIEW Price_View2;

มุมมองจะถูกลบ

การใช้งาน pgAdmin

ต่อไปนี้เรามาดูกันว่าเราสามารถดำเนินการเหล่านี้ได้อย่างไรโดยใช้ pgAdmin

การสร้าง PostgreSQL เข้าชม

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  • จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  • คลิกสาธิต

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

ขั้นตอน 4) คลิกปุ่มดำเนินการ

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 5) หากต้องการดูเนื้อหาในส่วนแสดงผล ให้ทำดังนี้:

  • พิมพ์คำสั่งต่อไปนี้ในตัวแก้ไขแบบสอบถาม:
SELECT *
FROM Price_View;
  • คลิกปุ่มดำเนินการ

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

ในการสร้างมุมมอง Price_View2 ให้ทำดังต่อไปนี้:

ขั้นตอน 1) พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

ขั้นตอน 2) คลิกปุ่มดำเนินการ

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 3) หากต้องการดูเนื้อหาของมุมมอง ให้ทำดังต่อไปนี้:

  • พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:
SELECT *
FROM Price_View2;
  • คลิกปุ่มดำเนินการ

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:

การสร้าง PostgreSQL การดูโดยใช้ pgAdmin

เปลี่ยนแปลง PostgreSQL เข้าชม

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  • จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  • คลิกสาธิต

เปลี่ยนแปลง PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

ขั้นตอน 4) คลิกปุ่มดำเนินการ

เปลี่ยนแปลง PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 5) พิมพ์แบบสอบถามต่อไปนี้ในตัวแก้ไขแบบสอบถาม:

SELECT *
FROM Price_View2;

สิ่งนี้จะส่งคืนสิ่งต่อไปนี้:

เปลี่ยนแปลง PostgreSQL การดูโดยใช้ pgAdmin

ลบ PostgreSQL เข้าชม

หากต้องการบรรลุผลเช่นเดียวกันผ่าน pgAdmin ให้ทำดังนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  • จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  • คลิกสาธิต

ลบ PostgreSQL การดูโดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

DROP VIEW Price_View2;

ขั้นตอน 4) คลิกปุ่มดำเนินการ

ลบ PostgreSQL การดูโดยใช้ pgAdmin

มุมมองจะถูกลบ

ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้

คำถามที่พบบ่อย

ตารางจะเก็บข้อมูลไว้ในดิสก์ ในขณะที่วิวจะเก็บเฉพาะคำสั่ง SELECT ดังนั้นการเรียกใช้วิวจะเป็นการรันคำสั่งนั้นซ้ำและส่งคืนข้อมูลปัจจุบันจากตารางฐานข้อมูล

Materialized View จะแคชผลลัพธ์การค้นหาไว้ในดิสก์ ทำให้การอ่านข้อมูลเร็วกว่า Plain View แต่ต้องใช้คำสั่ง REFRESH MATERIALIZED VIEW เพื่อแสดงข้อมูลใหม่

มุมมองมาตรฐานจะเรียกใช้คำสั่งค้นหาทุกครั้ง ทำให้แสดงข้อมูลแบบเรียลไทม์ ในขณะที่มุมมองแบบ Materialized View จะจัดเก็บผลลัพธ์ลงในดิสก์เพื่อความเร็ว แต่ข้อมูลอาจไม่ทันสมัยจนกว่าจะมีการอัปเดตใหม่

บางครั้ง มุมมองตารางเดียวแบบง่ายๆ ที่ไม่มีการรวมข้อมูลจะสามารถอัปเดตได้โดยอัตโนมัติ ดังนั้นคำสั่ง INSERT, UPDATE และ DELETE จึงทำงานได้โดยตรง แต่สำหรับมุมมองที่ซับซ้อนกว่านั้น จำเป็นต้องใช้ทริกเกอร์แบบ INSTEAD OF

เรียกดูข้อมูลจากแคตตาล็อก: SELECT table_name FROM information_schema.views WHERE table_schema = 'public' ใน pgAdmin คุณสามารถขยายโหนด Views ภายใต้สคีมาได้

ผู้ช่วย AI จะแปลงคำขอที่เป็นภาษาธรรมดาให้เป็นคำสั่ง CREATE VIEW ตั้งชื่อวิว และเพิ่มเงื่อนไข WHERE และ JOIN ที่ถูกต้อง ซึ่งจะช่วยเพิ่มความเร็วในการค้นหาข้อมูลที่คุณใช้บ่อย

ใช่แล้ว เพียงวางคำสั่ง SELECT ยาวๆ ลงไป ระบบ AI จะสร้างมุมมองแบบ CREATE OR REPLACE VIEW ขึ้นมาโดยอัตโนมัติ แนะนำชื่อที่เหมาะสม และทำเครื่องหมายคอลัมน์ที่ต้องการตั้งชื่อเล่นเพื่อหลีกเลี่ยงชื่อซ้ำ

มุมมองแบบปกติไม่ได้ช่วยเพิ่มความเร็วในการค้นหาข้อมูล เพราะคำสั่ง SELECT จะทำงานทุกครั้ง หากต้องการอ่านข้อมูลซ้ำๆ ได้เร็วขึ้น ให้ใช้ materialized view ซึ่งจะจัดเก็บผลลัพธ์ไว้ในดิสก์จนกว่าจะมีการรีเฟรชข้อมูล

สรุปโพสต์นี้ด้วย: