MySQl 5 事务


事务

       要么都执行  要么不执行

        事务原则:ACID   原子性  一致性   隔离性   持久性  (幻读  脏读)

         

         隔离性:多事务并发访问,数据库为每一个用户开启事务,不被其他事务所扰

        一致性:事务前后数据一致

         原子性:要么都成功  要么都失败

          持久性:事务提交 就不可逆

 脏读:一个事务读取了另一个事务未提交的事务

不可重复读:在一个事务内读取表中的数据,多次结果不同(不一定是错误)

幻读:一个事务读取了别的事务插入的数据,导致前后不一致

set autocommit=0  /*关闭*/

set autocommit=1 /*开启*/  默认   可以手动关闭

-----事务开启----

START  TRANSACTION   标记事务开始   从这个之后的sql都在同一个事务

insert    xx 

----------提交------------------------

commit

---------回滚-----------------

rollback

----------------------事务结束-------------------

set autocommit=1   -----------开启自动提交

-------了解

savefoint     保存点

rollback  to   savepoint    保存点名   -----回滚到保存点

release   savapoint  保存点名   ----撤销保存点·

索引

   MySQL官方对索引的定义为:索引是帮助mysql高效获取数据结构的  提取句子主干   索引就是数据结构

    索引的分类:

主键索引:唯一标识  主键不重复    只有一个列作为主键(PRIMARY KEY)

唯一索引:避免重复的列出现,唯一索引可以重复(UNIQUE   KEY)

常规索引:默认的,index  key关键字设置

全文索引:特定的数据库引擎下才有   MyISAM(fullTEXT)

                   快速定位数据

 索引原则:

     索引不是越多越好

    不要对变动的数据加索引

    小数据量的表不需要加

    索引一般加在常用来查询的字段上

    

权限管理和备份

      用户管理

           SQL可视化管理

           用户表: mysql。user

   -------创建用户

    create  user  kuagshen  identified  by ‘123456’

----------修改密码(修改当前用户密码)

   set  password=password(‘12346’)

----------修改指定用户密码

 set  password  for  狂神=password(‘12346’)

-----------重命名

rename  user   狂神 to   狂神2

-----------授权   

all    privileges 除了授权都能干 

grant   all    privileges  on  *.* to   kuangshen2

查询权限

show  grants  for   kaungshen2   查看指定用户权限

show  grants  for  root@localhost

----root用户权限  :  grant  all  privileges on*。* to'@'localhost‘ with  grant  option

---撤销权限  remove  哪些权限,在哪个撤销,给谁撤销

remove  all  privileges on *。* from  kuangshen2

----删除用户

 Drop  user  kuangshen

Mysql备份

       保证重要的数据不丢失

      数据转移

     

1.直接拷贝物理磁盘

2.可视化工具

3.命令行导出  mysqdump  ss

       规范数据库设计

当数据库比较复杂时  我们就需要设计了

糟糕的数据库设计

      数据冗余   浪费空间

      数据库插入和删除都 会麻烦,异常、

良好的数据库设计

       节省内存空间

       保证数据库的完整性

       方便开发系统

软件开发中,关于数据库的设计

    分析需求:分析业务和需要处理的数据库需求

     概要设计:设计关系图   er

三大范式:

        信息重复

        更新异常    插入异常    删除异常

        第一范式:  原子性   保证每一列不可再分 

       第二范式:满足第一范式   每张表一件事

      第三范式:满足第一  第二    第三范式每一列都和主键直接相关 不能间接相关