MySQL数据库基础03 韩顺平 自学笔记
生活随笔
收集整理的這篇文章主要介紹了
MySQL数据库基础03 韩顺平 自学笔记
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MySQL數(shù)據(jù)庫基礎(chǔ)03
- 事務(wù)
- 事務(wù)介紹
- 事務(wù)的理解
- 事務(wù)細(xì)節(jié)討論
- 事務(wù)隔離級別
- 事務(wù)隔離級別介紹
- 查看事務(wù)的隔離級別
- 事務(wù)隔離級別
- 事務(wù)ACID特性
- 課后作業(yè)
- 表類型和存儲引擎
- 基本介紹
- 主要的存儲引擎/表類型特點(diǎn)
- 細(xì)節(jié)說明
- 三種存儲引擎案例
- 修改存儲引擎
- 視圖
- 看一個(gè)需求
- 視圖基本概念
- 視圖的基本使用
- 視圖的細(xì)節(jié)討論
- 視圖最佳實(shí)踐
- 課后練習(xí)
- mysql管理
- mysql用戶
- 創(chuàng)建用戶
- 刪除用戶
- 用戶修改密碼
- mysql中的權(quán)限
- 給用戶授權(quán)
- 回收用戶授權(quán)
- 權(quán)限生效指令
- 課堂練習(xí)
- 用戶管理細(xì)節(jié)
- Mysql作業(yè)練習(xí)
事務(wù)
事務(wù)介紹
事務(wù)的理解
事務(wù)細(xì)節(jié)討論
-- 討論事務(wù)細(xì)節(jié) -- 如果不開啟事務(wù),默認(rèn)情況下DML自動(dòng)提交,不會(huì)回滾INSERT INTO t27 VALUES (100,'tom');SELECT * FROM t27;-- 2.如果開始一個(gè)事務(wù),你沒有創(chuàng)建保存點(diǎn).你可以執(zhí)行rollback,默認(rèn)就是回退到 -- 你事務(wù)開始的狀態(tài). START TRANSACTION;INSERT INTO t27 VALUES (400,'king');SELECT * FROM t27;INSERT INTO t27 VALUES (500,'scott');ROLLBACK; -- 表示回退到事務(wù)開始的狀態(tài) COMMIT;SELECT * FROM t27;-- 3.你也可以在這個(gè)事務(wù)中(還沒有提交時(shí)),創(chuàng)建多個(gè)保存點(diǎn)比如: savepoint -- aaa; 執(zhí)行dmI,savepoint bbb;-- 4.你可以在事務(wù)沒有提交前,選擇回退到哪個(gè)保存點(diǎn). ROLLBACK TO a; -- 5. mysql的事務(wù)機(jī)制需要innodb的存儲引擎才可以使用,myisam不好使.-- 6.開始一個(gè)事務(wù)的寫法:start transaction, set autocommit=off; SET autocommit = off;INSERT INTO t27 VALUES (400,'king');SELECT * FROM t27;INSERT INTO t27 VALUES (500,'scott');ROLLBACK; -- 表示回退到事務(wù)開始的狀態(tài) SELECT * FROM t27; COMMIT;事務(wù)隔離級別
事務(wù)隔離級別介紹
查看事務(wù)的隔離級別
事務(wù)隔離級別
事務(wù)ACID特性
課后作業(yè)
表類型和存儲引擎
基本介紹
主要的存儲引擎/表類型特點(diǎn)
細(xì)節(jié)說明
三種存儲引擎案例
-- 表類型和存儲引擎 SHOW ENGINES;-- innodb前面一直在使用,支持事務(wù)和外鍵,支持行級鎖 -- myisam -- 1.添加速度塊 -- 2.不支持外鍵和事務(wù) -- 3.支持表級鎖 -- 4.不支持事務(wù) CREATE TABLE t28 (`id` INT, `name` VARCHAR(32))ENGINE MYISAM; START TRANSACTION; SAVEPOINT a;INSERT INTO t28 VALUES (1,'jack');SELECT * FROM t28;ROLLBACK TO a;-- Warning Code : 1196 -- Some non-transactional changed tables couldn't be rolled back # 沒有回滾成功-- memory內(nèi)存級的,關(guān)閉musql服務(wù),表里的數(shù)據(jù)就丟失了,但是表結(jié)構(gòu)還在 -- 1.數(shù)據(jù)存儲在內(nèi)存中 -- 2.執(zhí)行速度很快(沒有IO讀寫) -- 3.默認(rèn)支持索引(hash)CREATE TABLE t29 (`id` INT, `name` VARCHAR(32))ENGINE MEMORY;INSERT INTO t29 VALUES (1,'jack');INSERT INTO t29 VALUES (2,'tom');INSERT INTO t29 VALUES (3,'hsp');SELECT * FROM t29;修改存儲引擎
-- 修改存儲引擎 ALTER TABLE t29 ENGINE = INNODB;視圖
看一個(gè)需求
視圖基本概念
視圖的基本使用
-- 視圖 CREATE VIEW emp_view01 AS SELECT empno,ename,job,deptno FROM emp;SELECT * FROM db_02.`emp`;-- 查看視圖 DESC emp_view01;-- 查詢視圖 SELECT * FROM emp_view01;SELECT a.`empno`,a.`ename`,a.`job`,a.`deptno` FROM emp_view01 a-- 更新成新的視圖 ALTER VIEW emp_view01 AS SELECT empno,ename,job,deptno FROM emp;-- 查看視圖創(chuàng)建語句 SHOW CREATE VIEW emp_view01;-- 刪除視圖 DROP VIEW emp_view01;視圖的細(xì)節(jié)討論
-- 視圖 CREATE VIEW emp_view01 AS SELECT empno,ename,job,deptno FROM emp;SELECT * FROM db_02.`emp`;-- 查看視圖 DESC emp_view01;-- 查詢視圖 SELECT * FROM emp_view01;SELECT a.`empno`,a.`ename`,a.`job`,a.`deptno` FROM emp_view01 a-- 更新成新的視圖 ALTER VIEW emp_view01 AS SELECT empno,ename,job,deptno FROM emp;-- 查看視圖創(chuàng)建語句 SHOW CREATE VIEW emp_view01;-- 刪除視圖 DROP VIEW emp_view01;SELECT * FROM emp;-- 視圖的細(xì)節(jié) -- 1. 創(chuàng)建視圖后,到數(shù)據(jù)庫去看,對應(yīng)視圖只有一個(gè)視圖結(jié)構(gòu)文件(形式: 視圖名.frm) -- emp_view01.frm-- 2. 視圖的數(shù)據(jù)變化會(huì)影響到基表,基表的數(shù)據(jù)變化也會(huì)影響到視圖[insert update delete ] -- 修改視圖會(huì)影響基表 UPDATE emp_view01 a SET a.`job` = 'MANAGER' WHERE a.`empno` = 7369;SELECT * FROM emp_view01;SELECT * FROM emp;-- 修改基表也會(huì)影響視圖 UPDATE db_02.emp a SET a.`job` = 'CLERK' WHERE a.`empno` = 7369;-- 視圖中可以再使用視圖 DESC emp_view01;-- 從emp_view01中選擇出2列,做新視圖 CREATE VIEW emp_view02 AS SELECT empno,ename FROM emp_view01;SELECT * FROM emp_view02;視圖最佳實(shí)踐
課后練習(xí)
CREATE VIEW emp_view03 AS SELECT a.empno empno, a.ename ename, b.dname dname, c.grade grade FROM db_02.`emp` a, db_02.`dept` b, db_02.`salgrade` c WHERE a.`deptno` = b.`deptno` AND a.sal BETWEEN c.losal AND c.hisalSELECT * FROM db_02.`salgrade`; SELECT * FROM db_02.`dept`;DESC emp_view03;SELECT * FROM emp_view03;mysql管理
mysql用戶
創(chuàng)建用戶
刪除用戶
用戶修改密碼
-- mysql用戶管理 SELECT * FROM mysql.user;-- 原因:做項(xiàng)目開發(fā)的時(shí)候,可以根據(jù)不同的開發(fā)人員, -- 賦權(quán)給他相應(yīng)的mysql操作 -- 所以,mysql數(shù)據(jù)庫管理人員(root)根據(jù)需要,創(chuàng)建不同的用戶,供開發(fā)使用-- 1.創(chuàng)建新用戶 -- -- '1234' 是密碼 CREATE USER 'hsp'@'localhost' IDENTIFIED BY '1234';SELECT PASSWORD('1234') FROM DUAL; *A4B6157319038724E3560894F7F932C8886EBFCF *A4B6157319038724E3560894F7F932C8886EBFCFSELECT `host`,`user`,`authentication_string` FROMmysql.`user` ;-- 刪除用戶 DROP USER 'hsp'@'localhost';-- 登錄 -- 默認(rèn)情況下,不同的數(shù)據(jù)庫用戶,能操作的庫和表不同-- 用戶修改密碼 -- 修改自己的密碼 SET PASSWORD = PASSWORD('123');-- 用root用戶修改他人的密碼 SET PASSWORD FOR 'hsp'@'localhost' = PASSWORD('1234');mysql中的權(quán)限
給用戶授權(quán)
回收用戶授權(quán)
權(quán)限生效指令
課堂練習(xí)
shunping用戶
root用戶
-- 演示用戶權(quán)限管理 CREATE USER 'shunping'@'localhost' IDENTIFIED BY '123';CREATE DATABASE testdb;CREATE TABLE testdb.news (`id` INT PRIMARY KEY, `name` VARCHAR(32));INSERT INTO testdb.news VALUES (1,'Jack');GRANT SELECT,INSERT ON testdb.news TO 'shunping'@'localhost';SET PASSWORD FOR 'shunping'@'localhost' = PASSWORD('abc');REVOKE SELECT ON testdb.news FROM 'shunping'@'localhost';SELECT * FROM news;-- 刪除用戶 DROP USER 'shunping'@'localhost';SELECT * FROM mysql.user;用戶管理細(xì)節(jié)
-- 用戶管理細(xì)節(jié) -- 1.在創(chuàng)建用戶的時(shí)候,如果不指定Host,則為% , %表示表示所有IP都有連接權(quán)限 -- create user XXX; CREATE USER ty;SELECT * FROM mysql.user;-- 可以看到Host 是% 表示所有IP都有連接權(quán)限-- 2.你也可以這樣指定 -- create user 'xxx @' 192.168.1.%'表示xxx用戶在192.168.1.*的ip可以登 -- 錄mysql CREATE USER 'ty'@'192.168.%.%';-- 3.在刪除用戶的時(shí)候,如果host不是%,需要明確指定'用戶@'host值' DROP USER ty;DROP USER 'ty'@'192.168.%.%';Mysql作業(yè)練習(xí)
總結(jié)
以上是生活随笔為你收集整理的MySQL数据库基础03 韩顺平 自学笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gmail无法登陆的解决!!
- 下一篇: 机器人抢了我们的工作怎么办?