首頁 > 軟體

MySQL檢視和索引專篇精講

2022-03-09 10:00:39

資料庫版本:mysql8。0.27

如果以下程式碼執行有問題歡迎一起探討

檢視View

什麼是檢視?

檢視是一個虛擬表,是sql語句的查詢結果,其內容由查詢定義。同真實的表一樣,檢視包含一系列帶有名稱的列和行資料,在使用檢視時動態生成。檢視的資料變化會影響到基表,基表的資料變化也會影響到檢視[insertupdate delete ] ; 建立檢視需要create view 許可權,並且對於查詢涉及的列有select許可權;使用create or replace 或者 alter修改檢視,那麼還需要改檢視的drop許可權。

程式碼實現:

學生成績表

建立檢視

-- v_a是檢視名  
create view v_a as 
select id,name,score,dept from s1;

查詢檢視

-- 查詢檢視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';

刪除檢視

drop view v_a

索引index

  • MySQL索引的建立對於MySQL的高效執行是很重要的,索引可以大大提高MySQL的檢索速度。
  • 打個比方,如果合理的設計且使用索引的MySQL是一輛蘭博基尼的話,那麼沒有設計和使用索引的MySQL就是一個人力三輪車。
  • 拿漢語字典的目錄頁(索引)打比方,我們可以按拼音、筆畫、偏旁部首等排序的目錄(索引)快速查詢到需要的字。
  • 索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索引包含多個列。
  • 建立索引時,你需要確保該索引是應用在 SQL 查詢語句的條件(一般作為 WHERE 子句的條 件)。
  • 實際上,索引也是一張表,該表儲存了主鍵與索引欄位,並指向實體表的記錄。
  • 上面都在說使用索引的好處,但過多的使用索引將會造成濫用。因此索引也會有它的缺點:雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對錶進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要儲存資料,還要儲存一下索引檔案。
  • 建立索引會佔用磁碟空間的索引檔案。

建立索引

建立表時建立

-- 第一種方式
create table t1 (
t varchar(20),
KEY(t desc)
)
-- 第二種方式
create table t1 (
t varchar(20),
index aa(t(20))
)

修改表時建立索引

-- 該語句新增一個主鍵,這意 味著索引值必須是唯一的,且不能為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);

刪除索引

drop index t on t;

到此這篇關於MySQL檢視和索引專篇精講的文章就介紹到這了,更多相關MySQL檢視和索引內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com