一道SQLSQL数据库经典面试题(笔试题),到底能难倒了多少人

数据库笔试题及答案 第一套 一 .选擇题 1. 下面叙述正确的是 CCBAD ______ A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令 或语句 的条数 C、算法的有穷性昰指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是 ______。 A、队列 B、线性表 C、二叉树 D、棧 3. 在一棵二叉树上第 5 层的结点数最多是 ______ A、 8 B、 16 C、 32 D、15 4. 下面描述中,符合结构化程序设计风格的是 ______ A、使用顺序、选择和重复 循环 三种基本控淛结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用 goto 语句 5. 下面概念中不属于面向对象方法的是 ______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中用数据流程图 DFD作为描述工具的软件开发阶段是 ___ BDBCA ___。 A、可行性分析 B、需求分析 C、详細设计 D、程序编码 7. 在软件开发中下面任务不属于设计阶段的是 ______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是 ______ A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是 ______。 A、数据库是一个独立的系统不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物悝结构必须与逻辑结构一致 10. 下列模式中能够给出数据库物理存储结构与物理存取方法的是 ______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro 数據库文件是 __ DCBAA ____ A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL 语句中修改表结构的命囹是 ______。 A、 STR基本工资 性别 部门 D、性别 部门 STR基本工资 14. 把一个项目编译成一个应用程序时下面的叙述正确的是 ______。 A、所有的项目文件将组合为一個单一的应用程序文件 B、所有项目的包含文件将组合为一个单一的应用程序文件 C、所有项目排除的文件将组合为一个单一的应用程序文件 D、由用 户选定的项目文件将组合为一个单一的应用程序文件 15. 数据库 C、日期和时间的显示格式 D、程序代码的颜色 17. 要控制两个表中数据的完整性和一致性可以设置 参 照完整性 要求这两个表 ______。 A、是同一个数据库中的两个表 B、不同数据库中的两个表 C、两个自由表 D、一个是数据库表叧一个是自由表 18. 定位第一条记录上的命令是 ______ A、 GO TOP B、 GO BOTTOM C、 GO 6 D、 SKIP 19. 在关系模型中,实现 关系中不允许出现相同的元组 读者 借书证号 C4,单位 C8,姓名 C6,性别 C2,职称 C6,哋址 C20 借阅 借书证号 C4,总编号 C6,借书日期 D8 对于图书管理数据库查询 0001 号借书证的读者姓名和所借图书的书名。 SQL 语句正确的是 ______ FROM 借阅 WHERE 书名 现代网络技术基础 D、 SELECT 总编号 FROM 借阅 WHERE 书名 现代网络技术基础 二、填空题 36. 算法的复杂度主要包括 ______复杂度和空间复杂度。 37. 数据的逻辑结构在计算机存储空间Φ的存放形式称为数据的 ______ 38. 若按功能划分,软件测试的方法通常分为白盒测试方法和 ______测试方法 39. 如果一个工人可管理多个设施,而一个设施只被一个工人管理则实体 工人 与实体 设备 之间存在 ______联系。 40. 关系数据库管理系统能实现的专门关系运算包括选择、连接和 ______ 41. 命令 LENTHIS IS MY BOOK的结果昰 ______。 42.SQL SELECT 语句为了将查询结果存放到临时表中应该使用 ______短语 43. 多栏报表的栏目数可以通过 ______来设置。 44. 在打开项目管理器之后再打开 应用程序生成器 可以通过按 ALTF2 键,快捷菜单和 C4,总编号 C6,借书日期 D 48. 单价 20 或 出版单位 清华大学出版社 OR 出版单位 电子工业出版社 或 出版单位 电子工业出版社 OR 出版單位 清华大学出版社 或 出版单位 清华大学出版社 OR 出版单位 电子工业出版社 与 出版单位 清华大学 出版社 OR 出版单位 电子工业出版社 或 出版单位 清华大学出版社 ? 49. COUNTDISTINCT 总编号 或 COUNDISTINCT 总编号 或 COUNTDIST 总编号 或 COUNDIST 总编号 第二套题 一、选择题 1. 以下数据结构中不属于线性数据结构的是 ______ A、队列 B、线性表 C、二叉树 D、栈 2. 在结构化方法中,用数据流程图 DFD作为描述工具的软件开发阶段是______ A、可行性分析 B、需求分析 C、 详细设计 D、程序编码 3. 结构化程序设計主要强调的是 ______。 A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性 4. 在软件生命周期中能准确地确定软件系统必须做什麼和必须具备哪些功能的阶段是 ______。 A、概要设计 B、详细设计 C、可行性分析 D、需求分析 5. 下列关于栈的叙述中正确的是 ______ A、在栈中只能插入数据 B、在栈中只能删除数据 C、栈是先进先出的线性表 D、栈是先进后出的线性表 6. 下面不属于软件设计原则的是 ______。 A、抽象 B、模块化 C、自底向上 D、信息隐蔽 7. 对长度为 N 的线性表进行顺序查找在最坏情况下所需要的比较次数为______。 A、 N1 B、 N C、 N1/2 D、 N/2 8. 视图设计一般有 3 种设计次序下列不属于视图设计嘚是 ______。 A、自顶向下 B、由外向内 C、由内向外 D、自底向上 9. 下列有关数据库的描述正确的是 ______。 A、数据库是一个 DBF 文件 B、数据库是一个关系 建立泹是不能把它添加到数据库中 C、自由表可以添加到数据库中,数据库表也可以从数据库中移出成为自由表 D、自由表可以添加到数据库中泹数据库表不可从数据库中移出成为自由表 14. 下面关于数据环境和数据环境中两个表之间的关系的陈述中, ______是正确的 A、数据环境是对象,關系不是对 象 B、数据环境不是对象关系是对象 C、数据环境是对象,关系是数据环境中的对象 D、数据环境和关系均不是对象 15. 在 报表设计器 Φ可以使用的控件是 ______。 A、标签、域控件和线条 B、标签、域控件和列表框 C、标签、文本框和列表框 D、布局和数据源 16.用二维表数据来表示实體及实体之间联系的数据模型称为 ______ A、实体 --联系模型 B、层次模型 C、网状模型 D、关系模型 17. 用来指明复选框的当前选中状态的属性是 CREATE QUERY zgjk.qpr 19. 可以伴随著表的打开而自动打开的索引是 ______。 A、单一索引文件 IDX B、复合索引文件 CDXC、结构化复合索 引文件 D、非结构化复合索引文件 20. 在数据库设计器中建竝两个表之间的一对多联系是通过以下索引实现的______。 A、 一方 表的主索引或候选索引 多方 表的普通索引 B、 一方 表的主索引, 多方 表的普通索引或候选索引 C、 一方 表的普通索引 多方 表的主索引或候选索引 D、 一方 表的普通索引, 多方 表的候选索引或普通索引 21. 下列函数中函数值為字符型的是 ______ A、 DATE B、 TIME C、YEAR D、 DATETIME 22. 下面对控件的描述正确的是 ______。 A、用户可以在组合框中进行多重选择 B、用户可以在列表框中进行多重选择 C、用户可鉯在一个选项组中选中多个选项按钮 D、用户对一个表单内的一组复选框只能选中其中一个 23. 确定列表框内的某个条目是否被选定应使用的属性是 ______ A、 Value B、 ColumnCount C、 D8 对于图书管理数据库,要查询所藏图书中各个出版社的图书最高单价、平均单价和册数,下面 SQL WHERE 工资 ; SOME SELECT 工资 FROM 教师 WHERE 系号 02 二、填涳题 36. 若按功能划分软件测试的方法通常分为白盒测试方法和 ______测试方法。 37. 数据库系统的三级模式分别为 ______模式、内部级模式与外部级模式 38. 茬最坏情况下,冒泡排序的时间复杂度为 ______ 39. 在面向对象方法中,信息隐蔽 是通过对象的 ______性来实现的 40. 关系模型的数据操纵即是建立在关系仩的数据操纵,一般有 ______、增加、删除和修改四种操作 41.要把帮助文件设置为复制到硬盘上的 Foxhelp.chm 文件,需要在 选项 对话框的 ______选项卡上设置 42. TIME 的返回值的数据类型是 ______类型。 43. 在定义字段有效性规则中在规则框中输入的表达式中类型是________。 44. 设计报表通常包括两部分内容 ______和布局 45. ______是指只囿满 足联接条件的记录才包含在查询结果中。 46. 设有图书管理数据库 图书 总编号 C6,分类号 C8,书名 C16,作者 C6,出版单位 C20,单价N6,2 读者 借书证号 C4,单位 C8,姓名 C6,性别 AND SALARYT.SALARY 四、设计题(本大题共 2 小题每小题 10 分,共 20 分) 2、学生表 Student 学生表 学号姓名,性别年龄,组织部门 Course 课程表 编号课程名称 Sc 选课表 学号,课程编号成绩 表结构如下 1.写一个 SQL 语句,查询选修了 ?计算机原理 ?的学生学号和姓名 2.写一个 SQL 语句查询 ?周星驰 笔试题,上个周六的时候詓金蝶面试出了这样一道 SQL 题,共享之 给下面这样的一个表记录 ------------------------------------ 购物人 商品名称 数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5 给出所有购入商品为两种或两种以上的购粅人记录

1、在MS SQL Server中用来显示数据库信息的系统存储过程是( )

2、SQL语言中,删除一个表的命令是( )

3、关系数据库中主键是(__)

A、为标识表中唯一的实体

B、创建唯一的索引,允许涳值

C、只允许以表中第一字段建立

4、在Transact-SQL语法中SELECT语句的完整语法较复杂,但至少包括的部分(1___)使用关键字(2___)可以把重复行屏蔽,将哆个查询结果返回一个结果集合的运算符是(3___)如果在SELECT语句中使用聚合函数时,一定在后面使用(4___)

B、剩余占整个空间的25%

C、已用空间占整个空间的25%

6、你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中你使用以下脚本建立了一个名为Policy的表:

每次公司銷售出一份保单,Policy表中就增加一条记录并赋予其一个新的保单号,你将怎么做

a.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单號插入数据表中

b.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中

c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将這个保单号插入数据表中

d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中

7、在SQL语言中,如果要建立一个笁资表包含职工号姓名,职称工资等字段。若要保证工资字段的取值不低于800元最合适的实现方法是:

A。在创建工资表时为”工资“芓段建立缺省

B在创建工资表时为”工资“字段建立检查约束

C。在工资表建立一个触发器

D为工资表数据输入编写一个程序进行控制

8、Select 語句中用来连接字符串的符号是______.

9、你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:

另外建立了一个脚本执行这个存储过程如果执行成功,将返回对应于书名的每天的销售情况的报表如果执行失败,将返回“No Sales Found”怎样建立這个脚本?

填空题(1空1分共20分)

7、 表的每一行在表中是惟一的实体属于__________完整性使列的输入有效属于__________完整性,两个表的主关键字囷外关键字的数据应该对应一致属于__________完整性

1、 在帮助中[ ,...n ] 意思是什么?(4分)

2、 请简述一下第二范式(4分)

3、 现有1销售表它们结构洳下:(4分)

要求:写出查询销售时间段在日到之间,分店编码是01的所有记录

4、写一个存储过程,要求传入一个表名返回该表的記录数(假设传入的表在数据库中都存在)(4分)

5、请简述UPDATE 触发器如何工作原理。(4分)


1、(5分)使用一条SQL语句找到重复的值及偅复的次数:有一数据表ZD_ks其中有字段BM,MC。。请查询出在ZD_ks中BM有重复的值及重复的次数,没有的不要列出如下表:

(a)求各班的总人数(1分)

(b)求1班女生和男生的平均成绩(2分)

(c)各班"数据结构"(课程名称)不及格的人数(2分)

3、问题描述:(30分)

本题用到下面三个关系表:

備注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

  1.找出借书超过5本的读者,输出借书卡号及所借圖书册数(2分)

2.查询借阅了"水浒"一书的读者,输出姓名及班级(3分)

3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期(3分)

4.查詢书名包括"网络"关键词的图书,输出书号、书名、作者(2分)

5.查询现有图书中价格最高的图书,输出书名及作者(2分)

6.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号并按卡号降序排序输出。(4分)

7.将"C01"班同学所借图书的还期都延长一周(2分)

8.从BOOKS表中刪除当前无人借阅的图书记录。(2分)

9.在BORROW表上建立一个触发器完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借閱记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)(4分)

10.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)(3分)

11.查询当前同时借有"計算方法"和"组合数学"两本书的读者,输出其借书卡号并按卡号升序排序输出。(3分)

要求实现如下5个处理:

  1. 找出没有选修过“李明”老师講授课程的所有学生姓名

  2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

  3. 列出既学过“1”号课程又学过“2”号课程嘚所有学生姓名

  4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

  5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学號及其“1”号课和“2”号课的成绩

为管理岗位业务培训信息,建立3个表:

要求实现如下5个处理:

  1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

  2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

  3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

  4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

  5. 查询选修了课程的学员人数

  6. 查询选修课程超过5门的学員学号和所属单位


对于SQl, 很多人学不会的原因是从一開始就没明白学这东西能干啥,学会了能有什么用甚至有些人不知道‘SQL’应该怎么读,以至于一开始兴致勃勃但是学到一半放弃了。

注意:‘sql’真的不能读成‘烧烤’、‘惜烤’、’撒扣’、’斯购‘另外,’MYSQL’真的不能读成’卖烧烤’’卖西裤‘,有学员问:那我卖什么我回答说:你去死。

如果你真的、实在是、绝对的看不懂英文的音标那就暂且读’色儿扣‘吧,这是针对英语文盲特别制莋的读法(注意我在这里并没有瞧不起你的意思)

所以,坚持学会的根本不在于这个知识是否有多难,而在于它带给你的意义有多大如果做事情没有意义,那么你就没有学习的动力在数据分析的招聘中,SQL是必考的能力之一所以学习SQL的意义,就在于你能否通过数据汾析的面试如果不能通过面试,你将穷困潦倒颠沛流离,别人娶妻生子儿孙绕膝,而你孤苦伶仃满目凄凉,垂垂老矣....

想要入门SQL關键在于有没有一个好的领路人带你入门,所以ladys and乡亲们放下手头所有的农活,开始喜欢我吧因为接下来,我将带你轻松搞定SQL的各个语法记住我最大的特点就是,通俗易懂的解释一个事情

【数据】数字,文字图形,图像声音这些都叫数据。

【数据库】 理解数据库嘚一种最简单的方法是 将它想象成一个电子化的“文件柜”

这个“文件柜”是一个存放数据的物理位置,不管数据是什么形式!就像法海手里的金铂我管你是什么妖,统统都得收进来!(电视剧里的那个金铂看起来像一个电饭锅的内胆有没有很像)。也有人说数据库存儲数据就像冰箱是存储食物一样,什么肉啊,米啊菜啊,都能存放对此我也是十分十分的同意!!

有了数据库后,所有终端设备(手机PAD, PC)都可以直接在这个系统上查找数据和修改数据。有人问我老师,我是安卓手机能连接数据库吗,当然能了不许瞧不起安卓系统!!

【数据表】 表是由行和列组成的一张二维表,这是关系数据库中最基本的数据模型

【主键】用来表示数据的唯一性是数据库Φ非常重要的概念。在生活中我们也会使用ID来标识数据的唯一性例如:国家用身份证来唯一标识一个人,即使你有一个双胞胎兄弟但呮要你们的身份证号不一样,你们就是两个人再比如银行卡的卡号就是主键,如果两个人卡号重复了里面有100万,钱算谁的呢这事就鬧大了。

【外键】 关联到其他表主键的字段被称为“ 外键 ”如果A表的一个字段来源于B表,那么这个字段就是A表的外键

例如:成绩表中嘚字段学号 sno 就是外键, 因为这个字段的值来源于学生表的主键sno

【表关联】什么是联系呢?你是你爸爸的儿子你是你的儿子的爸爸。这僦是生活中的联系其实,数据之间也是有联系的数据库里各个表之间如何建立联系呢?

将多张表通过主键+外键关联起来的方式叫作表关联。

例如学生选课涉及的四张表通过主键和外键关联在一起,就构成了一个简易的学生选课数据库系统

表关联是关系数据库中非瑺核心的理念 ,它可以表达非常复杂的数据关

【概念模型】表示方法:E—R方法(也叫实体联系法)

【一个E-R模型案例】:

【数据模型】(主要指关系模型)

SQL语句的基础是关系数据库关系数据库的基础是关系模型,关系模型可以由E-R图得到

在关系数据库中,一张表就是一个关系所鉯表格的一些术语和关系的一些术语能表达同样的意思,具体来说有下面几点不同:

上面讲的都是数据库方面的基本理论。理论有了當然就得有对应的软件实现才能用起来,不然再强大的理论都是一坨屎这就好比,如果只有设计草图是无法盖起楼房的得有具体的施笁团队才能盖起楼房。

上面讲的数据库原理就是“设计草图”那么对应的“施工团队”是谁呢?

实现数据库原理的“施工团队”就是常鼡的数据库软件例如MySQL、Oracle、SQLServer等都是实现上面理论的数据库。各个数据库软件的使用差别大同小异但是因为MySQL是开源的,免费的所以成为各大公司使用的主流,面试也主要以’卖烧烤‘为主

我经历过很多次数据分析师面试,经常会遇到这样一道经典的SQL笔试题注意:这可昰华为的SQL数据库经典面试题(笔试题),上点心吧

A(用户购买记录)、B(商品对应ID)、C(ID对应价格)三个表,问本月内购买商品金额最多的湔三名用户分别是谁

A表只有用户和商品名字的对应关系,需要关联到C表求得价格但A表和C表没有公共字段,这时发现A表和B表有公共字段【商品名字】而B表和C表有公共字段【商品ID】,于是先用A表Join B表再Join C表得出一张多个字段的关联表,用Group by求出用户购买商品的总金额再用Order by对鼡户购买商品的总金额进行降序排列,最后用Limit截取总金额前三位的用户

所以,作为数据分析狮(有人喜欢把自己叫作分析狗真是太不澊重自己了,我听了非常气愤)如果你以后的发展方向不是数据工程师的话,SQL只需要掌握基础语句就可以糊弄面试了具体包括:

查询數据(select语句)

过滤数据(where语句)

【定义】什么是group by 子句,“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组. 那么GROUPBY 是如何分组嘚呢?

Order by 指的是根据指定的列对结果进行排序默认升序;如果希望降序,需要加上DESC关键字

【案例】筛选人口总数大于10万的国家的信息,並且按照人口总数进行降序排序

(2)加desc关键字实现降序

先对年龄进行升序排序,然后针对相同年龄的再根据成绩升序排序

关于阿里,京东美团,快手等大部分互联网公司大部分数据需求都是和时间相关的,所以熟练掌握时间函数非常的重要!!有人告诉我他不想工作,我奉劝你照照镜子看看镜子中的自己,已经长得这么丑了难道还要没钱吗?

真是no zuo no die我不会骂你的,我很有修养

恭喜你你已经看到進阶篇了,现在你已经get到一个了不起的技能妈妈再也不用担心你没法装X了。下面这些资料是我们内部的一些分享资料有人问我什么内蔀,你在哪个公司上班拜托大家不要像我二姑妈似的这么八卦,要学会看重点!!进阶部分需要大家了解mysql的执行原理join的用法,SQL的执行順序等等因为这是我们写复杂SQL的基础。你不会走就想飞吗,真的没这么容易!!

之前网络上流行用韦恩图来表示各种连接查询:

但我覺得用下面这种方式表达连接查询更容易理解:

有没有觉得连接查询竟然如此简单,还不是多亏了我这几张图吗

(2)Mysql的执行顺序:

当sql邏辑复杂后,sql的执行顺序就会非常重要SQL执行顺序和书写顺序又不一样,所以慢慢扣吧这也是进阶的基础呢。

恭喜你你都看到复杂查詢了,我觉得你很有潜力!!面对大量数据我们时常需要对他们进行汇总分组,归类这时候就需要用到一些复杂的查询方法。

1聚合函数:【分类】聚合函数有哪些

【定义】指的是先使用group by 分组后,再使用聚合函数对每组数据聚合

分组语句和聚合函数常常一起使用

【定义】篩选符合条件的组常常和group by 一起使用。

(1)【定义】什么是嵌套查询

如果把一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中,我們就称为嵌套查询其中外层查询称为主查询,内层查询称为子查询

(2)【执行顺序】先执行内层查询,再执行外层查询:

(3)嵌套查詢用来解决哪些问题

掌握了上面这些语法,基本上你可以糊弄各种形式的面试了最常见的考SQL的方法就是,给你一个虚拟的数据库表结構然后让你按给出的条件查询出数据,并用手写的形式写出在纸上所以面试前把常用的SQL语句记清楚就OK了。

怎么觉得自己牛逼的不行,再练点更难的题吧

推荐一个很方便的实践SQL的网站:数据库SQL实战-牛客网

实际上还有很多类似这样的网站是用来强化SQL练习的,但因为他们並没有给我广告费我为什么要给他们做广告呢?

最后推荐一门由我和爱数圈团队共同打磨的精品课【漫画SQl】

这门课设计的通俗易懂,畫风幽默适合一些没什么学历,又不爱学习的朋友哈哈

有人问我,老师我起点非常低学不会你会不会打我。当然不会了都什么年玳了,还靠打骂管教学生我顶多在心里稍微鄙视你一下,哈哈

让你成为职场上MVP!

或者点击阅读原文」

我要回帖

更多关于 SQL面试题 的文章

 

随机推荐