mysql的事务的特性(ACID)
原子性/一致性/隔离性/持久性
事务的隔离级别( ISOLATION_DEFAULT 是mysql默认的隔离级别,spring默认使用数据库的隔离级别)
Mysql默认的事务隔离级别是可重复读(Repeatable Read)
读未提交 脏读/不可重复读/幻读 很少用,性能好不了多少
读已提交 (oracle/sqlserver) 不可重复读/幻读
可重复读(mysql) 幻读 确保同一事务的多个实例在并发读取数据时,会看到同样的数据行
串行化
不可重复读:因为同一事务在处理可能会有新的commit,所以同一select可能返回不同结果。
幻读:指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行
#视图:由select语句组成的虚拟表.不能对视图 增 ,可以改删,会相互影响基本表
CREATE VIEW v2 AS
SELECT d_name,e_id,e_name FROM employee e,department d
WHERE e.e_depart_id=d.d_id
SELECT * FROM v2
#存储过程:一次执行多条SQL处理业务
DELIMITER //
CREATE PROCEDURE pro1(IN pid INT)
BEGIN
DELETE FROM person WHERE id=pid;
DELETE FROM employee WHERE e_id=pid;
END
//
CALL pro1(1)
mysql添加索引
mysql创建表时添加索引:
CREATE INDEX age_index ON person(age)
//普通索引
alter table table_name add index index_name (column_list) ;
//唯一索引
alter table table_name add unique (column_list) ;
//主键索引
alter table table_name add primary key (column_list) ;
SELECT NOW()
SELECT DATE(NOW())
SELECT CURTIME()
SELECT COUNT(*) FROM employee
SELECT AVG(e_age) FROM employee
SELECT ABS(-100)
SELECT SIN(3)
SELECT CONCAT("zhang","san")
SELECT SUBSTR("zhangsan",2,5)
drop,delete与truncate的区别
drop直接删掉表
truncate删除表中数据,再插入时自增长id又从1开始
delete删除表中数据,可以加where字句。