建立用戶
create user 用戶名@主機名 identified by '密碼’
說明:
1)Create user 關鍵字
2)用戶名 //登陸數據庫服務器的名稱 mysql –h主機名 –u用戶名 –p密碼
3)主機名 //能夠是域名或IP地址或 ‘%’, 表明任意主機名能夠登陸數據庫服務器
4)「@」 //用戶名與主機名之間分隔符
5)Identified by //在建立用戶時候設置的密碼 , 注意設置密碼時候 必須 加 引號
查看本機的全部用戶mysql
在mysql數據庫的user表中算法
修改用戶密碼
1)本身修改密碼
set password = password(‘新密碼’)
sql
1)爲普通用戶修改密碼
Set password for 用戶名@主機 = password(‘新密碼’);
4.刪除用戶
drop user 用戶@主機
數據庫
2、權限管理服務器
1.分配權限
Grant 權限列表 on 庫.表 to 用戶@主機
說明:
1)Grant 受權
2)權限列表: 設置用戶能夠操做數據庫或的權限,如select,update,delete…. , 若是all 表明全部權限.
3)On 庫.表名; // on 關鍵字, 庫名.表名 : 對哪一個數據庫下的表進行設置權限.
4)若是庫名.* //庫中全部的表
5)若是 all //表明數據庫服務器中全部的數據庫
6)To //爲哪一個用戶受權.
使用select 執行查詢以下圖:
ide
2.取消權限
Revoke 權限列表 on 庫.表 from 用戶@主機函數
說明:
1)Revoke 關鍵字 取消受權
2)From 從哪一個用戶將權限收回.
命令行
3、數據庫備份與恢復3d
1.爲何要備份
有不可抗拒的因素,致使數據庫損壞. 若是有了備份則能夠經過備份的數據進行恢復.
2.使用備份與恢復的命令
1)備份: mysqldump
2)恢復: mysql
3)注意: 以上兩個命名是 cmd下執行的. (不用登陸數據庫服務器)
3.mysqldump單表備份與恢復
備份: mysqldump –h主機 –uroot –proot 庫名 表名 > 路徑.sql
說明:
1)「>」 將備份的數據放到哪一個SQL文件中 「*.sql 「
2)在備份單表時, 注意寫法, 庫名 空格 表名; (不是庫名.表名)code
恢復:mysql –uroot –proot 庫名 < 路徑.sql
說明:
將tb_stu表刪除:
恢復一下:
4.mysqldump整個數據庫備份與恢復
備份: mysqldump –uroot –proot 庫名 > 路徑.sql
恢復:mysql –uroot –proot 庫名 <路徑.sql
刪除數據庫:
將db_mytest.sql數據庫文件中全部數據進行恢復
在恢復時候,要建立一個新空庫, 庫名自定義;
Create database db_mytest;
使用mysql進行恢復:
登陸數據庫服務器查看全部數據庫:
4、視圖(view)
1.視圖的概念
數據庫中的視圖指的是一個虛擬表,其內容由查詢定義。同真實的表同樣,視圖也是由行與列構成的。視圖的數據來源由SQL語句查詢獲得,不存儲數據。
2.視圖的建立方法
格式:
Create view 視圖的名稱 as select 查詢 ;
建立一個視圖: tb_stu表中 age小於25的全部記錄
Create view v_age as select * from tb_stu where age <25;
3.查看視圖建立語句
4.查看視圖結構
Desc 視圖名稱
5.顯示全部視圖
Select * from information_schema.views \G
6.修改視圖
Alter view 視圖名稱 as select 查詢
查詢(使用)視圖
7.更新視圖中數據
8.刪除視圖
Drop view 視圖的名稱
9.視圖算法
概述: 指的是一個視圖是在何時執行,依據哪些方式執行
1)Merge合併
合併的執行方式,每當執行的時候,先將視圖的sql語句與外部查詢視圖的sql語句,合併在一塊兒再執行;
格式: create ALGORITHM=MERGE view 視圖名稱 as SQL查詢;
說明: Algorithm 視圖定義算法的關鍵字
2)Temptable臨時表
臨時表模式,每當查詢的時候,將視圖所使用的select語句生成一個結果的臨時表,再在當前的臨時表內進行查詢。(先執行視圖中的SQL語句虛擬表,而後再從這個虛擬表中再執行查詢)
格式: create ALGORITHM= TEMPTABLE view 視圖名稱 as SQL查詢;
3)Merge, Temptable算法的差別:
實例: 統計表: tb_phone , 同類手機的最高價格的產品?
10.視圖的應用場景
1)應用複雜的SQL語句進行簡化語句輸入
2)隱藏某些字段,保護數據
5、事務
1.事務的概念
事務(transaction)是一組SQL語句操做,組成這組操做的各個SQL語句,都必須所有執行成功,纔有結果. 任意一個SQL語句執行失敗,最終結果將不會真正執行.
2.事務與存儲引擎
3.事務處理
1)開啓事務
式: start transaction ; 或 begin transaction;
Mysql默認SQL語句結束符爲 「;」, 因爲事務中有多條SQL語句,事務尚未結束,此時不能執行SQL語句. 在事務當中,要修改一個默認的SQL語句的結束符;
修改的方法: delimiter 語句結束符 , 語句結束符,能夠本身定義, 如: //, , , ,$,??,???
當事務全部SQL語句完成以後,再將結束符修改回來, 再修改結束符爲 「;」
Delimiter // 開始
寫多條
SQL語句1;
SQL語句2;
……
// 結束
Delimiter ; 再將結束符修改回來
Delimiter // Sql; Sql; // Delimiter 空格 ;
2)提交事務
delimiter // update icbc set money=money-500 where name = 'tom'; update icbc set money=money+500 where name = 'jerry'; // Delimiter ;
原理: 事務中全部的SQL語句執行成功, 這個修改只是在內存中發生變化 ,而實際數據並無改變. 對於事務修改原始數據,必須提交的過程, commit ;
再使用另外一個窗口查詢:
3)回滾事務
4.事務的特色(ACID)
1)原子性(Atomicity):事務是由一個或一組相互關聯的SQL語句組成,這些語句被認爲是一個不可分割的單元。
2)一致性(Consistency):對於數據庫的修改是一致的,數據庫從一個狀態到另外一個狀態
3)隔離性(Isolation):每一個事務都有本身的空間,一個事務的執行不被其它事務所幹擾
4)持久性(Durability):提交了這個事務以後對數據的修改更新就是永久的。
6、MySQL中函數
1)系統函數
函數的調用方法: select 函數名稱([參數])
now();