事务
dml:增删改语句。
比如A给B赚钱,不能A少了100元但B没有加,这是整个过程。
示意图
#事务的重要概念和具体操作
-- 1.创建一张测试表
CREATE TABLE t27(
id INT,
`name` VARCHAR(32));
-- 2.开始事务
START TRANSACTION
-- 3.设置保存点
SAVEPOINT a
-- 4.执行dml操作
INSERT INTO t27 VALUES(100,'Tom');
-- 5.回退到a
ROLLBACK TO a
-- 6.提交,此时dml才正式生效
COMMIT
注:1. 如果不开始事务,默认情况下,dml执行后就自动提交了,不能回滚。
2. 如果开始一个事务没有创建保存点,可以执行rollback默认回退到事务开始的状态
事务隔离级别
多个连接开启各自事务操作数据库中数据
一些操作
注:repeatable就是一个等级。 这些语句需要在DOS下执行。 注意第五条
这样可以修改默认隔离级别(但是没必要改)。
mysql事务ACID(了解)
mysql表类型
查看所有的存储引擎:
SHOW ENGINES
修改存储引擎:
ALTER TABLE 't29' ENGINE = INNODB
视图View
注意是基表,不是基本
#视图的使用
-- 创建一个视图 emp_view,只能查询emp表的某些信息
-- (empno,ename,job,deptno)
#创建视图
CREATE VIEW emp_view
AS
SELECT empno,ename,job,deptno FROM emp;
#查看视图
DESC emp_view
#查看视图名
SHOW CREATE VIEW emp_view
#删除视图
DROP VIEW emp_view
#视图中可以再使用视图
CREATE VIEW emp_view02
AS
SELECT empno,ename FROM emp_view
视图练习
#针对 emp, dept和salgrade 三张表,创建一个视图
#可以显示雇员编号,雇员名,雇员部门名称和薪水级别
#三表联合查询
CREATE VIEW emp_view
AS
SELECT empno,ename,dname,grade
FROM emp,dept,salgrade
WHERE emp.deptno = dept.deptno
AND (sal BETWEEN losal AND hisal)
Mysql管理
一些操作
#Mysql用户的管理
# 原因:当我们做项目开发时,可以根据不同的开发人员,付给他相应的Mysql操作权限
# 因此,Mysql数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供人员使用
# 创建新的用户
CREATE USER 'shang'@'localhost' IDENTIFIED BY '123456'
-- 1. 'shang'@'localhost'表示用户的完整信息,'shang'是用户名,'localhost'是登录IP
-- 2. 123456是密码,但是存放在mysql.user表时,是password('123456')加密后的密码
# 删除用户
DROP USER 'shang'@'localhost'
# 修改密码(root用户修改其它用户)
SET PASSWORD FOR 'shang'@'localhost' = PASSWORD('123456')
# 但是自己修改自己的密码是永远没问题的
#给 shang 分配 查看news表 和 添加news表 的权限
GRANT SELECT,INSERT
ON shang_01.news
TO 'shang'@'localhost'
#回收 shang 在 shang_01.news 的所有权限
REVOKE ALL ON shang_01.news
FROM 'shang'@'localhost'
#删除用户shang
DROP USER 'shang'@'localhost'
DROP USER jack -- 默认就是 DROP USER 'jack'@'%'
CREATE USER 'smith'@'192.168.1.%' --指定一部分ip地址
DROP USER 'smith'@'192.168.1.%'