內聯視圖

內聯視圖

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

基本介紹

  • 中文名:內聯視圖
  • 外文名:Inline View
視圖分類:,標準視圖,內聯視圖,物化視圖,使用說明,優點,查詢過程,使用示例,表Students:,表Registered_students:,查詢內聯視圖:,

視圖分類:

標準視圖

普通視圖,又稱為關係視圖。

內聯視圖

在使用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_gradeCHECK(gradeIN('A','B','C','D','E')),CONSTRAINTrs_student_idFOREIGNKEY(student_id)REFERENCESstudents(id),CONSTRAINTrs_department_courseFOREIGNKEY(department,course)REFERENCESclasses(department,course));

查詢內聯視圖:

SELECTs.id,s.first_name,s.last_name,s.major,stu_count.totalcourseFROMStudentss,(SELECTstudent_id,count(*)totalcourseFROMregistered_studentsGROUPBYstudent_id)stu_countWHEREs.id=stu_count.student_id;

相關詞條

熱門詞條

聯絡我們