mysql從入門到精通《四》

2021-08-19 23:02:26 字數 2624 閱讀 2849

三、mysql高階 (接上篇)

1、檢視

檢視就是一條select語句執行後返回的結果集,所以我們在建立檢視的時候,主要的工作就落在建立這條sql語句上。

檢視是對若干張基本表的引用,一張虛表,查詢語句執行的結果,不儲存具體的資料(基本表資料發生變化以後,檢視也會跟著改變)

定義檢視

建議以v_開頭

create view 檢視名稱 as select語句;

檢視檢視

檢視表會將所有檢視也會顯示出來

show tables;
使用檢視
select * from 檢視名;
刪除檢視
drop view 檢視名;
檢視的作用:

1.提高了重用性,就像乙個函式

2.對資料庫重構,卻不影響程式的執行

3.提高了安全效能,可以對不同的使用者

4.讓資料更加清晰

2.事務

所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位

事務的四大特性:

原子性(atomicity):乙個事務必須被視為乙個不可分割的最小單位,整個事務中的操作要麼都執行,要麼都不執行,對於乙個事務來說,不可能只執行其中一小部分操作,這就是事務的原子性

一致性(conssistency):資料庫總是從乙個一致性的狀態轉換到另乙個一致性的狀態

隔離性(isolation):通常來說,乙個事務所做的修改在提交以前,對其他事務是不可見的

永續性(durability):一旦事務提交,則其所做的修改會被永久儲存到資料庫(即使系統崩潰,修改的資料也不會丟失)

事務命令

需要注意的是表的引擎型別必須是innodb型別才可以使用事務,想要確認表的引擎是否是innodb,可以使用 show create table 表名;語句來檢視

開啟事務

begin;

或者start transaction;

提交事務

commit;

回滾事務

rollback;

3.索引

索引是一種特殊的檔案(innodb資料表上的索引是表空間的乙個組成部分),它們包含著對資料表裡所有記錄的引用指標

建立索引

create index 索引名稱 on 表名(欄位名(字段長度))

此處 字段長度必須和建立該字段時定義的長度保持一致

檢視索引

show index from 表名;

刪除索引

drop index  索引名稱 on 表名;

注意:建立太多的索引會影響更新和插入的速度,因為它需要同樣更新每個索引檔案,建立索引會占用磁碟空間

4.執行時間監控

所謂執行時間監控就是一條sql語句 從開始執行到結束所需要的時間,而開啟執行時間監控以後,可以檢視該時間

開啟執行時間監控

set profiling=1;

檢視執行時間

show profiles;

關閉執行時間監控:

set profiling=0;

5.mysql賬戶管理

賬戶的操作主要包括建立賬戶、刪除賬戶、修改密碼、授權許可權等

授予許可權

(1)、檢視所有使用者

所有的使用者資訊都儲存在mysql資料庫中的user表中

檢視user表的結構

desc user;
主要字段說明:

檢視所有使用者

select host,user,authentication_string from user;
(2)、建立賬戶授權

建立賬戶&授權

grant 許可權列表 on 資料庫 to '使用者名稱'@'訪問主機' identified by '密碼';
訪問主機通常使用 百分號% 表示此賬戶可以使用任何ip的主機登入訪問此資料庫訪問主機可以設定成 localhost或具體的ip,表示只允許本機或特定主機訪問

檢視使用者有哪些許可權

show grants for 使用者名稱@訪問主機;
賬戶操作

(1),修改許可權

grant 許可權名稱 on 資料庫 to 賬戶@主機 with grant option;
(2)、修改密碼

使用root登入,修改mysql資料庫的user表

使用password()函式進行密碼加密

update user set authentication_string=password("新密碼") where user="使用者名稱";
修改密碼後需要重新整理許可權:

flush privileges;
(3)、刪除賬戶

使用root登入,然後將mysql資料庫中user表中所對應的要刪除的賬戶給刪除掉,然後重新整理許可權即可

delete from user where user="要刪除的賬戶名";

6.mysql主從同步配置

關於主從同步配置請檢視筆者另外一篇文章,奉上鏈結mysql主從同步配置

MySQL從入門到精通(四)

實際應用中,我們會主動打破第三正規化,提公升查詢效率 物理設計 設計資料庫的物理結構,根據資料庫的邏輯結構來選定rdbms 比如 oracle,mysql等 並設計和試試資料庫的儲存結果,訪問方式 將資料庫結構和資料落庫 禁止對線上資料庫進行壓測 禁止從開發環境連線測試或生產資料庫 組合索引的字段匹...

mysql從入門到精通

在sql語言中,用join實現表與表的關聯,用on指定聯合表的查詢條件,如 實現三表聯查,可以用table1.table2.來排列 顯示資訊的先後順序 select from user left join address on user id address.user id left join us...

Matlab從入門到精通(四)

student.test 99 56 96 87 67 69 87 76 92 student.name wu qing student.weight 68 student.height 1.72 student.num 2003214091 student.add school of civil ...