软件测试面试题整理数据库.docx
《软件测试面试题整理数据库.docx》由会员分享,可在线阅读,更多相关《软件测试面试题整理数据库.docx(20页珍藏版)》请在冰豆网上搜索。
软件测试面试题整理数据库
面试题-数据库-整理
1.数据库
省份
农作物
产量(万吨)
甘肃
小麦
321
江苏
小麦
3
..........
..........
..........
湖南
水稻
432
湖北
水稻
211
..........
..........
...........
甘肃
棉花
23
浙江
棉花
0.2
.......
.........
..........
用一条sql语句根据以上表格查询出如下结果。
1)查询出来哪些省份棉花产量大于5000吨。
2)查询出来哪些省份没有种植棉花作物。
3)查询出来哪些省份水稻生产量在3万吨-30万吨之间。
4)查询出来各省份农作物平均产量。
5)查询出来哪些省份水稻或者小麦产量高于水稻产量。
6)查询出来哪些省份小麦产量高于水稻产量。
7)查询出来哪些省份棉花产量高于水稻产量但小于小麦产量。
2.数据库
表名:
subway,包含3个字段:
id(线路编号)、stop(站点)、sequence(站点序列)。
如下,请写出以下SQL语句:
Id(线路编号)
Stop(站点)
Sequence(站点序列)
1
人民广场
10
2
中山公园
7
1
莘庄
1
8
人民广场
8
2
人民广场
10
.........
.........
.........
1)找出站点名称包含“人民”的所有记录。
2)找出途径线路数最多的站点。
3)已知站点A和B,判断是否可以直达。
3.数据库脚本语句在数据库中的执行顺序是(DCL-DML-DLL)
4.数据库
假设现有实体:
测试工程师:
员工标号、单位、姓名、性别、年龄、测试项目;
测试项目:
项目编号、项目名、所属部门、项目经理;
请用SQL语句完成:
检索出不是测试项目编号为“P17”的项目测试工程师的姓名和测试项目。
5.数据库
学生表Student
S#(学生编号)varchar(10)
Sname(学生姓名)varchar(10)
Sage(出生年月)datetime
Ssex(学生性别)varchar(10)
01
赵雷
1990-01-01
男
02
钱电
1990-12-21
男
03
孙1
1990-05-20
男
04
李
1990-08-06
男
05
周
1991-12-01
女
06
吴
1992-03-01
女
07
郑
1989-07-01
女
08
王
1990-01-20
女
课程表Course
C#课程编号varchar(10)
Cname课程名称varchar(10)
T#教师编号varchar
(10)
01
语文
02
02
数学
01
03
英语
03
教师表Teacher
T#教师编号varchar(10)
Tname教师姓名varchar(10)
01
张三
02
李四
03
王五
成绩表SC
S#学生编号varchar(10)
C#课程编号varchar(10)
Score分数decimal(18,1)
01
01
80
01
02
90
01
03
99
02
01
70
02
02
60
02
03
80
03
01
80
03
02
80
03
03
80
04
01
50
04
02
30
04
03
20
05
01
76
05
02
87
06
01
31
06
03
34
07
02
89
07
03
98
1)查询出只有两门课程的全部学生的学号和姓名。
2)查询男生,女生人数。
3)查询“李”姓老师的数量
4)检索“01”课程分数小于60,按分数降序排列的学生信息。
6.某数据库中存放两个数据表:
教师表(教师编号,教师姓名)和课程表(课程号,课程名,教师编号),若要快速查出某位教师教授的课程,下列建立索引方式中正确的是()
A.在教师表上按教师编号建立索引
B.在课程表上按照课程号建立索引
C.在课程表上按教师编号建立索引
D.在教师表上按照教师姓名建立索引
7.下列关于数据库中触发器的描述中错误的是()
A.触发器是一种特殊的存储过程
B.触发器常在SELECT.INSERT.UPDATE和DELETE操作时触发
C.触发器可以通过数据库中的相关表进行层叠更改
D.触发器是自动的,可以在用户对表的数据做了修改之后被自动激活
8.数据库
主表(student)如下:
Student表
自动编号
学号姓名
课程编号
课程名称
分数
12005001
张三
0001
数学
69
22005002
李四
0001
数学
89
32005001
张三
0001
数学
69
42005001
张三
0001
数学
69
删除除了自动编号不同,其他都行同的同学冗余信息的方法。
9.数据库
数据库由以下四个关系模式构成:
供应商表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是反映某个工程项目供应某些数量的某种零件。
请用SQL语言完成下面的问题:
1)找出给上海的工程项目提供的不同零件号。
2)将没有供货的所有工程项目从J中删去。
3)计算所有工程项目中零件P1的总使用量。
4)查询这样的工程项目号:
供给该工程项目的零件P1的平均供应量大于10.
10.数据库
现在有如下两个表,js表和mem表,mem表中js_t记录js的id
请做如下查询:
表1:
mem(人员)
id
username
realname
Js_t
1023
chen
小晨
2
1034
yang
小杨
2
1025
zhang
小张
5
1026
guo
小郭
3
1027
li
小李
4
表2:
js
id
type
count
1
Android
25
2
IOS
37
3
Web
26
4
Linux
10
5
Mac
56
1)请写出一条sql,查询mem表中共有几种js_t类型;
2)请写一条sql,查询type是IOS和Web的人员名单。
3)请建立一张视图,显示mem表中人员信息和所对应的机型及数量。
11.数据库
你了解哪些数据库类型?
且简述MySQL和SQLServer的主要区别。
12.有一个用户表user,有三个字段,username,usercode,password。
1)举例说明对数据库的基本操作(增加,删除,更新,查询)
2)查询出username中包含“张”的用户信息。
13.数据库表中通过使用________可标识一条记录的唯一性。
使用________可提高检索效率。
14.数据库表记录的增,删,改分别用_________、_________、_________语句。
15.数据库
请根据以下表间关系写出SELECT语句;每个业务日期的“状态为派单、送出和结账”的订单全额合计值(如写不出请说明思路)
提醒:
可能需要用到的函数有sum()、groupby
状态表STATUS
STATUSID状态ID
STATUSNAME状态名称
101
创建
102
接收
103
派单
104
备餐
105
送出
106
结账
107
无人接收
订单表ORDER_HEADER
ORDER_ID订单ID
ORDER_CODE订单编号
STATUS_ID状态ID
ORDER_DATE业务日期
PRODUCT_ID产品ID
QTY数量
AMOUNT订单金额
1
201107010001
101
20110701
D101
1
80.00
2
2011070100002
106
20110701
D118
5
125.50
16.数据库
有两张表Student和Score,数据示例如下:
Student.StudentId跟Score.StudentId关联
Student学生表
StudentId学生ID
Name姓名
Class班级
1
张帆
1-1
2
刘华
1-2
3
....
...
Score成绩表
StudentId
Subject科目
Score分数
1
英语
88
1
数学
68
...
...
...
请写出SQL
1)列出每个科目的平均分数。
2)列出姓名为“李勇”的学生的成绩单。
3)列出英语和数学都不及格(分数小于60)的学生的姓名。
17.在SQLServer或者Oracle中,为数据库表建立索引能够()
A.防止非法的删除操作
B.防止非法的插入操作
C.提高查询性能
D.节约数据库的磁盘空间
18.在SQLServer或者Oracle中,事务应该具有的属性是()
A.原子性
B.一致性
C.隔离性
D.持久性
19.下面哪些关于数据库主键的说法正确的是()
A.主键可以用来确保表中不存在重复的数据行
B.一个表必须有一个主键
C.一个表只能有一个主键
D.只能对整数型列设置主键
20.某银行信贷子系统有如下关系表:
客户信息表(客户编号,客户姓名,银行卡号,客户状态,客户级别)主键:
客户编号
客户信息表(合同编号,客户编号,信贷金额,贷款金额,贷款余额,贷款利率,合同生效日期)主键:
合同编号
客户明细表(合同编号,客户编号,还款期次,还款金额,还款日期)主键:
合同编号,还款期次
根据以上信息,完成如下题目:
1)请列出客户编号为“123456”客户的贷款余额和合同号。
2)请列出有两笔贷款的客户信息。
3)请将A类客户的贷款利率优惠10%。
4)请列出本期(假如期次为“201210”)暂未还款的贷款明细。
5)请列出2012年生效的合同明细。
21.表table中的id对应多个记录,把这个id的记录查出来,并显示有多少条记录。
22.检查下列SQL的输出答案()
Selecta.depton,a.job,b.loc,sum(a.sal)
Fromdmpa,deptb
Wherea.deptno=b.depton
Groupbya.depton,a.job,b.loc
Orderbysum(a.sal)
这个查询按哪个对的顺序返回输出?
A.a.depton
B.a.job
C.B.loc
D.Sum(a.sal)
23.看下列代码,回答问题
selectdeptno,job,avg(sal)
fromcmp
groupbydeptno,job
havingavg(sal)>
(selectsal
Fromcmp
Wherecname=’MARTIN’)
上述语句使用下列哪种子查询?
A.单行子查询
B.多行子查询
C.from子查询
D.多列子查询
24.要把SALES表中的PRODUCT_TYPE列的大小从varchar(5)列增加到varchar2(10),用下列哪个语句()
A.altertablesalesadd(product_typevarchar2(10))
B.altertablesalesmodifyproduct_typevarchar2(10)
C.altertablesalesunusedcolumnproduct_typevarchar2(10)
D.altertalesalesdropcolumnproduct_type
25.数据库
设有如下关系,用SELECT完成查询:
学生表(学号,姓名,年龄,所在系)
课程表(课程号,课程名,教室)
选课表(学号,课程号,成绩)
用SQL完成以下操作:
1)求数学系学生的学号和姓名。
2)将一个新的学生记录(学号:
“98010”,姓名:
“张三”,年龄“20”,所在系:
“计算机系”)插入到学生表中。
3)把学号:
“98010”的学生的所在系改为艺术系。
4)删除艺术系的学生记录及选课记录。
26.请举例说明leftjoin,rightjoin,innerjoin三者的区别。
左表
LID
LValue
1
A
2
B
3
C
4
D
右表
RID
RValue
1
A
2
B
3
C
4
D
执行如下语句填表:
Select*
Fromlefttableaslt
Leftjoinrighttableasrt
Onlt.lvalue=rt.rvalue
执行如下语句填表:
Leftjoin
LID
LValue
RID
RValue
Rightjoin:
LID
LValue
RID
RValue
Innerjoin
LID
LValue
RID
RValue
27.OrderBy和GroupBy
O_ld
orderDate
orderprice
Customer
1
2008-12-29
1000
Bush
2
2008-11-23
1600
Carter
3
2008-10-5
700
Bush
4
2008-9-28
300
Bush
5
2008-8-6
2000
Adams
6
2008-7-21
100
Carter
Selectcustomer,sum(orderprice)fromorders该语句能执行吗?
使用GROUPBy语句对客户进行组合
问selectcustomer,SUM(orderPrice)
fromorder
groupbycustomer结果集。
Customer
SUM(orderprice)
28.请根据下面的表结构来编写sql语句:
Name表
userId
username
age
sex
1
小王
18
男
2
小李
20
女
3
小陈
22
男
Class表
classId
classname
Studyname
Userid
Class001
一班
语文
1
Class002
二班
数学
2
Class003
三班
英语
3
1)请查询所有学员
2)请查询不包括科目为“语文”在内的所有其他科目信息
3)更新把科目“语文”改为“物理”,且删除一条关于年龄大于“20”的信息。
4)插入一条科目为“化学”,班级为“四班”,classid为“class004”的用户信息
5)请用一级嵌套查询根据学员为小王所参加的科目及班级信息。
29.以下三个数据表结构
Tbl_customer(客户信息表)结构:
customer_code,name,address(分别表示:
客户编号,客户名称,客户地址)
Tbl_order(销售订单主表)结构:
order_no,customer_code,order_date(分别表示:
订单编号,客户编号,订单日期)
Tbl_order_item(销售订单明细表)结构:
order_noll,goods_name,price,quantly(分别表示:
订单编号,商品名称,单价,订单数量)
请写出SQL,列出既订购商品A又订购商品B的客户名称。
30.SQL语言中删除一个表指令()
A.Droptable
B.Deletetable
C.Destroytable
D.Removetable
31.原表:
Couseidcoursenamescore:
1java70
2oracle90
3xml40
4jsp30
5serviet80
为了便于阅读,查询此表后的结果显示如下(及格分数为60):
Courseidcoursenamescoremark:
1Java70pass
2oracle90pass
3xml40fail
4jsp30fail
5servlet80pass
写出此查询语句
32.数据库
有学生表(student),教师表(teacher),成绩表(score)如下:
Student_ID
Student_name
class
S01
王晓明
一班
Teacher_ID
Teacher_name
department
T01
刘老师
语文
T02
张老师
数学
Teacher_ID
Student_ID
score
T01
S01
60
T02
S02
70
1)请查询出一班学生的语文成绩,结果如下
班级学生姓名科目成绩
2)请查询出所有成绩》60的学生,结果如下
班级学生姓名科目成绩
33.学生成绩表(stuscore)
姓名name
课程subject
分数score
学号stuid
张三
数学
89
1
张三
语文
80
1
张三
英语
70
1
李四
数学
90
2
李四
语文
70
2
李四
英语
80
2
1)计算每个人的总成绩并排名(要求显示字段:
姓名,总成绩)
2)计算张三的课程中的平均分数(要求显示字段:
平均分数)
34.数据库
以下为“学生选课系统”数据库,学生选课的关系模式为:
学生(学号char(10),姓名char(20),性别char
(2),年龄(int),所在系(char(20)))
课程(课程号(char(10)),课程名(char(20)),先行课(char(10)))
选课(学号(char(10)),课程号(char(10)),成绩(int))
根据给系统,用SQL语句完成下面各题
1)查询物理系学生的学号不在201001-201011范围内的所有记录。
2)将一个新学生记录(学号:
”96002”,姓名:
“张三”,所在系“英语系”插入到学生表中)
3)将学生表中全部学生的年龄加上3岁。
4)在课程表上“按课程号”建立唯一索引
5)将学生表中年龄在19-22之间的物理系的女生所有记录插入到选课表中。
35.在SQLServer2000中,下列关于索引说法错误的是()
A.可以通过SQL语句不删除圆索引二直接修改建立新的索引类型
B.如果一个表中存在重复记录,则不能建立索引
C.一个表中只能建立一个聚簇索引
C.一个表的主索引必须对不包含空值的字段建立,并且强制该字段成为唯一索引。
36.描述table和view的区别
37.描述字段类型char,varchar(nchar)的区别
38.A表leftjoinB表时,取出所有A表数据还是B表数据
39.“selecttop10*fromA表”(信息不明)
40.描述SQL语句中的关键字union和unionall的区别
41.A表fulljoinB表和A表joinB表获得的记录是否一样?
(题目信息不清晰)
42.针对SQL语句的关键字in和。
。
。
(信息不清晰)
43.MySQL中有一张任务表(task),请给出搜寻语句列出task表中任务描述(descript)为空的任务。
44.数据库
下面是学生成绩表(score)结构说明
字段名称
字段解释
字段类型
字段长度
约束
Sc_number
学号
字符
8
pk
Sc_name
姓名
字符
50
Notnull
Sc_sex
性别
字符(男:
1;女:
0)
2
Notnull
Sc_courseid
课程号
字符
5
pk
Sc_score
分数
数值
3
Notnull
Sc_ismakcup
当前考试是否为补考
字符(补考:
1;非补考:
0)
2
Notnull
下面是课程表(course)说明
字段名称
字段解释
字段类型
字段长度
约束
Co_id
课程号
字符
5
pk
Co_name
课程名
字符
3
Notnull
Co_desc
课程介绍
字符
60
1)如果学号的前两位表示年级,要查找98级女生的姓名,请邪乎相应的SQL语句
2)要查找所有需要补考(小于60分)的学生姓名和这门课程的名称和成绩,请写出相应的SQL语句
45.数据库
按照要求写出SQL
假设student表中存放的某学校学生的信息,其字段定义为:
列名
数据类型
说明
ID
int
主键
NAME
nvarchar
姓名
AGE
int
年龄
CLASSID
int
班级,存放班级的主键
BIRTHDAY
datetime
生日
Class表是存放的是班级的信息,定义为:
列名
数据类型
说明
ID
int
主键
NAME
nvarchar
班级名称
1)寻找学校中所有姓“张”的学生
2)寻找班级名称为“A班”的,年龄最大的前5名学生。
3)统计每个班级的人数,(要求显示班级名称和人数)
46.(表不明)编写SQL语句找出至少两门功课几个的学生名字
47.(表不明)编写SQL语句找出语文成绩排名第三的学生名字及具体分数
48.