经典 SQL 数据库笔试题及答案整理

马上又是金三银四啦,有蛮多小伙伴在跳槽找工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就收录了下最近学员反馈上来的一些数据库笔试题,包含答案!

1、依据以下学生表、班级表,按要求写 SQL

答案:

1、
select * from student a
left join class b on a.c_id = b.id
where score = (
select max(score) from student)

2、
select b.name,count(*),avg(score) as avgScore from student a,class b
where a.c_id = b.id
group by b.name
order by avgScore;

2、Table A 保存客户的基本信息;Table B 保存客户的资产负债信息。按要求写 SQL

答案:

(1)select ID from A where name = '李四';
(2)select NO,NAME,ID from A,B where A.NO = B.NO AND DEPOSIT >= 1000;
(3)select COUNTRY,count(*) FROM A GROUP BY COUNTRY;

(4)SELECT '80 后' as 年龄段,sum(CREDIT) AS '信用卡余额' FROM A,B WHERE A.NO = B.NO AND BIRTH >= 19800101 AND BIRTH < 19900101
UNION
SELECT '90 后' as 年龄段,sum(CREDIT) AS '信用卡余额' FROM A,B WHERE A.NO = B.NO AND BIRTH >= 19900101 AND BIRTH < 20000101;

3、数据库(编写示例 sql)

答案:

  1. select orderNo, if(status=1,'新建','处理中') from OrderTrans;
  2. select DATE_FORMAT(a.crttime,'%m-%d-%Y') ,username,count(*) from testCase a,User b where a.crtUser = b.UserId group by DATE_FORMAT(a.crttime,'%m-%d-%Y'),b.username, having status = '成功';
  3. select count(*),sum(amount),DATE_FORMAT(crttime,'%m-%d-%Y') from OrderInfo group by
    DATE_FORMAT(crttime,'%m-%d-%Y');

4、现有三张数据表如下:学生资料表:记录学生基本信息;课程表:记录课程基本信息;成绩表:记录每人各门课程成绩的信息,1 个学生对应多个成绩,1 个成绩只属于一个学生,一个课程

答案:

  1. Select * from students where jg = ‘湖北’ and birthday = ‘1992-6-1’ order by no asc;
  2. Select avg(so.cj),min(so.cj),max(so.cj),sum(so.cj) from student st,course c,source so where st.no = so.no and c.kebh=so.kebh and st.name = ‘王华’ group by st.no;
  3. Select st.no,st.name,st.bj,c.kebh,c.kcmc,so.cj from student st,course c,source so where st.no = so.no and c.kebh=so.kebh and st.name = ‘张三’ order by so.cj desc;

5、有三张表 Contacts 库 Consultant 表、Basket 库 BaseOrder 表、Basket 库 OrderDetails 表,按要求写 SQL

答案:

  1. Select Consultant.SubsidiaryID, BaseOrder.* from Consultant, BaseOrder where Consultant.ConsultantID = BaseOrder.ConsultantID and Consultant.SubsidiaryID = 29 order by Orderid desc;
  2. Select BaseOrder.ConsultantID,sum(OrderDetails.TotalPrice) from BaseOrder,OrderDetails where BaseOrder.Orderid=OrderDetails.Orderid and month(OrderDate) = 5 group by BaseOrder.ConsultantID;
  3. Insert into Consultant (ConsultantID,ConstultantStatusID,SubsidiaryID,Name) values (200000,10,29,’Gary’);
  4. Delete from Consultant where Name like ‘%Gary%’;
  5. Update BaseOrder set OrderDate = sysdate() where ConsultantID in (select ConsultantID from BaseOrder where ConsultantID=100003 order by OrderDate desc limit 0,1);

ps:小编个人收集啦许多软测资料,希望能够帮到学软件测试的朋友们软件资料分享包括但不限于:Java自动化测试、Python自动化测试、性能测试、web测试、APP测试

测试开发工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等

有需要的朋友可以点击链接领取

软件测试全套基础/进阶/转行资料
 

  • 42
    点赞
  • 283
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
第二天 1、查询客户表,统计每个机构2000年之前开户数、2000~2005开户数(含头不含尾)、2005~2010开户数(含头不含尾)、2010之后开户数 展示字段:机构号、2000年之前开户数、2000~2005年开户数、2005~2010年开户数、2010年之后开户数 2、查询客户表,按年份统计,每年、每个机构开户数占全年开户数的占比 展示字段:年份、机构号、开户数、开户占比百分比(百分比) 3、统计所有客户的客户号、存款账户数、2011.12.31日的存款余额、2011.12存款月日均、贷款账户数、2011.12.31日的贷款余额、2011.12贷款月日均 备注:null置为0 第三天 1、统计所有客户的2011.12.31日的存款余额、存款比上日余额、存款比上月余额、、存款比上年余额 备注:存款比上日余额 = 2011.12.31日的存款余额-2011.12.30日的存款余额 存款比上月余额 = 2011.12.31日的存款余额-2011.11.30日的存款余额 存款比上年余额 = 2011.12.31日的存款余额-2010.12.31日的存款余额 只有2011.12.31这个日期可以写死,其他日期要通过2011.12.31这个日期来生成。 2、统计所有2011年存款年日均大于100的客户号、客户名称、存款账户数、2011年年日均 第四天 1、统计所有2011年存款年日均和2011年贷款年日均都大于100的客户号、存款账户数、2011年存款年日均、贷款账户数、2011年贷款年日均 2、统计所有客户的客户号、 存款标志(有存款账户的客户置为1、没存款账户的客户置为0)、 贷款标志(有贷款借据的客户置为1、没贷款借据的客户置为0)、 存款质量分类(2011年存款年日均>=10000置为优质、2011年存款年日均>=1000<10000 置为良好、2011年存款年日均=10000置为优质、2011年贷款年日均>=1000<10000 置为良好、2011年贷款年日均<1000置为普通)、 2011年贷款年日均 第五天 1、根据《事件表.xlsx》来建表,然后将excel中的数据导入到目标表中 2、根据客户表、存款信息表、事件表,统计每个客户2017年的客户号、 交易账户数(客户下有多少个账户有交易就是多少)、 当年有交易的天数(如果2017年有5天有过交易,则有交易天数为5)、 当年有交易总月数(如果2017的1、3、5月有交易,则有交易总月数为3)、 最大的月交易总金额(按月统计交易金额,存放最大的月交易金额)、 最大月交易金额的月份(按月统计交易金额,存放交易金额最大的月份)、 年总交易金额、 年交易金额排名(按客户排名,如果总交易金额为0,则不参与排名,排名置为9999)、 年总手续费、 年总手续费排名(按客户排名,如果总手续费为0,则不参与排名,排名置为9999)
一、选择题 1. DBS是采用了数据库技术的计算机系统, 它是一个集合体, 包含数据库、计算机硬件、软件和( C) 。 A 系统分析员B. 程序员C. 数据库管理员D. 操作员 2. 数据库(DB) , 数据库系统( DBS) 和数据库管理系统( DBMS ) 之间的关系是( A) 。 A. DBS 包括DB 和DBMS B. DBMS 包括DB 和DBS C. DB 包括DBS 和DBMS D. DBS 就是DB, 也就是DBMS 3. 下面列出的数据库管理技术发展的三个阶段中, 没有专门的软件对数据进行管理的是( D)。 I . 人工管理阶段II.文件系统阶段 A. I 和II B. 只有II C. II 和Ill 4. 下列四项中, 不属于数据库系统特点的是( C) 。 A. 数据共享B. 数据完整性C. 数据冗余度高-->低! D. 数据独立性高 5. 数据库系统的数据独立性体现在( 8) 。 A不会因为数据的变化而影响到应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 Ill . 数据库阶段 D. 只有I C不会因为存储策略的变化而影响存储结构 D不会因为某些存储结构的变化而影响其他的存储结构 6. 描述数据库全体数据的全局逻辑结构和特性的是( A) 。 A 模式B. 内模式C. 外模式D. 用户模式 7. 要保证数据库的数据独立性, 需要修改的是( C) 。 A 模式与外模式B. 模式与内模式C. 三层之间的两种映射 8. 要保证数据库的逻辑数据独立性, 需要修改的是( A) 。 A 模式与外模式的映射B. 模式与内模式之间的映射 9. 用户或应用程序看到的那部分局部逻辑结构和特征的描述是( A 模式B. 物理模式C. 子模式D. 内模式 10.下述( D) 不是DBA数据库管理员的职责。 A完整性约束说明B. 定义数据库模式C数据库安全 D. 三层模式 C. 模式D. 三层模式 C), 它是模式的逻辑子集。 D. 数据库管理系统设计 选择题参考答案: (1) C (2) A (3) D (4) C (5) B (6) A (7) C (8) A (9) C (10) D 二简答题 1. 试述数据、数据库数据库系统、数据库管理系统的概念。 数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不 可分的。 *解析:在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算, 处理的数据是整数、 实数、浮点数等专统数学中的数据等。现在计算机能存储和处理的对象十分广泛, 表示这些对象的 复杂。 数据与其语义是不可分的。500 这个数字可以表示—件物品的价格是500 元, 也可以表示—个学术会议参加的 人数有500 人。还可以表示一袋奶粉重500 克。 数据库数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按—定的数据模型组 数据也越来越 织、描述和储存, 具有较小的冗余度较高的数据独立性和易扩展性, 并可为各种用户共享。 *解析:简单地讲, 数据数据库数据具有永久储存、有组织和可共享三个特点 数据模型是数据库的核心概念。每个数据库中数据的都是按照某一种数据模型来组织的。 数据库系统:数据库系统( DBS) 是指在计算机系统中引入数据库后的系统构成。数据库系统由数据库、数据 库管理系统(及其开发工具) 、应用系统、数据库管理员构成。 *解析:数据库系统和数据库是两个概念。数据库系统是—个人-机系统, 数据库数据库系统的—个组成部分。 但是在日常工作中人们常常把把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据
MySQL是一个开源的关系型数据库管理系统,广泛应用于Web应用程序开发和数据管理等领域。对于想要应聘MySQL开发岗位的求职者来说,掌握一些MySQL的基础知识和技能是非常必要的。下面就是关于MySQL数据库笔试试题及答案(全)的详细介绍。 1. MySQL中的MYISAM和InnoDB引擎有什么区别? 答:MYISAM和InnoDB都是MySQL常用的引擎,但是它们有一些重要的区别。MYISAM引擎读写速度快,但是不支持事务和行级锁;而InnoDB引擎支持事务和行级锁,并且具有更好的数据完整性和安全性,但是相对MYISAM来说会稍微慢一些。因此,如果应用程序需要高并发和数据安全性,建议使用InnoDB引擎。 2. 如何优化MySQL查询? 答:优化MySQL查询可以提高查询效率,减少数据库系统的负担。具体可以从以下几个方面入手:使用索引优化查询;避免在WHERE子句中使用函数或表达式;尽量减少JOIN操作;避免使用SELECT *等不必要的查询;使用EXPLAIN命令分析查询执行计划等。 3. 如何备份和恢复MySQL数据库? 答:备份MySQL数据库可以使用命令行工具mysqldump或者图形化工具如Navicat等,备份文件可以保存为.sql文件。恢复MySQL数据库可以通过执行备份文件中的SQL语句,也可以直接导入备份文件。在备份和恢复数据时,需要注意MySQL版本、字符集和编码等问题。 4. 如何设置MySQL主从复制? 答:MySQL主从复制可以实现多个MySQL服务器之间的数据同步,提高数据可靠性和可用性。具体设置步骤为:在主服务器上设置并开启二进制日志功能;在从服务器上设置并开启复制功能,并指定主服务器的IP地址和端口;在主服务器上创建一个复制账号,并授权给从服务器使用;最后在从服务器上启动复制服务,即可实现数据同步。 5. 如何避免MySQL死锁? 答:MySQL死锁是由于多个事务同时请求并修改同一数据行,导致相互等待锁资源无法释放的情况。避免MySQL死锁可以采取以下策略:尽量减少事务时间的长度;将事务拆分成更小的事务;适当调整事务隔离级别;设置合适的索引和优化查询语句;定期检查和优化数据库性能等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值