mysql知识

mysql概念知识

1. 数据库的三范式:第一范式,一张表中每一列都是不可拆分的原子数据,如地址信息,将可以拆分的数据存到另一张表;第二     范式,每一列内容与主键相关,存在联合主键,则存在部分相关,将当前关联数据存到另一张表;第三范式,表中不能存在不     依赖主属性的列。第三范式一定属于第二范式,第二范式一定属于第三范式。

2.char和varchar:char存储容量较小,varchar容量大。char是固定长度,存入字符长度小于限定长度补空格,varchar是可变长    度,小于最大长度正常存入。

3.float,double和decimal:float是单精度浮点型,double是双精度浮点型,decimal是定点型;float和double不指定精度时会按      实际精度保存,decimal会按整数位10,小数位未0表示;

4. innoDb存储引擎的b+tree将数据存放在叶子节点,MyIsam的b+tree叶子节点存放数据的地址。

5. ACID:

    原子性(Atomicity):事务中的所有操作是一个原子操作,要么全部成功,要么全部失败。

    一致性(Consistency):数据库当前状态和事务执行后的状态一直。

    隔离性(Isolation):事务之间互不干扰。

    持久性(Durability):事务一旦提交就是永久性的,会将结果写入磁盘。

6. 事务隔离:主要作用于多个事务修改同一张表

     READ_UNCOMMITTED(读未提交):事务A正在执行修改数据,事务B可以读到事务A未提交的数据。如果事务A之完成后                                                                        回滚,会导致事务b读出来的是脏数据。(脏读)

     READ_COMMITED(读提交):事务A正在执行,还未提交的情况下,事务B只能读到事务A未修改之前的数据。如果事务B                                                             先执行一次查询,这时事务A将更改提交,事务B再次执行查询,发生两次同样的查询,结果                                                           不一致。(不可重复读)。

     REPEATABLE_READ(可重复读):在事务a开始执行的时候获取数据库当前快照,第二次查询通过数据库快照查询,保证                                                                     两次查询结果一致(数据库的默认级别)。当事务A更新表中所有数据时,事务b向数                                                                     据库中插入一条数据,导致事务A执行完成后存在未更新数据(幻读)。

     SERLALIZABLE(序列化):序列化是通过对查询语句加入共享锁实现(亲测并非事务阻塞,查看网上资料发现都在说事务                                                        顺序执行)。可以避免以上所有的问题。

7.视图:

   视图就是一个select语句查询结果集的虚拟表。不存储具体数据。

   视图的优点:可以方便查询,减少sql的复杂度;更加安全,可以将数据库授权命令定位到行列级别。

   视图中的修改:视图中只存一张表的数据,对视图中数据可以进行增删改操作,且更改会作用到原表。

8. 存储过程:

    存储过程是在大型数据库系统中,一组完成特定功能的sql语句集,一次编译后不需要再次编译。

    扩展:jdbc多次执行也不需要编译,他们之前有什么关联呢?jdbc是通过将sql发送给数据库获得编译后的结果,之后的调用直               接发送编译后的语句。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值