就是函數,存儲過程往往是為了實現某個單一的功能而臨時存在的。
存儲過程與函數的區别
1.實現功能不一樣,存儲過程是為實現某個單一功能而設計,函數是為了解決某類型的問題而存在
2.存儲過程沒有返回值,函數必須有返回值
3.存儲過程與函數的參數不一樣
4.存儲過程往往是對表數據進行操作,而函數不是
存儲過程語法
create procedure 過程名字(參數列表)
begin
//過程體,跟函數體一樣
end
定義存儲過程
調用存儲過程
語法:call 過程名(參數列表)
調用
錯誤:out和inout類型的參數必須使用變量來進行傳遞,不能直接使用值
正确:
執行後對外部變量查看
mysql用戶管理
當前都是采用root,超級管理員權限對數據庫進行操作。
當數據庫比較大,而且分工非常明确的時候,通常會創建一些用戶(登錄用戶)來交不同層次的數據用戶,他們擁有的權限是不一樣的。
用戶權限管理。對用戶的增删改查(包括權限)
查看數據庫的用戶信息:mysql->user表
select user,host,password from user;
三個字段的意思:
user:用戶名
host:允許登錄的主機
password:加密後密碼
創建用戶
語法:create user 用戶名 identified by ‘密碼’;
用戶名:用戶名不單止用戶名字還應該包括主機名:’username’@’主機名’
主機名:可以是域名,可以是IP,也可以是類似通配符:’192.168.3.%’;’%’所有電腦都可以訪問
密碼:該處密碼是明文,系統會自動使用password()函數進行加密
如果需要進行通配,那麼需要使用%分号,不能使用*号
代表局域網内的用戶可以訪問
但是,這個時候,用戶隻有登錄的權限,沒有對應數據庫的查看和操作權限
給用戶分配權限
語法:grant 權限列表 on 數據庫.數據表 to 用戶
權限列表
語句
有一種簡單的方式給全部權限給用戶
語法:grant all privileges on 庫.表 to 用戶
效果
回收權限
語法:revoke 權限列表 on 庫.表 from 用戶
用戶管理:用戶是由用戶名和主機名組成
用戶管理的時候,要根據具體需求分配權限。
忘記密碼普通的密碼忘記,隻需要管理員進入到系統,對mysql庫中的user表進行更新
update user set password = password(‘新密碼’) where user=’用戶名’ and host = ‘主機名’;
root用戶忘記密碼了該怎麼辦?
1.重裝,最簡單暴力的操作(一定要注意數據的保護),一般不采用這種方式
2.重置root用戶密碼
重置root用戶密碼
1.停止mysql服務
2.重新啟動mysql服務端,但是不能使用服務管理,需要使用bin目錄下的mysqld.exe
語法:mysqld.exe –skip-grant-tables 重啟mysql服務,但是跳過權限管理
3.直接使用客戶端進入,而不需要密碼
語法:mysql回車
查看當前用戶
4.進入到mysql數據庫修改root用戶的密碼
語法:update user set password = password(‘新密碼’) where user=’root’ and host = ‘localhost’;
5.對權限進行刷新操作
語法:flush privileges;
6.退出系統,重啟mysql服務器,就可以使用新密碼登錄
注意:
1.在修改root密碼的時候,千萬要保證其他用戶進不去(防火牆)
2.修改密碼的時候一定要指定具體用戶和主機名
索引索引指的是一個二進制文件,保存的是二叉樹結構。能夠快速的定位到要查找的數據。類似書的目錄結構。
mysql有以下幾種索引:
主鍵索引,唯一鍵索引,普通索引,全文索引(優化關鍵字,分詞技術sphinx)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!