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 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值