什麼是視圖
視圖是從一個或幾個基本表(或視圖)導出的虛擬表。它與基本表不同,是一個虛表。數據庫中只存放視圖的定義,而不存放視圖對應的數據,這些數據仍然放在原來的基本表中。所以一旦基本表中的數據發生變化,從視圖中查詢出的數據也就隨之改變了。視圖一經定義,就擁有和基本表一樣的功能。也可以在視圖之上再定義新的視圖,但對視圖的更新操作則有一定的限制。
數據表數據:
1.創建視圖
SSMS工具創建視圖
- 打開對應的數據庫,找到“視圖”,右擊,選擇“新建視圖”
- 在添加表對話框中選擇需要添加的元素,本示例選擇表,然後添加要創建視圖的對應表,添加完成後關閉對話框。進入視圖設計面板。
- 在關係圖窗格中,勾選視圖所需要的屬性列,此時條件窗格和SQL語句窗格的內容都會隨之發生變化
- 如果需要給定特定條件,則可以在條件窗格對應的屬性列中找到要添加條件的屬性列,在篩選器中填入條件表達式
- 點擊保存按鈕或Ctrl+S保存視圖,輸入視圖名稱
- 展開對象資源管理器下的“視圖”,可以看到我們創建的視圖
- 完成後可以點擊執行,在結果窗格中查看視圖查詢結果
SQL方式創建視圖
語法格式:
CREATE VIEW <視圖名> [(<列名>[,<列名>]...)]
AS <子查詢>
[WITH CHECK OPTION]
使用示例
CREATE VIEW student_sex_male
AS
SELECT StuID, StuName, JoinTime, Sex
FROM student
WHERE (Sex = '男')
2.更新視圖
SSMS工具更新視圖
- 打開視圖,找到需要修改的視圖
- 右擊,選擇“設計”
- 進入視圖設計器面板,即可對試圖進行修改
- 完成後進行保存,點擊執行按鈕查看修改後的視圖查詢結果
SQL方式更新視圖
語法格式:
ALTER VIEW <視圖名> [(<列名>[,<列名>]...)]
[WITH ENCRIPTION] --加密
AS <子查詢>
[WITH CHECK OPTION]
使用示例
ALTER VIEW student_sex_male
AS
SELECT StuID, StuName, Sex
FROM student
WHERE (Sex = '女')
3.使用視圖
創建新視圖
簡要說明:視圖的使用與基本表的使用方法基本一致,對視圖的操作實際是對基本表中的數據進行操作。
語法格式:
--查詢數據
select <目標列表達式> from <視圖名>
--添加數據
insert
into <視圖名> [(<列名> [,<列名>]...)]
values(<屬性值> [,<屬性值>]...)
--修改數據
update <視圖名>
set <修改表達式>
[where <條件表達式>]
--刪除數據
delete
from <視圖名>
[where <條件表達式>]
使用示例
--查詢數據:使用student_view視圖查詢student表中的所有數據
select * from student_view
--添加數據:使用student_view視圖向student表中添加數據
insert
into student_view(StuID,StuName,Sex,JoinTime)
values(5,'麻七','男','2019-09-01')
--修改數據:使用student_view視圖對student表中的數據進行修改
update student_view
set Sex='女'
where StuID=5
--刪除數據:使用student_view視圖對student表中的數據進行刪除
delete
from student_view
where StuID=5
4.刪除視圖
SSMS工具刪除視圖
- 使用SSMS工具刪除視圖,只需要點開“視圖”,找到對應的視圖名,右擊,選擇“刪除”。
- 彈出刪除對象對話框,點擊“確定”,即可完成對視圖的刪除
SQL方式刪除視圖
語法格式:
DROP VIEW <視圖名>
使用示例:刪除視圖student_view
drop view student_view