⼏道特别难搞的数据库⾯试题
⼀、多选题(不定项选择)
1. 在下⾯所列出的条⽬中,哪些是数据库管理系统的基本功能?
A 数据库定义
B 数据库的建⽴和维护
C 数据库存取
D 数据库和其他软件系统的通信
2. 在Mongodb⽀持的数据类型中,ObjectId:类似唯⼀主键,可以很快的去⽣成和排序,⽐如:"_id" :
ObjectId(“5b151f853*******ab2e6b26”),那么在⼩括号中的⼀串字符可以划分位哪⼏部分?
A 时间戳
B 机器码
C 进程ID
D 计数器
E 转义码
3. 下列哪些属于NoSQL数据库的特征?
A ⾼可扩展性
B 分布式计算
C 低成本
D 没有标准化
⼆、编程题
1. 表名:subway,包含3个字段:id(线路编号)、stop(站点)、sequence(站点序列)。如下,请写出以下SQL语句:
出站点名称包含“⼈民”的所有记录。stop like ”⼈民%”
2. 表名:subway,包含3个字段:id(线路编号)、stop(站点)、sequence(站点序列)。如下,请写出以下SQL语句:
出途径线路数最多的站点。考虑⼀下每个地铁站点有多少趟地铁通过
3. 表名:subway,包含3个字段:id(线路编号)、stop(站点)、sequence(站点序列)。如下,请写出以下SQL语句:
已知站点A和B,判断是否可以直达。(就是查看包含A和B站点的地铁)不换乘
4. 农作物表
查询出来哪些省份棉花或者⼩麦产量⾼于⽔稻产量(本省)。同省份 内表的查询离不开外表的⽀持 写法:
⼦查询加别名
5. 为管理业务培训信息,建⽴3个表:
S(S#,SN.SD,SA),S#,SN,SD,SA 分别代表学号,学员姓名,所属单位,学员年龄
C(C#.CN),C#,CN分别代表课程编号,课程名称
SC(S#,C#,G) ,S#.C#,G 分别代表学号,所选的课程编号,学习成绩
使⽤标准SQL嵌套语句查询选修课程名称为"税收基础”的学员学号和姓名?
嵌套查询的思想:由条件来推结果
6. 为管理业务培训信息,建⽴3个表:
S(S#,SN.SD,SA),S#,SN,SD,SA 分别代表学号,学员姓名,所属单位,学员年龄
C(C#.CN),C#,CN分别代表课程编号,课程名称
SC(S#,C#,G) ,S#.C#,G 分别代表学号,所选的课程编号,学习成绩
使⽤标准SQL嵌套语句查询不选修课程编号为" C5’的学员姓名和所属单位?
7. 为管理业务培训信息,建⽴3个表:
S(S#,SN.SD,SA),S#,SN,SD,SA 分别代表学号,学员姓名,所属单位,学员年龄
C(C#.CN),C#,CN分别代表课程编号,课程名称
SC(S#,C#,G) ,S#.C#,G 分别代表学号,所选的课程编号,学习成绩
查询选修课程超过5门的学员学号和所属单位?
8. 在数据库有四个表:分别为
student(sid,sname,sage,ssex)
teacher(tid,tname)
course(cid,cname,tid)
sc(sid,cid,score)
查询出只选修了⼀门课程的全部同学的学号、姓名
9. SQL操作,有两张表,如下图所⽰表连接的条件查询操作
订单表:A
订单明细表:B
⽤SQL查询2017年7⽉1号后(含7⽉1号)购买过1001这个商品的user_id和order_id、goods_id和price 10. 下⾯是学⽣成绩表(score)结构说明
下⾯是课程表(course)说明
要查所有需要补考的学⽣姓名和这门课程的名称和成绩,请写出相应的SQL语句
11. 表1:nm_capes2_template_def表(name与表2的schema关联)
表2:nm_capes2_run_info表(prov_code为省代码,schema与1表的name关联,status为1有效,为0⽆效)
更新省代码为100、kpi_id为CB_001的text内容为aaaaa
12. 数据库由以下四个关系模式构成:
供应商表S(S#,SNAME,STATAUS,CITY)
零件表:P(P#,PNAME,COLOR,WEIGHT,CITY)
⼯程项⽬表:J(J#,JNAME,CITY)
供应商-零件-⼯程项⽬表:SPJ(S#,P#,J#,QTY数量)为空 为0 曾经有数量 ⽤完了
供应商S,零件P和⼯程项⽬J分别由供应商(S#),零件号(P#)和⼯程项⽬号(J#)唯⼀标识,供货SPJ是反映某个⼯程项⽬供应某些数量的某种零件。
问题:将没有供货的所有⼯程项⽬从J中删去。
13. 数据库由以下四个关系模式构成:
供应商表S(S#,SNAME,STATAUS,CITY)
零件表:P(P#,PNAME,COLOR,WEIGHT,CITY)
⼯程项⽬表:J(J#,JNAME,CITY)
供应商-零件-⼯程项⽬表:SPJ(S#,P#,J#,QTY)
供应商S,零件P和⼯程项⽬J分别由供应商(S#),零件号(P#)和⼯程项⽬号(J#)唯⼀标识,供货SPJ是反映某个⼯程项⽬供应某些数量的某种零件。
查询这样的⼯程项⽬号:供给该⼯程项⽬的零件P1的平均供应量⼤于10
三、选择题参考答案
1. ABC
2. ABCD
3. ABCD
四、语句题参考答案
1. select * from subway where stop like ‘%⼈民%’;
select * from subway where stop like ‘⼈民%’;
2. select stop,count(id)
from subway
group by stop
order by count(id) desc
limit 1;
3. select id from subway where id in (select id from subway where stop=’A’) and id in(select id from subway where
stop=’B’);
4. select 省份 from 农作物表n where 农作物 in(‘棉花’,‘⼩麦’) and 产量(万吨)>(select 产量(万吨) from 农作物表 a
where 农作物=‘⽔稻’ and a.省份=n.省份);
5. select s#,sn from s where s# in(
select s# from sc where c# in(
select c# from c where cn=’税收基础’))
6. select sn,sd from s where s# not in(select s# from sc where c#=’c5’);
select sn,sd from s where s# in(select s# from sc where c# !=’c5’);
7. select s# ,sd from s where s# in (select s# from sc group by s# having count(*)>5)
8. select sid,sname from student where sid in(select sid from sc group by sid having count(*)=1)
9. select user_der_id,goods_id,price
from A,B
der_id = B.orderid
and add_time=’2017-07-01’ and goods_id=’1001’;
10. select sc_name,sc_score,co_name
from score,course
where score.sc__id and sc_ismakeup=’1’;
11. update nm_capes2_template_def
set text=”aaaaa”
where name in
(select schema from nm_capes2_run_info where prov_code=’100’ and kpi_id=’CB_001’);
12. delete from J where j# in (select j# from spj where qty is null or qty=0);
13. select j#
from spj
where p# in (select p# from p where pname=’p1’)多表查询sql语句面试题
group by p#
having avg(qty) >10
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论