笔试题:数据库 (1)

1. 数据库正确执行的四个基本要素是什么?

ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

2.(B )保存所有的临时表和临时存储过程。

A. master数据库 B. tempdb数据库C. model数据库D. msdb数据库

SQL Server 中4个系统数据库,Master、Model、Msdb、Tempdb。

Master:记录了SQL Server所有系统信息。包括所有的登录、系统设置信息、初始化信息、其他系统数据库、用户数据库等,相关信息。

master 数据库不可用时,SQL Server 无法启动。 SQL Server 2005 中为resource数据库。

Model:在 SQL Server 实例上创建的所有数据库的模板。始终存在于 SQL Server 系统中。

修改 model 数据库,之后创建的所有数据库都将继承这些修改。

Msdb:代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。

Tempdb:一个临时数据库,它为所有的临时表、临时存储过程及其他临时操作提供存储空间。

3. mysql 数据库有选课表 learn(student_id int,course_id int),字段分别表示学号和课程编号, 现在想获取每个学生所选课程的个数信息,请问如下的 sql 语句正确的是()

 A. select student_id,sum(course_id)from learn

 B. select student_id,count(course_id)from learn group by student_id

 C. select student_id,count(course_id)from learn

 D. select student_id,sum(course_id)from learn group by student_id

解析:SQL语句中SUM与COUNT的区别。

SUM: 记录值求和。

COUNT: 记录数求和。

4. 数据库中数据不一致产生的根本原因有哪些?

造成数据不一致的原因主要有:

(1) 数据冗余。

如果数据库中存在冗余数据,比如两张表中都存储了用户的地址,在用户的地址发生改变时,如果只更新了一张表中的数据,那么这两张表中就有了不一致的数据。

(2) 并发控制不当。

比如某个订票系统中,两个用户在同一时间订同一张票,如果并发控制不当,可能会导致一张票被两个用户预订的情况。当然这也与元数据的设计有关。

(3) 故障和错误。

如果软硬件发生故障造成数据丢失等情况,也可能引起数据不一致的情况。因此我们需要提供数据库维护和数据恢复的一些措施


4. 简述数据库中INNER JOIN、LEFT JOIN、RIGHT JOIN的区别?

INNER JOIN 关键字

在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

左连接-left join:把左边的表的元组全部选出来尽管有些分数表是没数据的,也选了出来。

右连接-right join:把右边表的数据全部取出,不管左边的表是否有匹配的数据。

Table A
aid   adate 
1      a1 
2      a2 
3      a3

TableB

bid bdate 
1    b1 
2   b2 
4    b4 
两个表a,b相连接,要取出id相同的字段 
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 
此时的取出的是: 
1 a1 b1 
2 a2 b2 

那么left join 指: 
select * from a left join b on a.aid = b.bid 
首先取出a表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
3 a3 空字符 

同样的也有right join 
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。 
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值

你可能感兴趣的:(笔试题:数据库 (1))