MySQL視圖和索引專篇精講
數(shù)據(jù)庫(kù)版本:mysql8。0.27
如果以下代碼執(zhí)行有問(wèn)題歡迎一起探討
視圖View
什么是視圖?
視圖是一個(gè)虛擬表,是sql語(yǔ)句的查詢結(jié)果,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù),在使用視圖時(shí)動(dòng)態(tài)生成。視圖的數(shù)據(jù)變化會(huì)影響到基表,基表的數(shù)據(jù)變化也會(huì)影響到視圖[insertupdate delete ] ; 創(chuàng)建視圖需要create view 權(quán)限,并且對(duì)于查詢涉及的列有select權(quán)限;使用create or replace 或者 alter修改視圖,那么還需要改視圖的drop權(quán)限。
代碼實(shí)現(xiàn):
學(xué)生成績(jī)表
建立視圖
-- v_a是視圖名 create view v_a as select id,name,score,dept from s1;
查詢視圖
-- 查詢視圖v_a select*FROM v_a; -- 查詢視圖時(shí)可以增加條件 select*FROM v_a where id=4; -- 查詢數(shù)據(jù)庫(kù)中的全部視圖 select `TABLE_NAME` from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_SCHEMA` = 'test' and `TABLE_TYPE` = 'view';
刪除視圖
drop view v_a
索引index
- MySQL索引的建立對(duì)于MySQL的高效運(yùn)行是很重要的,索引可以大大提高M(jìn)ySQL的檢索速度。
- 打個(gè)比方,如果合理的設(shè)計(jì)且使用索引的MySQL是一輛蘭博基尼的話,那么沒(méi)有設(shè)計(jì)和使用索引的MySQL就是一個(gè)人力三輪車(chē)。
- 拿漢語(yǔ)字典的目錄頁(yè)(索引)打比方,我們可以按拼音、筆畫(huà)、偏旁部首等排序的目錄(索引)快速查找到需要的字。
- 索引分單列索引和組合索引。單列索引,即一個(gè)索引只包含單個(gè)列,一個(gè)表可以有多個(gè)單列索引,但這不是組合索引。組合索引,即一個(gè)索引包含多個(gè)列。
- 創(chuàng)建索引時(shí),你需要確保該索引是應(yīng)用在 SQL 查詢語(yǔ)句的條件(一般作為 WHERE 子句的條 件)。
- 實(shí)際上,索引也是一張表,該表保存了主鍵與索引字段,并指向?qū)嶓w表的記錄。
- 上面都在說(shuō)使用索引的好處,但過(guò)多的使用索引將會(huì)造成濫用。因此索引也會(huì)有它的缺點(diǎn):雖然索引大大提高了查詢速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件。
- 建立索引會(huì)占用磁盤(pán)空間的索引文件。
建立索引
創(chuàng)建表時(shí)建立
-- 第一種方式 create table t1 ( t varchar(20), KEY(t desc) ) -- 第二種方式 create table t1 ( t varchar(20), index aa(t(20)) )
修改表時(shí)建立索引
-- 該語(yǔ)句添加一個(gè)主鍵,這意 味著索引值必須是唯一的,且不能為NULL。 ALTER TABLE tbl_name ADD PRIMARY KEY (column_list); -- 這條語(yǔ)句創(chuàng)建索引的 值必須是唯一的(除了NULL外,NULL可能會(huì)出現(xiàn)多次)。 ALTER TABLE tbl_name ADD UNIQUE index_name (column_list); -- 添加普通索引,索引 值可出現(xiàn)多次。 ALTER TABLE tbl_name ADD INDEX index_name (column_list); -- 該語(yǔ)句指定了索引 為 FULLTEXT ,用于全文索引。 ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list);
刪除索引
drop index t on t;
到此這篇關(guān)于MySQL視圖和索引專篇精講的文章就介紹到這了,更多相關(guān)MySQL視圖和索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL left join操作中on和where放置條件的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于MySQL left join操作中on和where放置條件的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01MySQL運(yùn)維實(shí)戰(zhàn)使用RPM進(jìn)行安裝部署
這篇文章主要為大家介紹了MySQL運(yùn)維實(shí)戰(zhàn)使用RPM進(jìn)行安裝部署實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12MySQL:explain結(jié)果中Extra:Impossible?WHERE?noticed?after?rea
這篇文章主要介紹了MySQL:explain結(jié)果中Extra:Impossible?WHERE?noticed?after?reading?const?tables問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12CentOS7下MySQL5.7安裝配置方法圖文教程(YUM)
這篇文章主要為大家詳細(xì)介紹了CentOS7下MySQL5.7安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01MySQL中UPDATE與DELETE語(yǔ)句的使用教程
這篇文章主要介紹了MySQL中UPDATE與DELETE語(yǔ)句的使用教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12mysql格式化小數(shù)保留小數(shù)點(diǎn)后兩位(小數(shù)點(diǎn)格式化)
今天遇到一個(gè)問(wèn)題,格式化浮點(diǎn)數(shù)的問(wèn)題,用format(col,2)保留兩位小數(shù)點(diǎn),出現(xiàn)一個(gè)問(wèn)題,例如下面的語(yǔ)句,后面我們給出解決方法2013-12-12SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重
在日常的項(xiàng)目開(kāi)發(fā)當(dāng)中,經(jīng)常會(huì)遇到獲取同一屬性相同的記錄,如何獲取記錄時(shí)間最新的那一條,下面這篇文章主要給大家介紹了關(guān)于SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重的相關(guān)資料,需要的朋友可以參考下2023-06-06MySQL slave_net_timeout參數(shù)解決的一個(gè)集群?jiǎn)栴}案例
這篇文章主要介紹了MySQL slave_net_timeout參數(shù)解決的一個(gè)集群?jiǎn)栴}案例,問(wèn)題日志請(qǐng)見(jiàn)正文,本文使用slave_net_timeout參數(shù)解決了這個(gè)問(wèn)題,需要的朋友可以參考下2015-05-05