mysql建立用戶視圖 事務存儲過程 觸發器 約束的打怪

建立用戶
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
說明:

  1. 使用 mysql 這個命令行恢復
    2)注意 「<」
    3)注意, 在恢復時, 直接寫庫名 (在恢復是不加表名);

將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();

在這裏插入圖片描述

相關文章
相關標籤/搜索