數據庫版本:mysql8。0.27
如果以下代碼執行有問題歡迎一起探討
視圖View
什么是視圖?
視圖是一個虛擬表,是sql語句的查詢結果,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據,在使用視圖時動態生成。視圖的數據變化會影響到基表,基表的數據變化也會影響到視圖[insertupdate delete ] ; 創建視圖需要create view 權限,并且對于查詢涉及的列有select權限;使用create or replace 或者 alter修改視圖,那么還需要改視圖的drop權限。
代碼實現:
學生成績表
建立視圖
1
2
3
|
-- v_a是視圖名 create view v_a as select id, name ,score,dept from s1; |
查詢視圖
1
2
3
4
5
6
7
8
|
-- 查詢視圖v_a select * FROM v_a; -- 查詢視圖時可以增加條件 select * FROM v_a where id=4; -- 查詢數據庫中的全部視圖 select `TABLE_NAME` from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_SCHEMA` = 'test' and `TABLE_TYPE` = 'view' ; |
刪除視圖
1
|
drop view v_a |
索引index
- MySQL索引的建立對于MySQL的高效運行是很重要的,索引可以大大提高MySQL的檢索速度。
- 打個比方,如果合理的設計且使用索引的MySQL是一輛蘭博基尼的話,那么沒有設計和使用索引的MySQL就是一個人力三輪車。
- 拿漢語字典的目錄頁(索引)打比方,我們可以按拼音、筆畫、偏旁部首等排序的目錄(索引)快速查找到需要的字。
- 索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索引包含多個列。
- 創建索引時,你需要確保該索引是應用在 SQL 查詢語句的條件(一般作為 WHERE 子句的條 件)。
- 實際上,索引也是一張表,該表保存了主鍵與索引字段,并指向實體表的記錄。
- 上面都在說使用索引的好處,但過多的使用索引將會造成濫用。因此索引也會有它的缺點:雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要保存數據,還要保存一下索引文件。
- 建立索引會占用磁盤空間的索引文件。
建立索引
創建表時建立
1
2
3
4
5
6
7
8
9
10
|
-- 第一種方式 create table t1 ( t varchar (20), KEY (t desc ) ) -- 第二種方式 create table t1 ( t varchar (20), index aa(t(20)) ) |
修改表時建立索引
1
2
3
4
5
6
7
8
|
-- 該語句添加一個主鍵,這意 味著索引值必須是唯一的,且不能為NULL。 ALTER TABLE tbl_name ADD PRIMARY KEY (column_list); -- 這條語句創建索引的 值必須是唯一的(除了NULL外,NULL可能會出現多次)。 ALTER TABLE tbl_name ADD UNIQUE index_name (column_list); -- 添加普通索引,索引 值可出現多次。 ALTER TABLE tbl_name ADD INDEX index_name (column_list); -- 該語句指定了索引 為 FULLTEXT ,用于全文索引。 ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list); |
刪除索引
1
|
drop index t on t; |
到此這篇關于MySQL視圖和索引專篇精講的文章就介紹到這了,更多相關MySQL視圖和索引內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_50843918/article/details/123074776