日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

11.MYSQL高级(一)

發(fā)布時間:2024/7/5 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11.MYSQL高级(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.賬戶管理

在生產(chǎn)環(huán)境下操作數(shù)據(jù)庫時,絕對不可以使用root賬戶連接,而是創(chuàng)建特定的賬戶,授予這個賬戶特定的操作權(quán)限,然后連接進(jìn)行操作,主要的操作就是數(shù)據(jù)的crud

MySQL賬戶體系:根據(jù)賬戶所具有的權(quán)限的不同,MySQL的賬戶可以分為以下幾種

服務(wù)實例級賬號:,啟動了一個mysqld,即為一個數(shù)據(jù)庫實例;如果某用戶如root,擁有服務(wù)實例級分配的權(quán)限,那么該賬號就可以刪除所有的數(shù)據(jù)庫、連同這些庫中的表

數(shù)據(jù)庫級別賬號:對特定數(shù)據(jù)庫執(zhí)行增刪改查的所有操作

數(shù)據(jù)表級別賬號:對特定表執(zhí)行增刪改查等所有操作

字段級別的權(quán)限:對某些表的特定字段進(jìn)行操作

存儲程序級別的賬號:對存儲程序進(jìn)行增刪改查的操作

賬戶的操作主要包括創(chuàng)建賬戶、刪除賬戶、修改密碼、授權(quán)權(quán)限等

注意:進(jìn)行賬戶操作時,需要使用root賬戶登錄,這個賬戶擁有最高的實例級權(quán)限

?

查看所有用戶

查看user表的結(jié)構(gòu)desc user\G;

主要字段說明:

host表示允許訪問的主機

user表示用戶名

authentication_string表示密碼,為加密后的值

?

查看所有用戶

selecthost,user,authentication_string from user;

創(chuàng)建賬戶并授予權(quán)限

需要使用實例級賬戶登錄后操作,以root為例

常用權(quán)限主要包括:create、alter、drop、insert、update、delete、select

如果分配所有權(quán)限,可以使用all privileges

?

創(chuàng)建賬戶并授權(quán)

語法如下:grant 權(quán)限列表 on 數(shù)據(jù)庫 to '用戶名'@'訪問主機' identified by '密碼';

授權(quán)

語法如下:grant 權(quán)限名稱 on 數(shù)據(jù)庫 to 賬戶1,賬戶2,... with grant option;

示例

step1:使用root登錄

mysql -uroot-p
回車后寫密碼,然后回車

step2:創(chuàng)建賬戶并授予所有權(quán)限,說明如下用戶名為py,密碼為123

操作python數(shù)據(jù)庫的所有對象python.*

訪問主機通常使用百分號%表示此賬戶可以使用任何ip的主機登錄訪問此數(shù)據(jù)庫

訪問主機可以設(shè)置成localhost或具體的ip,表示只允許本機或特定主機訪問

grant all privileges onpython.* to 'py'@'%' identified by '123';

查看用戶有哪些權(quán)限

show grants for py;

step3:退出root的登錄

quit

step4:使用py賬戶登錄

mysql -upy -p
回車后寫密碼,然后回車

?

回收權(quán)限

需要使用實例級賬戶登錄后操作,以root為例

如果不希望某用戶擁有此權(quán)限,可以將此權(quán)限從用戶上撤銷

語法如下:revoke 權(quán)限列表 on 數(shù)據(jù)庫名.* from? '用戶名'@'主機';

?

修改密碼

語法1:不需登錄mysqladmin-u py -p password '新密碼'
例:mysqladmin -u py -p password '123456'
回車后寫密碼,然后回車

?

語法2:使用root登錄,修改mysql數(shù)據(jù)庫的user表

使用password()函數(shù)進(jìn)行密碼加密

注意修改完成后需要刷新權(quán)限

update userset authentication_string=password('新密碼') where user='用戶名';
例:update user set authentication_string=password('123') where user='py';

刷新權(quán)限:flushprivileges

語法1用于賬戶自己修改密碼

語法2用于修改自己或其它賬戶的密碼,一般是dba或經(jīng)理修改員工的密碼

?

刪除賬戶

語法1:使用root登錄dropuser '用戶名'@'主機';
例:drop user 'py'@'%';

語法2:使用root登錄,刪除mysql數(shù)據(jù)庫的user表中數(shù)據(jù)

deletefrom user where user='用戶名';
例:delete from user where user='py';

--操作結(jié)束之后需要刷新權(quán)限flushprivileges

推薦使用語法1刪除用戶

如果主機的字母大寫時,使用語法1刪除失敗,采用語法2方式

?

2.函數(shù)創(chuàng)建

語法如下

delimiter$$
create function 函數(shù)名稱(參數(shù)列表) returns返回類型
begin
sql語句
end
$$
delimiter ;

  • 說明:delimiter用于設(shè)置分割符,默認(rèn)為分號
  • 在“sql語句”部分編寫的語句需要以分號結(jié)尾,此時回車會直接執(zhí)行,所以要創(chuàng)建存儲過程前需要指定其它符號作為分割符,此處使用//,也可以使用其它字符

?

查看python數(shù)據(jù)庫中的函數(shù)

select name,type from mysql.procwhere db='python';

?

調(diào)用語法如下:select 函數(shù)名稱(參數(shù)列表);

刪除函數(shù)語法如下:dropfunction 函數(shù)名稱;

?

臨時變量聲明臨時變量,只能在 begin ... end 體重語法如下

declare變量名 類型 default 默認(rèn)值;
例:declare x varchar(100);

設(shè)置變量值,語法如下

set 變量名=;
例:set x='abc';

?

用戶變量/會話變量

只有在當(dāng)前連接用戶有效,其他連接用戶無法訪問

使用@標(biāo)識聲明用戶變量

使用 select 來查看用戶變量

?

?

系統(tǒng)變量

任何一個用戶都可以訪問

使用 @@來標(biāo)識系統(tǒng)變量

使用 select 來查看系統(tǒng)變量

?

函數(shù)判斷

語法如下

if 條件1 then
語句1;
elseif 條件2 then
語句2;
else
語句
end if;

?

循環(huán)

語法如下

while 條件do
語句;
end while;

退出循環(huán):leave,相當(dāng)于break

退出本次循環(huán):iterate,相當(dāng)于continue

?

3.存儲過程創(chuàng)建

語法如下

delimiter//
create procedure存儲過程名稱(參數(shù)列表)
begin
sql語句
end
//
delimiter ;

說明:delimiter用于設(shè)置分割符,默認(rèn)為分號

在“sql語句”部分編寫的語句需要以分號結(jié)尾,此時回車會直接執(zhí)行,所以要創(chuàng)建存儲過程前需要指定其它符號作為分割符,此處使用//,也可以使用其它字符

?

查看表結(jié)構(gòu)descmysql.proc\G;

查看python數(shù)據(jù)庫的所有存儲過程

select name,type,body from mysql.procwhere db='python';

?

調(diào)用語法如下:call 存儲過程(參數(shù)列表);

刪除語法如下:drop procedure 存儲過程名稱;

?

存儲過程和函數(shù)的區(qū)別

相同點

1.存儲過程和函數(shù)都是為了可重復(fù)的執(zhí)行操作數(shù)據(jù)庫的 sql 語句的集合.

2.存儲過程和函數(shù)都是一次編譯,就會被緩存起來,下次使用就直接命中緩存中已經(jīng)編譯好的sql, 不需要重復(fù)編譯

3.減少網(wǎng)絡(luò)交互,減少網(wǎng)絡(luò)訪問流量

不同點

1.標(biāo)識符不同,函數(shù)的標(biāo)識符是 function, 過程:procedure

2.函數(shù)中有返回值,且必須有返回值,而過程沒有返回值,但是可以通過設(shè)置參數(shù)類型(in,out)來實現(xiàn)多個參數(shù)或者返回值

3.函數(shù)使用 select 調(diào)用,存儲過程需要使用 call 調(diào)用

4.select 語句可以在存儲過中調(diào)用,但是除了 select ... into 之外的 select 語句都不能再函數(shù)中調(diào)用

5.通過 in out 參數(shù),過程相關(guān)函數(shù)更加靈活,可以返回多個結(jié)果

6.在實際開發(fā)中根據(jù)個人喜好選擇使用函數(shù)或者存儲過程

總結(jié)

以上是生活随笔為你收集整理的11.MYSQL高级(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九色蝌蚪91 | 成人毛片在线精品国产 | 精品影视 | 亚洲第一天堂久久 | 久久亚洲天堂网 | 日日干夜夜艹 | 91麻豆精品在线观看 | 永久免费精品影视网站 | 黄色日本视频 | 日批视频免费观看 | 久久爱影视 | 国产精品一品二区三区的使用体验 | 亚洲成a人v欧美综合天堂麻豆 | 一区二区日本视频 | 国产黄色片在线免费观看 | av卡一卡二 | 一级片免费观看 | 国产又粗又长又黄视频 | 色中文| 欧美乱妇一区二区三区 | 日韩精品在线第一页 | 欧美大片在线播放 | 噼里啪啦国语版在线观看 | 丁香在线| 欧美高清日韩 | 性生生活大片又黄又 | 884aa四虎影成人精品一区 | 三年中文在线观看中文版 | 欧亚乱熟女一区二区在线 | 日韩黄色免费 | 少妇精品视频一区二区 | 三级理伦 | 少妇xxxx69| 最新日韩在线 | 美女扒开内裤让男人桶 | 国产亚洲一区二区不卡 | 免费黄色片视频 | 欧美成人一区二区三区片免费 | 涩五月婷婷| 神秘马戏团在线观看免费高清中文 | 淫视频在线观看 | 欧美亚洲一区二区三区 | 日本黄色一区二区 | 国产精品主播在线 | 国产一区网站 | ass极品国模人体欣赏 | xx99小雪| 欧美一级久久 | 911毛片| 永久免费精品影视网站 | 青娱乐青青草 | 亚洲天堂黄 | 欧美成人做爰大片免费看黄石 | 亚洲欧美999| 国产一区二区三区四区五区美女 | 午夜特级毛片 | 依人在线 | 迈开腿让我尝尝你的小草莓 | 成年人色片| 97超视频在线观看 | 视频一区二区在线播放 | 东京热加勒比无码少妇 | 波多野结衣av中文字幕 | 视频1区 | 91成人入口 | 久爱视频在线 | 久久精品偷拍视频 | www激情| av拍拍拍 | 国产精品看片 | 欧美人与物videos另类 | 自拍偷拍在线播放 | 日韩中文字幕免费在线观看 | 182在线视频| 日韩av一区二区在线播放 | 囯产精品一品二区三区 | 本站只有精品 | 欧美久久久久久久久久久 | 一区二区三区日韩欧美 | 天堂av2014 | 久久久蜜桃 | 免费三片在线观看网站v888 | 四虎在线视频免费观看 | 日本伦理片在线播放 | 亚洲在线观看视频 | 在线观看欧美一区二区三区 | 国产人妻777人伦精品hd | 国产偷人视频 | 精品一区二区三区中文字幕 | 久久综合久色欧美综合狠狠 | 黑人一区二区三区 | 黄片毛片一级 | 免费的黄色一级片 | 国产粉嫩在线观看 | 中文字幕第18页 | 亚洲免费视频一区二区 | 国产h自拍| 一级片免费播放 | 狠狠一区二区 |