ความแตกต่างระหว่าง View และ table ใน sql


136

อาจซ้ำกันได้:
ความแตกต่างระหว่างมุมมองและตารางในประสิทธิภาพ

ความแตกต่างหลักระหว่างมุมมองและตารางใน SQL คืออะไร มีข้อดีของการใช้มุมมองแทนตารางหรือไม่



6
ดูเหมือนจะไม่ซ้ำกัน โพสต์ที่เชื่อมโยงกำลังถามเฉพาะเกี่ยวกับประสิทธิภาพ / ประสิทธิภาพ โพสต์นี้กำลังถามเพิ่มเติมเกี่ยวกับความแตกต่างของประเภทข้อมูลเนื่องจากคำตอบที่เลือกหมายถึง
Ð ..

คำตอบ:


198

ตารางมีข้อมูลมุมมองเป็นเพียงSELECTคำสั่งที่ถูกบันทึกไว้ในฐานข้อมูล (มากหรือน้อยขึ้นอยู่กับฐานข้อมูลของคุณ)

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

แทนที่จะส่งแบบสอบถามที่ซับซ้อนไปยังฐานข้อมูลตลอดเวลาคุณสามารถบันทึกแบบสอบถามเป็นมุมมองจากนั้นได้ SELECT * FROM view


11
ดังนั้นมุมมองจึงเป็นตารางที่สร้างขึ้นโดยคำสั่ง select มุมมองจะถูกจัดเก็บและสามารถเข้าถึงได้ดังนั้นสิ่งที่จะแตกต่างกันระหว่างการสร้างตารางใหม่ด้วยข้อมูลนั้นแทนที่จะเป็นมุมมอง
Doug Hauf

23
คุณสามารถคิดว่ามุมมองเป็น "คำสั่งเลือกที่บันทึกไว้" ซึ่งคุณสามารถทำซ้ำได้ มันไม่ใช่โต๊ะจริงๆ แม้ว่าฐานข้อมูลบางส่วนจะอนุญาตให้สร้างมุมมองที่มีตารางจริงอยู่ด้านล่าง แต่ก็เป็นเพียงSELECTคำสั่งที่ให้ผลลัพธ์
Aaron Digulla

1
สิ่งที่ควรทราบ: มุมมองรายการระบบฐานข้อมูลบางส่วนพร้อมกับตารางใน "แสดงตาราง" คำสั่ง
Dexter

1
@ShwetabhShekhar ขึ้นอยู่กับฐานข้อมูลของคุณและประเภทของมุมมอง ในรูปแบบที่เรียบง่ายที่สุดฐานข้อมูลจะดำเนินการ SQL ราวกับว่าคุณเพิ่งส่งข้อมูลทั้งหมด ในกรณีนี้คุณเพียงแค่บันทึกการส่งไบต์จำนวนมากครั้งแล้วครั้งเล่า ฐานข้อมูลบางส่วนสามารถดำเนินการสืบค้นและเก็บผลลัพธ์ไว้ในตาราง (จริง) จากนั้นคุณต้องแก้ปัญหาที่คุณกล่าวถึง ตรวจสอบเอกสาร DB ว่าต้องทำอย่างไร
Aaron Digulla

1
@FoxDeploy ใช่เนื่องจากมุมมองนั้นไม่ได้ช่วย แต่อย่างใด สถานการณ์ที่เป็นประโยชน์จะเป็นมุมมองที่มีสิทธิ์ จำกัด หรือมุมมองที่เลือกตารางจากสคีมาอื่นในฐานข้อมูลเดียวกันหรือฐานข้อมูลอื่น (ตารางระยะไกล)
Aaron Digulla

34

ตาราง: ตารางเป็นหน่วยเก็บข้อมูลเบื้องต้นสำหรับจัดเก็บข้อมูลและสารสนเทศใน RDBMS ตารางคือชุดของรายการข้อมูลที่เกี่ยวข้องและประกอบด้วยคอลัมน์และแถว

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

  • เราสามารถรวมคอลัมน์ / แถวจากหลายตารางหรือมุมมองอื่นและมีมุมมองรวม
  • มุมมองสามารถใช้เป็นกลไกการรักษาความปลอดภัยโดยอนุญาตให้ผู้ใช้เข้าถึงข้อมูลผ่านมุมมองโดยไม่ต้องให้สิทธิ์ผู้ใช้ในการเข้าถึงตารางพื้นฐานของมุมมองโดยตรง
  • มันทำหน้าที่เป็นเลเยอร์นามธรรมของระบบดาวน์สตรีมดังนั้นการเปลี่ยนแปลงใด ๆ ในสคีมาจะไม่ถูกเปิดเผยและด้วยเหตุนี้ระบบปลายน้ำจึงไม่ได้รับผลกระทบ

16

มุมมองคือตารางเสมือนจริง มุมมองประกอบด้วยแถวและคอลัมน์เหมือนกับตาราง ความแตกต่างระหว่างมุมมองและตารางคือมุมมองเป็นคำจำกัดความที่สร้างขึ้นจากตารางอื่น ๆ (หรือมุมมอง) และไม่เก็บข้อมูลไว้ด้วยกัน หากข้อมูลมีการเปลี่ยนแปลงในตารางพื้นฐานการเปลี่ยนแปลงเดียวกันนี้จะแสดงในมุมมอง มุมมองสามารถสร้างขึ้นบนตารางเดียวหรือหลายตาราง นอกจากนี้ยังสามารถสร้างไว้ด้านบนของมุมมองอื่น ในหน้าสร้างมุมมอง SQL เราจะดูว่าสามารถสร้างมุมมองได้อย่างไร

มุมมองมีข้อดีดังต่อไปนี้:

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

  2. ประหยัดพื้นที่: มุมมองใช้พื้นที่ในการจัดเก็บน้อยมากเนื่องจากไม่ได้จัดเก็บข้อมูลจริง

  3. ความปลอดภัยของข้อมูลเพิ่มเติม: มุมมองสามารถรวมเฉพาะบางคอลัมน์ในตารางเพื่อให้รวมเฉพาะคอลัมน์ที่ไม่ละเอียดอ่อนและเปิดเผยต่อผู้ใช้ปลายทาง นอกจากนี้ฐานข้อมูลบางส่วนอนุญาตให้มุมมองมีการตั้งค่าความปลอดภัยที่แตกต่างกันดังนั้นจึงซ่อนข้อมูลที่ละเอียดอ่อนจากการสอดรู้สอดเห็น

คำตอบจาก: http://www.1keydata.com/sql/sql-view.html


4

ในมุมมองไม่มีความสัมพันธ์โดยตรงหรือทางกายภาพใด ๆ กับฐานข้อมูล และไม่อนุญาตให้ปรับเปลี่ยนผ่านมุมมอง (เช่นแทรกอัปเดตลบ) มันเป็นเพียงชุดตารางเชิงตรรกะ


1
ใน SQL Server คุณสามารถปรับเปลี่ยนตารางพื้นฐานผ่านมุมมองหากอ้างอิงเพียงตารางฐานเดียว ดูที่นี่
Kristen Hammack

3

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


2

ตาราง:

ตารางจัดเก็บข้อมูลในฐานข้อมูลและมีข้อมูล

ดู:

View เป็นตารางจินตภาพประกอบด้วยเฉพาะเขตข้อมูล (คอลัมน์) และไม่มีข้อมูล (แถว) ซึ่งจะถูกกำหนดกรอบในขณะทำงานมุมมองที่สร้างขึ้นจากตารางหนึ่งตารางหรือมากกว่าหนึ่งตารางโดยการรวมกับคอลัมน์ที่เลือก มุมมองถูกสร้างขึ้นเพื่อซ่อนบางคอลัมน์จากผู้ใช้ด้วยเหตุผลด้านความปลอดภัยและเพื่อซ่อนข้อมูลที่มีอยู่ในคอลัมน์ มุมมองช่วยลดความพยายามในการเขียนคิวรีเพื่อเข้าถึงคอลัมน์เฉพาะทุกครั้งแทนที่จะกดคิวรีที่ซับซ้อนลงในฐานข้อมูลทุกครั้งเราสามารถใช้ view


2

มุมมอง SQL:

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

ตาราง SQL:

ตาราง SQL คืออินสแตนซ์ฐานข้อมูลประกอบด้วยเขตข้อมูล (คอลัมน์) และแถว

ตรวจสอบโพสต์ต่อไปนี้ผู้เขียนระบุถึงความแตกต่างเจ็ดประการระหว่างมุมมองและตาราง

https://codechef4u.com/post/2015/09/03/sql-views-vs-tables

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.