数据库学习

来源:互联网 发布:世界黑客编程大赛题目 编辑:程序博客网 时间:2024/06/05 10:01

1.数据库系统的特点为高共享、低冗余、独立性高、具有完整性

2.WHERE 子句用来限制 select 语句从表中指定选取得行
GROUP BY 子句用来分组 WHERE子句的输出结果集
HAVING在查询语句中必须依赖于GROUP BY

3.关系数据库设计有需求分析设计、概念设计、逻辑设计、物理设计、编码、测试、运行、进一步修改等几个阶段。在需求分析设计阶段形成需求说明书,概念设计阶段形成概念数据模型(作为进一步设计数据库的依据),逻辑设计阶段形成逻辑数据模型(从 ER 图向关系模式转换、关系视图设计、模式规范化),物理设计阶段形成数据库内部模型(此时涉及具体软件硬件环境)。

4.语句顺序为select, from, where, group by, having, order by, limit

5.范式

6.A: drop table book 是删除整个表
B: truncate table book 是删除表中的数据,删除速度比delete更快,无法撤回(回退)。
C: delete from book 删除数据表中的数据,可以回退,可添加where 子句。

7.SQL SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称

8.数据库中有可能会存在不一致的数据。
造成数据不一致的原因主要有:
数据冗余
如果数据库中存在冗余数据,比如两张表中都存储了用户的地址,在用户的地址发生改变时,如果只更新了一张表中的数据,那么这两张表中就有了不一致的数据。
并发控制不当
比如某个订票系统中,两个用户在同一时间订同一张票,如果并发控制不当,可能会导致一张票被两个用户预订的情况。当然这也与元数据的设计有关。
故障和错误
如果软硬件发生故障造成数据丢失等情况,也可能引起数据不一致的情况。因此我们需要提供数据库维护和数据恢复的一些措施。

9.表T1和T2的字段定义完全相同,T1,T2中各有5条不同的数据,其中T1有2条数据存在于表T2中,语句“select * from T1 union select * from T2”返回几行?

返回8行,union会自动省略重复内容
union all 会保存所有内容

10.连接分为内链接、左外连接、右外连接(INNER JOIN、LEFT JOIN、RIGHT JOIN);
内链接:取两个表的交集,仅显示符合连接条件的记录;
左外连接:显示左表的全部记录及右表符合连接条件的记录;
右外连接:显示右表的全部记录及左表符合连接条件的记录。

11.当要删除的记录在数据库中不存在的时候,是不会报错的。因此在有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是:这两个事务都是delete

12.
1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
例如:
张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。
与此同时,
事务B正在读取张三的工资,读取到张三的工资为8000。
随后,
事务A发生异常,而回滚了事务。张三的工资又回滚为5000。
最后,
事务B读取到的张三工资为8000的数据即为脏数据,事务B做了一次脏读。
2、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
例如:
在事务A中,读取到张三的工资为5000,操作没有完成,事务还没提交。
与此同时,
事务B把张三的工资改为8000,并提交了事务。
随后,
在事务A中,再次读取张三的工资,此时工资变为8000。在一个事务中前后两次读取的结果并不致,导致了不可重复读。
3、幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
例如:
目前工资为5000的员工有10人,事务A读取所有工资为5000的人数为10人。
此时,
事务B插入一条工资也为5000的记录。
这是,事务A再次读取工资为5000的员工,记录为11人。此时产生了幻读。
4、提醒
**不可重复读的重点是修改:
同样的条件,你读取过的数据,再次读取出来发现值不一样了
幻读的重点在于新增或者删除:
同样的条件,第 1 次和第 2 次读出来的记录数不一样**

13.表建立索引时,update,delete,insert是要维护索引的吗?

0 0