MySQL总结

1.事务隔离级别:多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个连接在获取数据时的准确性。如果不考虑隔离性,可能会引发脏读、不可重复读、幻读。 脏读:就是一个事务读到另一个事务没有提交的数据。不可重复读:指一个线程中的事务读取到了另外一个线程中提交的update的数据。幻读:指一个线程中的事务读取到了另外一个线程中提交的insert的数据。隔离级别有四种:读未提交(Read uncommitted)、读以提交(Read committed)、可重复读(Repeatable read)、可串行化(Serializable)

(1) 查看当前会话隔离级别
SELECT @@tx_isolation;

(2) 查看系统当前隔离级别
SELECT @@global.tx_isolation;

(3) 设置当前会话隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

(4) 设置系统当前隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;

演示mysql事务隔离级别开启2个控制台:

 

SELECT @@tx_isolation;
-- mysql> SELECT @@tx_isolation;
-- +-----------------+
-- | @@tx_isolation  |
-- +-----------------+
-- | REPEATABLE-READ |
-- +-----------------+
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

-- mysql> SELECT @@tx_isolation;
-- +-----------------+
-- | @@tx_isolation  |
-- +-----------------+
-- | READ-UNCOMMITTED |
-- +-----------------+

start transaction;

use fu_db02;

CREATE TABLE `account`(
    id INT,
    `name` VARCHAR(32),
    money INT); 

select * from account;

insert into account values(100,'tom',1000);

-- +------+------+-------+
-- | id   | name | money |
-- +------+------+-------+
-- |  100 | tom  |  1000 |
-- +------+------+-------+

2.事务的特性:

原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰。持久性:事务一旦提交,就应该被永久保存起来。

3.MySQL的表类型由存储引擎决定,主要包括MyISAM、innoDB、Memory等。MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAM、MYISAM、InnoBDB。

innodb 存储引擎:1.支持事务 2.支持外键 3.支持行级锁

myisam 存储引擎:添加速度快 2.不支持外键和事务 3.支持表级锁
CREATE TABLE t24(
    id INT,
    `name` VARCHAR(32)) ENGINE MYISAM
START TRANSACTION;
SAVEPOINT t1;
INSERT INTO t24 VALUES(1,'jack');
SELECT * FROM t24;
ROLLBACK TO t1;

memory 存储引擎:数据存储在内存中[关闭了MySQL服务,数据丢失,但是表结构还在] 2.执行速度很快(没有IO读写) 3.默认支持索引(hash表)
CREATE TABLE t25(
    id INT,
    `name` VARCHAR(32)) ENGINE MEMORY
DESC t25;
INSERT INTO t25 VALUES(1,'tom'),(2,'jack'),(3,'milan');
SELECT * FROM t25;

修改存储引擎:alter table 表名 engine = 存储引擎;

4.视图是虚拟的表,视图是根据基表(可以是多个基表)来创建的。通过视图可以修改基表的数据。基表的改变,也会影响到视图的数据。

创建视图
create view 视图名 as select语句

修改视图
alter view视图名 as select语句

查看视图
show create view 视图名

删除视图
drop view 视图1,视图2

CREATE VIEW emp_view01
    AS
    SELECT empno,ename,job,deptno FROM emp;
 DESC emp_view01;
 SELECT * FROM emp_view01;
 SHOW CREATE VIEW emp_view01;
 DROP VIEW emp_view01;
 UPDATE emp_view01
    SET job = 'MANAGER'
    WHERE empno = 7369;
 SELECT * FROM emp;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值