还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
sql设计试题及答案
一、文档说明本文档为SQL设计专项练习题及答案,涵盖数据库设计核心知识点,包括数据类型选择、表结构设计、范式理论、索引优化、事务处理、查询逻辑等,适合数据库学习者、开发工程师及相关从业者作为实践练习和知识巩固资料通过试题练习可帮助读者掌握SQL设计的关键原则与实践技巧,提升数据库设计能力
二、SQL设计试题
(一)单项选择题(共30题,每题1分)在设计数据库表时,选择字段数据类型需优先考虑的因素是()A.字段名称可读性B.数据范围与存储效率C.字段是否允许为NULL D.是否需要建立索引以下哪种数据类型适合存储“用户注册时间”且需精确到毫秒()A.DATE B.DATETIME C.TIMESTAMP D.YEAR设计表结构时,主键的主要作用是()A.提高表的查询速度B.唯一标识记录且不可为NULL C.实现表与表的关联D.限制字段取值范围若需在表中存储“用户性别”(男/女/未知),最适合的数据类型是()A.VARCHAR10B.ENUM男,女,未知C.TINYINT D.CHAR1以下关于外键的说法,正确的是()A.外键必须引用其他表的主键B.外键字段允许为NULL时,不会出现孤立记录C.一个表只能有一个外键D.外键值可以与引用表的主键值不一致第1页共10页设计表时,若需确保“用户手机号”唯一且不可重复,应使用的约束是()A.PRIMARY KEYB.UNIQUE C.NOT NULL D.FOREIGN KEY在数据库设计中,1NF(第一范式)要求()A.非主属性完全依赖主键B.消除非主属性对主键的部分依赖C.消除非主属性对主键的传递依赖D.字段值不可再分以下哪种情况适合使用自增主键()A.多表关联且需手动指定ID B.记录数量大且插入频繁,无需人工维护IDC.记录需按ID排序且ID为业务关键字D.跨表数据迁移时需保持ID不变设计索引时,以下字段中最适合建立索引的是()A.频繁更新的字段B.作为WHERE条件过滤的字段C.存储大量重复值的字段D.作为表的主键字段在SQL中,INNER JOIN的作用是()A.保留左表所有记录,右表无匹配则显示NULL B.保留右表所有记录,左表无匹配则显示NULLC.仅保留两表中匹配的记录D.保留左表无匹配的记录,右表有匹配的记录以下哪个函数用于计算表中记录数()A.SUM B.AVG C.COUNT D.MAX关于SQL中的事务,“原子性”(Atomicity)的含义是()A.事务中的所有操作要么全执行,要么全不执行B.事务执行过程中不被其他事务干扰C.事务执行结果能被所有用户看到D.事务的执行结果是一致的第2页共10页若需查询“每个部门的平均工资”,正确的SQL语句是()A.SELECT dept_id,AVGsalary FROMemployees GROUP BYdept_idB.SELECT dept_id,AVGsalary FROMemployees WHEREdept_idC.SELECT dept_id,AVGsalary FROMemployees ORDERBYdept_idD.SELECT dept_id,AVGsalary FROMemployees HAVINGdept_id在SQL中,以下哪种查询类型可以将一个查询结果作为另一个查询的条件()A.连接查询B.子查询C.聚合查询D.交叉连接设计表时,若需记录“数据的创建时间”且需自动填充当前时间,应使用()A.DEFAULT CURRENT_TIMESTAMP B.AUTO_INCREMENTC.CHECK create_time1970-01-01D.UNIQUE create_time以下哪项不属于数据库设计的三大范式()A.1NF B.2NF C.3NF D.4NF在SQL中,索引的主要作用是()A.限制表中数据范围B.提高查询和插入效率C.提高查询效率,降低插入/更新效率D.仅用于数据备份关于外键约束,以下说法错误的是()A.外键字段的数据类型必须与引用字段一致B.外键约束可防止插入孤立记录C.删除引用表中的记录时,外键表的关联记录会自动删除D.外键约束可通过ON DELETECASCADE设置级联删除以下哪种情况会导致SQL查询无法使用索引()第3页共10页A.WHERE条件中使用字段+1B.字段使用函数运算(如UPPERname)C.连接查询时使用内连接D.查询中使用OR连接两个条件在SQL中,视图(View)的主要作用是()A.提高表的查询效率B.简化复杂查询,提供数据安全控制C.自动备份表数据D.替代表进行DML操作设计表时,若需限制“用户年龄”在18-60岁之间,应使用()A.PRIMARY KEYB.UNIQUE C.CHECK ageBETWEEN18AND60D.NOT NULL以下哪种SQL语句可用于修改表结构()A.INSERT B.UPDATE C.ALTER D.DELETE在SQL中,“SELECT*FROM table1LEFT JOINtable2ONtable
1.id=table
2.id”的结果是()A.仅保留table1中与table2匹配的记录B.仅保留table2中与table1匹配的记录C.保留table1所有记录,table2无匹配则显示NULLD.保留table2所有记录,table1无匹配则显示NULL关于事务的隔离级别,“读未提交”(Read Uncommitted)可能导致的问题是()A.脏读B.不可重复读C.幻读D.死锁设计表时,若需存储“用户密码”,正确的做法是()A.直接存储明文密码B.存储密码的MD5哈希值C.存储密码的明文+盐值D.存储密码的SHA256哈希值在SQL中,以下哪个关键字用于创建存储过程()第4页共10页A.CREATE TABLEB.CREATE VIEWC.CREATE PROCEDURED.CREATE TRIGGER以下哪项是SQL注入攻击的主要防范措施()A.使用参数化查询B.为字段添加CHECK约束C.建立外键关联D.定期备份数据设计数据库时,若多个表存在重复字段,合理的处理方式是()A.直接在各表中重复存储B.新建关联表存储重复字段C.使用外键约束强制统一D.忽略重复字段,不做处理在SQL中,“SELECT name,COUNT FROM students GROUPBY nameHAVINGCOUNT1”的作用是()A.查询所有学生姓名及数量B.查询姓名重复次数大于1的学生姓名及数量C.查询姓名不重复的学生姓名及数量D.按姓名分组,统计每组学生数量关于存储过程和函数(Function)的区别,以下说法正确的是()A.存储过程有返回值,函数无返回值B.存储过程可在SQL语句中直接调用,函数不行C.存储过程可包含事务操作,函数一般不包含D.存储过程的参数必须为输入参数,函数只能为输入参数
(二)多项选择题(共20题,每题2分)数据库表设计中,选择数据类型时需考虑的因素有()A.数据范围与精度B.存储空间大小C.是否允许NULL值D.业务含义是否明确以下属于表设计基本原则的有()第5页共10页A.遵循数据库范式(如3NF)B.减少数据冗余C.预留扩展字段(如时间戳)D.所有字段必须设置默认值关于主键设计,以下说法正确的有()A.主键必须唯一B.主键不可为NULL C.一个表只能有一个主键D.主键值应避免频繁修改索引的优点包括()A.提高查询效率B.加速排序操作C.降低插入/更新性能D.优化GROUPBY和DISTINCT操作以下属于SQL中的连接查询类型的有()A.INNER JOINB.LEFT JOINC.RIGHT JOIND.FULL JOIN数据库事务的ACID特性包括()A.原子性(Atomicity)B.一致性(Consistency)C.隔离性(Isolation)D.持久性(Durability)设计表时,以下哪些情况适合使用外键约束()A.多表关联的“一对多”关系B.确保数据引用完整性C.限制字段取值范围D.加速查询效率关于SQL中的子查询,以下说法正确的有()A.子查询可作为另一个查询的条件B.标量子查询返回单个值C.表子查询返回一个结果集D.子查询必须放在FROM子句中以下属于数据库查询优化技巧的有()A.避免使用SELECT*B.合理使用索引C.减少JOIN操作数量D.使用聚合函数替代多次查询关于数据库备份,以下说法正确的有()A.全量备份适用于数据量小的数据库B.增量备份仅备份新增数据第6页共10页C.差异备份比增量备份更节省存储空间D.备份文件需定期恢复测试以下属于SQL中的约束类型的有()A.PRIMARY KEYB.FOREIGN KEYC.UNIQUE D.CHECK关于视图(View),以下说法正确的有()A.视图是虚拟表,不存储实际数据B.视图可简化复杂查询逻辑C.视图可通过ALTER语句修改D.视图不支持DML操作设计表时,以下哪些字段适合建立索引()A.频繁作为WHERE条件的字段B.作为JOIN条件的字段C.频繁排序的字段D.存储大量不同值的字段以下属于SQL注入攻击的危害有()A.窃取数据库数据B.篡改数据C.破坏数据库结构D.提升数据库权限关于事务隔离级别,可能导致“不可重复读”问题的隔离级别有()A.读未提交(Read Uncommitted)B.读已提交(ReadCommitted)C.可重复读(Repeatable Read)D.串行化(Serializable)以下属于数据库设计中“反范式化”的应用场景有()A.提升高频查询性能B.减少JOIN操作C.简化复杂逻辑D.避免数据冗余SQL中的“存储过程”(Stored Procedure)的优点包括()A.减少网络传输量B.提高执行效率C.支持事务操作D.可动态生成SQL语句以下属于SQL中的聚合函数的有()第7页共10页A.SUM B.COUNT C.AVG D.MAX设计表时,以下哪些情况需要考虑并发控制()A.多用户修改同一记录B.多用户查询同一记录C.多用户插入记录D.多用户删除记录关于SQL中的“触发器”(Trigger),以下说法正确的有()A.触发器是自动执行的特殊存储过程B.触发器可在INSERT/UPDATE/DELETE后触发C.触发器可用于数据校验D.过度使用触发器可能影响性能
(三)判断题(共20题,每题1分)SQL中的“DATE”类型可存储时间信息(年、月、日、时、分、秒)()主键字段允许为NULL值()2NF要求消除非主属性对主键的传递依赖()索引的主要作用是提高查询效率,表中索引越多越好()INNER JOIN查询的结果与WHERE条件过滤后的结果完全相同()事务的“一致性”是指事务执行前后,数据库状态保持一致()VARCHAR类型比CHAR类型更节省存储空间()SQL中的“子查询”必须放在括号中()外键约束可防止插入与引用表主键不匹配的记录()视图(View)可通过INSERT语句修改基表数据()“SELECT*FROMstudentsWHERE age18”会导致全表扫描,无法使用索引()存储过程中不能使用变量()数据库设计中,所有表都应遵循3NF,无需考虑性能问题()事务的“隔离性”是指一个事务的执行不被其他事务干扰()第8页共10页存储过程和函数都可以有输入参数和输出参数()“脏读”是指一个事务读取到另一个事务未提交的数据()设计表时,所有字段都应设置NOT NULL约束,避免NULL值()SQL中的“TRUNCATE TABLE”语句可用于删除表中所有数据并重置自增主键()索引会降低INSERT/UPDATE/DELETE的执行速度()数据库备份的最佳实践是“321备份策略”(3份数据、2种介质、1份异地)()
(四)简答题(共2题,每题5分)简述在数据库表设计中,遵循3NF(第三范式)的目的及注意事项描述SQL中索引的作用,以及在设计索引时需注意的3个核心原则
三、参考答案
(一)单项选择题(共30题,每题1分)1-5BBBBA6-10BDBBC11-15CABBA16-20DCCBB21-25CCCAD26-30CABBC
(二)多项选择题(共20题,每题2分)ABCD
2.ABC
3.ABD
4.AB
5.ABCD
6.ABCD
7.AB
8.ABC
9.ABCD
10.ABD
11.ABCD
12.ABC
13.ABCD
14.ABCD
15.AB
16.ABC
17.ABCD
18.ABCD
19.ACD
20.ABCD
(三)判断题(共20题,每题1分)×(DATE仅存储年月日,TIME存储时分秒,DATETIME存储年月日时分秒)×(主键不可为NULL,确保记录唯一标识)×(3NF消除传递依赖,2NF消除部分依赖)×(索引过多会增加插入/更新性能开销,需合理设计)第9页共10页×(INNER JOIN仅保留匹配记录,WHERE条件过滤无关联的记录)×(VARCHAR动态分配空间,CHAR固定长度,短字符串CHAR更高效,长字符串VARCHAR更节省空间)×(视图是否支持DML取决于基表是否可更新,且需满足一定条件)×(若age字段有索引,“age18”可使用索引;若为字符串类型需注意类型转换)×(存储过程可使用变量,如DECLARE@var INT)×(需在范式与性能间平衡,高频查询场景可适当反范式化)×(函数一般仅返回一个值,存储过程可返回多个结果集或输出参数)×(部分场景允许NULL,如可选字段“邮箱”,需根据业务设计)√(索引会增加写操作的维护成本)
(四)简答题(共2题,每题5分)目的减少数据冗余,避免插入/更新/删除异常,保持数据一致性注意事项
①非主属性必须完全依赖主键;
②消除非主属性对主键的部分依赖;
③消除非主属性对主键的传递依赖(5分)作用加速查询和排序操作,提升数据检索效率注意事项
①优先为频繁查询/排序/连接的字段建索引;
②避免在小表、频繁更新的字段上建索引;
③控制索引数量,避免维护成本过高(5分)文档说明本文试题覆盖SQL设计核心知识点,答案简洁准确,可作为SQL设计学习、考试或实践参考资料通过练习可帮助读者掌握数据库设计规范与实践技巧,提升SQL应用能力第10页共10页。
个人认证
优秀文档
获得点赞 0