数据库笔试题及答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数据库笔试题及答案

一、选择题(每题3分,共15分)

以下关于MySQL中主键(PrimaryKey)和唯一键(UniqueKey)的说法,错误的是()

A.主键列不允许为空,唯一键列允许为空(但只能有一个null值)

B.一张表只能有一个主键,却可以有多个唯一键

C.主键和唯一键都会自动创建索引

D.主键可以通过delete语句删除,唯一键不能删除

答案:D

解析:主键和唯一键都可通过ALTERTABLE语句删除(如ALTERTABLE表名DROPPRIMARYKEY;或ALTERTABLE表名DROPUNIQUE索引名;),delete语句仅用于删除表数据,并非删除约束,故D错误。

执行SQL语句“SELECTCOUNT(*)FROMuserWHEREage30ANDstatus=1;”时,若要提高查询效率,最适合创建的索引是()

A.单字段索引:idx_age(age)

B.联合索引:idx_age_status(age,status)

C.单字段索引:idx_status(status)

D.联合索引:idx_status_age(status,age)

答案:B

解析:查询条件包含“age30”和“status=1”,联合索引遵循“最左匹配原则”。当索引为(age,status)时,先通过age筛选出符合条件的记录,再通过status精准匹配,过滤效率更高;若索引为(status,age),因age是范围查询,后续status无法使用索引,故B更优。

事务的ACID特性中,“原子性”指的是()

A.事务执行前后,数据的完整性约束不被破坏(如主键唯一、外键关联正常)

B.事务一旦提交,对数据的修改永久生效,即使系统崩溃也不会丢失

C.多个事务并发执行时,每个事务的操作对其他事务不可见,如同单独执行

D.事务中的所有操作要么全部执行成功,要么全部失败回滚,不会出现部分执行的情况

答案:D

解析:A是一致性(Consistency),B是持久性(Durability),C是隔离性(Isolation),D是原子性(Atomicity),对应事务ACID的核心定义。

以下SQL语句中,能正确查询“每个部门中工资最高的员工姓名和部门名称”的是()(已知表结构:employee(id,name,salary,dept_id);department(dept_id,dept_name))

A.SELECTe.name,d.dept_name

FROMemployeee

JOINdepartmentdONe.dept_id=d.dept_id

WHEREe.salary=(SELECTMAX(salary)FROMemployee);

B.SELECTe.name,d.dept_name

FROMemployeee

JOINdepartmentdONe.dept_id=d.dept_id

JOIN(SELECTdept_id,MAX(salary)max_salFROMemployeeGROUPBYdept_id)t

ONe.dept_id=t.dept_idANDe.salary=t.max_sal;

C.SELECTe.name,d.dept_name

FROMemployeee

LEFTJOINdepartmentdONe.dept_id=d.dept_id

GROUPBYd.dept_name

HAVINGe.salary=MAX(e.salary);

D.SELECTe.name,d.dept_name

FROMemployeee

JOINdepartmentdONe.dept_id=d.dept_id

ORDERBYe.salaryDESC

LIMIT1;

答案:B

解析:A仅查询出全表工资最高的员工,无法按部门分组;C中GROUPBY后仅能查询分组字段和聚合函数结果,直接查询e.name不符合SQL标准;D仅返回工资最高的1条记录,不按部门拆分;B通过子查询先获取每个部门的最高工资,再关联员工表和部门表,精准匹配各部门最高工资的员工,逻辑正确。

以下关于MySQL索引的说法,正确的是()

A.索引越多越好,能提高所有查询的效率

B.对于频繁更新的表,索引越多越好,可减少更新耗时

C.索引会占用磁盘空间,且更新表数据时

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档