<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
小學的時候,每年都會舉辦一次抽考活動,意思是從每一個班級裡面篩選出幾個優秀的同學去參加考試。這時候很多班級篩選出來的這些同學就可以臨時組成一個班級,如果我們把每一個班級都當做是一張真實的表,這個臨時的班級在資料庫裡就可以當做一個檢視,也就是說,這個臨時的班級其實不是真實存在的,當考試過後,這些學生還是各回各家各找各媽。。。。
檢視是從一個或多個表中匯出來的表,是一種虛擬存在的表。檢視就像一個視窗,通過這個視窗可以看到系統專門提供的資料,這樣使用者可以不看整個資料庫表中的資料,而只關心對自己有用的資料。檢視可以使使用者的操作更方便,而且可以保障資料庫系統的安全性。
雖然檢視可以被看成是一種虛擬表,但是其物理上是不存在的,即MySQL並沒有專門的位置為檢視儲存資料。根據檢視的概念可以發現其資料來源於查詢語句,因此建立檢視的基本語法為:
CREATE[OR REPLACE] VIEW viewname[(columnlist)] AS SELECT statement
CREATE表示建立新的檢視;REPLACE表示替換已經建立的檢視;[(columnlist)]表示可以顯示的指出檢視中有哪些列(必須和select語句對應);viewname為檢視的名稱;columnlist為屬性列;SELECT statement表示SELECT語句;
注意! 建立檢視需要登陸使用者有相應的許可權,檢視許可權方法:
select user,Select_priv,Create_view_priv from mysql.user;
例如在下面學生表上面建立檢視
建立檢視SQL語句範例
create view view_student as select id,name ,class_id,sex from student;
檢視檢視
通過檢視可以檢索資料
檢視本身相當於一個視窗,通過這個視窗我們也可以修改資料
update view_student set name='小王王' where name='小王';
CREATE[OR REPLACE] VIEW viewname[columnlist] AS SELECT statement
- CREATE表示建立新的檢視;
- REPLACE表示替換已經建立的檢視;
- viewname為檢視的名稱;
- columnlist為屬性列;
- SELECT statement表示SELECT語句。與單表上建立檢視不同的是,SELECT子句是涉及到多表的聯合查詢語句。
例如在下面教師表和學生表之間建立檢視
SQL語句 (檢視不允許有列名重複,所以這裡的class.id和student.id要起別名
create view view_student_teacher as select class.id as teacher_id,teacher,class,student.id,student.name,sex from class left join student on class.id=student.class_id;
建立完檢視後,像表一樣,我們經常需要檢視檢視資訊。在MySQL中,有許多可以實現檢視檢視的語句,如DESCRIBE、SHOW TABLES、SHOW CREATE VIEW。如果要使用這些語句,首先要確保擁有SHOW VIEW的許可權。
1.使用DESCRIBE | DESC語句檢視檢視基本資訊
檢視也是一張表,只是這張表比較特殊,是一張虛擬的表,所以同樣可以使用DESCRIBE語句來檢視檢視的基本定義。DESCRIBE語句檢視檢視的語法如下:
DESCRIBE | DESC viewname;
例如檢視上面建立的檢視
2.使用SHOW TABLES語句檢視檢視基本資訊
從MySQL 5.1版本開始,執行SHOW TABLES語句時不僅會顯示錶的名字,同時也會顯示檢視的名字。
show tables
3.使用 show create view/table 語句檢視檢視建立資訊
SHOW CREATE TABLE|VIEW viewname;
更新檢視是指通過檢視來插入(INSERT)、更新(UPDATE)和刪除(DELETE)表中的資料。因為檢視實質是一個虛擬表,其中沒有資料,通過檢視更新時都是轉換到基本表更新。更新檢視時,只能更新許可權範圍內的資料,超出範圍就不能更新了。
update view_student set name='小王' where name='小王王';
不能更新的情況:
- 檢視中包含SUM()、COUNT()、MAX()和MIN()等函數;
- 檢視中包含UNION、UNION ALL、DISTINCT、GROUP BY和HAVING等關鍵字;
- 檢視對應的表存在沒有預設值的列,而且該列沒有包含在檢視裡;
- 包含子查詢的檢視;
- 其他特殊情況;
例如更改view_student_teacher時
修改檢視是指修改資料庫中存在的檢視,當基本表的某些欄位發生變化的時候,可以通過修改檢視來保持與基本表的一致性。ALTER語句來修改檢視。
ALTER VIEW viewname[columnlist] AS SELECT statement
這個語法中的所有關鍵字和引數除了alter 外,其他都和建立檢視是一樣的。
例如修改檢視view_student_teacher
SQL語句範例
alter view view_student_teacher as select teacher,class,name,sex from class left join student on class.id=student.class_id;
注意,當真實表中修改了某個存在檢視中的欄位時,這個檢視也需要跟著變,否則會變成無效的檢視
例如,修改了student表中的name欄位
alter table student change column name name1 varchar(64); select * from view_student_teaccher;
這時候就需要將檢視也跟著修改
alter view view_student_teacher as select teacher,class,name1,sex from class left join student on class.id=student.class_id;
刪除檢視是指刪除資料庫中已存在的檢視。刪除檢視時,只能刪除檢視的定義,不會刪除資料。
在MySQL中,可使用DROP VIEW語句來刪除檢視,但是使用者必須擁有DROP許可權。刪除檢視的語法如下:
DROP VIEW viewname [,viewnamen];
引數viewname表示所要刪除檢視的名稱,可同時指定刪除多個檢視。
到此這篇關於MySQL檢視的概念、建立、檢視、刪除和修改的文章就介紹到這了,更多相關MySQL檢視建立 檢視 刪除和修改內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45