內聯視圖

內聯視圖

內聯視圖是SQL語言(結構化查詢語言)中三種主要視圖(標準視圖、內聯視圖、物化視圖)中的一種。內聯視圖是一種臨時視圖,不存儲到數據字典中。它和標準視圖在使用過程中的主要區別是,不需要在進行SELECT查詢語句前進行視圖的創建。

基本介紹

  • 中文名:內聯視圖
  • 外文名:Inline View
視圖分類,優點,使用教程,使用說明,查詢過程,使用示例,

視圖分類

標準視圖
普通視圖,又稱為關係視圖。
內聯視圖
在使用SQL語句編寫查詢時,臨時構建的一個嵌入式的視圖,又稱為內嵌視圖。
物化視圖
存儲查詢的結果,之前稱為快照,在Oracle 8i以後被重命名為物化視圖。

優點

無需事先編寫創建視圖的語句,便於執行查詢。

使用教程

使用說明

內聯視圖是一種臨時視圖,不存儲到數據字典中。

查詢過程

查詢中包含臨時的內聯視圖時,視圖中的SELECT語句先被執行,得到一個結果集,然後由外層查詢語句查詢內聯視圖的結果。
一個查詢中可以嵌入多個內聯視圖。

使用示例

創建Students表和Registered_students表:
表Students:
CREATETABLEstudents(
idNUMBER(5)PRIMARYKEY,
first_nameVARCHAR2(20),
last_nameVARCHAR2(20),
majorVARCHAR2(30),
current_creditsNUMBER(3)
);
表Registered_students:
CREATETABLEregistered_students(
student_idNUMBER(5)NOTNULL,
departmentCHAR(3)NOTNULL,
courseNUMBER(3)NOTNULL,
gradeCHAR(1),
CONSTRAINTrs_grade
CHECK(gradeIN('A','B','C','D','E')),
CONSTRAINTrs_student_id
FOREIGNKEY(student_id)
REFERENCESstudents(id),
CONSTRAINTrs_department_course
FOREIGNKEY(department,course)
REFERENCESclasses(department,course)
);
查詢內聯視圖:
SELECTs.id,s.first_name,s.last_name,s.major,stu_count.totalcourse
FROMStudentss,
(SELECTstudent_id,count(*)totalcourse
FROMregistered_students
GROUPBYstudent_id)stu_count
WHEREs.id=stu_count.student_id;

相關詞條

熱門詞條

聯絡我們