Mysql查漏补缺笔记

时间:2021-10-16 15:03:49

查漏补缺笔记2019/05/19

文件格式后缀

数据库文件的扩展名为.DBC

数据表文件的扩展名为 .DBF

表单文件的扩展名为 .SCX

项目文件的扩展名为 .PJX

丢失修改,脏读,不可重复读

事务之间的对数据的并发操作会带来三种问题:丢失修改,脏读,不可重复读。

丢失修改:一个事务读取一个数据时,另外一个事务也访问该同一数据。那么,在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。

脏读:当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,根据脏数据的操作可能是不正确的。

不可重复读:一个事务内多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为是不可重复读。

超键,候选键,主键

超键:在一个关系表中,能唯一标识一行的属性或属性集称为关系的超键。

候选键:如果一个属性集能唯一标识行,且又不含多余的属性,那么这个属性集就称为关系的候选键。

主键:如果一个关系表中有多个候选键,则选择其中一个键作为关系的主键,用主键可以表示任意两行记录不相同。

构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation)

最小关系系统仅支持数据结构s和数据操作I

关系范式

关系范式:

1NF:指列的原子性,即列不可再分为其他几列;

2NF:包含1NF,外加:(1)表必须有主键;(2)未包含在主键中的列必须完全依赖于主键

3NF:包含2NF,外加:非主键列必须直接依赖于主键,不可存在传递依赖

系统设计

1需求分析阶段,分析用户需求

2概念设计阶段,设计E-R图形

3逻辑设计阶段,设计表格

5物理设计阶段,设计数据库的存储方式和存储路径

6实现阶段

7实施维护阶段

数据库语言

DQL(Data Query Language):数据查询语言

关键字:select

查询数据

DML(Data Manipulation Language):数据操作语言

关键字:insert、delete、update

插入、删除、更改数据

DDL(Data Denifition Language):数据定义语言

关键字:create、drop、alter

创建、删除、更改表结构

TCL(Trasactional Conrtol Language):事务控制语言

关键字:commit、rollback

用来提交和回滚事务

DCL(Data Conrtol Language):数据控制语言

关键字:grant、revoke

用来设置或更改数据库用户或角色权限

两段协议

两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)

​ 加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。

​ 解锁阶段:当事务释放了一个*以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作

​ 两段锁协议要求每个事务中,所有的*请求先于所有的解锁请求,事务T1前面都是加锁阶段阶段,后面都是解锁阶段满足要求。

而事务T2又加锁又解锁,不满足要求。

SQL联表查询,函数substr,right

A INNER JOIN B:返回A和B中符合on条件式的记录

A LEFT JOIN B:返回A中的所有记录和B中符合on条件式的记录

A RIGHT JOIN B:返回B中的所有记录和A中符合on条件式的记录

SUBSTR用法:

1.SBUSTR(str,pos);

就是从pos开始的位置,一直截取到最后;(A√)

2.1.SBUSTR(str,pos,len);

就是从pos开始的位置,截取len长度;(B√)

RIGHT用法

right(a,b)函数表示的是从字符表达式最右边一个字符开始返回指定数目的字符.若 b 的值大于 a 的长度,则返回字符表达式的全部字符a.如果 b 为负值或 0,则返回空字符串.

(D√)