事务的提出主要是为了解决并发情况下保持数据一致性的问题(类似于多线程) 事务(Transaction)是并发控制的基本单位。所谓的事务,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。 。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
事务和程序的关系:事务和程序是两个概念。一般地讲,一个程序中包含多个事务。
代码如下:
事务管理(ACID)
谈到事务一般都是以下四点(原则)
原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency)
事务前后数据的完整性必须保持一致。
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
索引
通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
索引类型
1.主键索引
索引列中的值必须是唯一的,不允许有空值。
2.普通索引
MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值。
3.唯一索引
索引列中的值必须是唯一的,但是允许为空值。
4.全文索引
只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引。字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引。 MyISAM和InnoDB中都可以使用全文索引。
索引的数据结构
①B树索引 ②哈希索引
删除索引
删除主键索引:
视图
视图是一张虚拟表,可以在视图上进行增删改查受影响的是原表,视图主要是为了保护数据的安全性
创建视图
视图的优点
-
查询简单化。视图能简化用户的操作
-
数据安全性。视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护
-
逻辑数据独立性。视图对重构数据库提供了一定程度的逻辑独立性