ดูเทียบกับขั้นตอนการจัดเก็บ
มุมมองและขั้นตอนการจัดเก็บเป็นวัตถุฐานข้อมูลสองประเภท มุมมองเป็นคิวรีที่เก็บไว้ ซึ่งรวบรวมข้อมูลจากตารางอย่างน้อยหนึ่งตาราง นี่คือรูปแบบการสร้างมุมมอง
สร้างหรือแทนที่ชื่อการดู
เป็น
select_statement;
A กระบวนงานที่เก็บไว้คือชุดคำสั่ง SQL ที่คอมไพล์ล่วงหน้า ซึ่งจัดเก็บไว้ในเซิร์ฟเวอร์ฐานข้อมูล แต่ละโพรซีเดอร์ที่เก็บไว้มีชื่อเรียก ซึ่งใช้ในการเรียกภายในแพ็คเกจ โพรซีเดอร์ และฟังก์ชันอื่นๆ นี่คือไวยากรณ์ (ใน ORACLE) เพื่อสร้างกระบวนงานที่เก็บไว้
สร้างหรือแทนที่ชื่อขั้นตอน (พารามิเตอร์)
คือ
เริ่ม
statements;
ยกเว้น
exception_handling
จบ;
ดู
A มุมมองทำหน้าที่เป็นตารางเสมือน มันซ่อนคำสั่ง select ไว้ภายในเนื้อหา คำสั่ง select นี้อาจซับซ้อนมาก ซึ่งใช้ข้อมูลจากหลายตารางและมุมมอง ดังนั้น กล่าวอีกนัยหนึ่ง มุมมองคือคำสั่ง select ที่มีชื่อ ซึ่งจัดเก็บไว้ในฐานข้อมูล มุมมองสามารถใช้เพื่อซ่อนตรรกะเบื้องหลังความสัมพันธ์ของตารางจากผู้ใช้ปลายทาง เนื่องจากมุมมองเป็นผลมาจากการสืบค้นข้อมูลที่เก็บไว้ จึงไม่เก็บข้อมูลใดๆ มันรวบรวมข้อมูลจากตารางฐานและการแสดง มุมมองมีบทบาทสำคัญในการรักษาความปลอดภัยของข้อมูลเช่นกัน เมื่อเจ้าของตารางต้องแสดงเฉพาะชุดข้อมูลต่อผู้ใช้ การสร้างมุมมองจึงเป็นทางออกที่ดี มุมมองสามารถแบ่งออกเป็นสองประเภท
- มุมมองที่อัปเดตได้ (มุมมองที่สามารถใช้สำหรับ INSERT, UPDATE และ DELETE)
- มุมมองที่ไม่สามารถอัปเดตได้ (มุมมองที่ไม่สามารถใช้สำหรับ INSERT, UPDATE และ DELETE)
มุมมองที่อัปเดตไม่สามารถรวมสิ่งต่อไปนี้ได้
ชุดตัวดำเนินการ (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
ฟังก์ชั่นการรวมกลุ่ม (AVG, COUNT, MAX, MIN, SUM, ฯลฯ)
จัดกลุ่มตามข้อ
เรียงตามลำดับ
เชื่อมต่อตามข้อ
เริ่มด้วยเงื่อนไข
นิพจน์คอลเลกชันในรายการที่เลือก
แบบสอบถามย่อยใน A Select List
เข้าร่วมแบบสอบถาม
ขั้นตอนการจัดเก็บ
กระบวนงานที่เก็บไว้มีชื่อว่าบล็อกการเขียนโปรแกรม พวกเขาต้องมีชื่อที่จะเรียก กระบวนงานที่เก็บไว้ยอมรับพารามิเตอร์เป็นอินพุตของผู้ใช้และประมวลผลตามตรรกะเบื้องหลังขั้นตอนและให้ผลลัพธ์ (หรือดำเนินการเฉพาะ) การประกาศตัวแปร การกำหนดตัวแปร คำสั่งควบคุม ลูป การสืบค้น SQL และการเรียกใช้ฟังก์ชัน/ขั้นตอน/แพ็คเกจอื่นๆ สามารถอยู่ภายในเนื้อหาของโพรซีเดอร์ได้
การดูและขั้นตอนการจัดเก็บต่างกันอย่างไร
ให้เราดูความแตกต่างระหว่างสองสิ่งนี้
• มุมมองทำหน้าที่เป็นตารางเสมือน สามารถใช้โดยตรงจากแบบสอบถาม SQL ปิด (เลือก) แต่ไม่สามารถใช้ขั้นตอนในการปิดของแบบสอบถาม
• มุมมองมีเฉพาะคำสั่ง select เป็นเนื้อหา แต่โพรซีเดอร์สามารถมีการประกาศตัวแปร การกำหนดตัวแปร คำสั่งควบคุม ลูป การสืบค้น SQL และฟังก์ชัน/ขั้นตอน/การเรียกแพ็คเกจอื่นๆ เป็นเนื้อหาได้
• ขั้นตอนยอมรับพารามิเตอร์เพื่อดำเนินการ แต่มุมมองไม่ต้องการให้ดำเนินการพารามิเตอร์
• สามารถสร้างประเภทบันทึกจากการดูโดยใช้ % ROWTYPE แต่ด้วยขั้นตอน จะไม่สามารถสร้างประเภทบันทึกได้
• สามารถใช้คำแนะนำ SQL ภายในคำสั่งเลือกมุมมอง เพื่อปรับแผนการดำเนินการให้เหมาะสม แต่คำใบ้ SQL ไม่สามารถใช้ในขั้นตอนการจัดเก็บ
• สามารถให้สิทธิ์ DELETE, INSERT, UPDATE, SELECT, FLASHBACK และ DEBUG ในการดูได้ แต่ให้อนุญาตเฉพาะ EXECUTE และ DEBUG เท่านั้นตามขั้นตอน