软件测试面试题整理-数据库 下载本文

面试题-数据库-整理

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) 01 02 03 04 05 06 07 08 课程表 Course C#课程编号 varchar(10) 01 02 03 教师表 Teacher T# 教师编号 varchar(10) 01 02 03 成绩表 SC S# 学生编号 varchar(10) 01 01 01 02 02 02 03 03 03 04 04 04 C# 课程编号 varchar(10) 01 02 03 01 02 03 01 02 03 01 02 03 Score 分数 decimal(18,1) 80 90 99 70 60 80 80 80 80 50 30 20 Tname 教师姓名varchar(10) 张三 李四 王五 Cname课程名称varchar(10) T#教师编号 varchar (10) 语文 数学 英语 02 01 03 Sname(学生姓名)varchar(10) 赵雷 钱电 孙1 李 周 吴 郑 王 Sage(出生年月)datetime 1990-01-01 1990-12-21 1990-05-20 1990-08-06 1991-12-01 1992-03-01 1989-07-01 1990-01-20 Ssex(学生性别)varchar(10) 男 男 男 男 女 女 女 女 05 05 06 06 07 07 01 02 01 03 02 03 76 87 31 34 89 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 22005002 32005001 42005001 学号姓名 张三 李四 张三 张三 课程编号 0001 0001 0001 0001 课程名称 数学 数学 数学 数学 分数 69 89 69 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 1023 1034 1025 1026 1027 表2:js id 1 2 3 4 5 type Android IOS Web Linux Mac count 25 37 26 10 56 username chen yang zhang guo li realname 小晨 小杨 小张 小郭 小李 Js_t 2 2 5 3 4 1) 请写出一条sql,查询mem表中共有几种js_t类型; 2) 请写一条sql,查询type是IOS 和Web的人员名单。

3) 请建立一张视图,显示mem表中人员信息和所对应的机型及数量。

11. 数据库

你了解哪些数据库类型?且简述MySQL 和SQL Server 的主要区别。

12. 有一个 用户表user,有三个字段,username,usercode,password。

1)举例说明对数据库的基本操作(增加,删除,更新,查询) 2)查询出username中包含“张”的用户信息。

13. 数据库表中通过使用________可标识一条记录的唯一性。使用________可提高检索效率。

14. 数据库表记录的增,删,改分别用_________、_________、_________语句。

15. 数据库

请根据以下表间关系写出SELECT语句;每个业务日期的“状态为派单、送出和结账”的订单全额合计值(如写不出请说明思路) 提醒:可能需要用到的函数有sum()、group by 状态表 STATUS STATUS ID 状态ID 101 102 103 104 105 106 107 订单表ORDER_HEADER ORDER_ID订单ID 1 2 STATUS NAME 状态名称 创建 接收 派单 备餐 送出 结账 无人接收 ORDER_CODE订单编号 201107010001 2011070100002 STATUS_ID状态ID 101 106 ORDER_DATE业务日期 20110701 20110701 PRODUCT_ID 产品ID D101 D118 QTY数量 AMOUNT 订单金额 1 5 80.00 125.50

16. 数据库

有两张表Student 和Score,数据示例如下:Student.StudentId跟Score.StudentId关联 Student 学生表 StudentId 学生ID 1 2 3 Score 成绩表 StudentId 1 1 Subject 科目 英语 数学 Score分数 88 68 Name 姓名 张帆 刘华 .... Class班级 1-1 1-2 ... ... ... ... 请写出SQL

1)列出每个科目的平均分数。

2)列出姓名为“李勇”的学生的成绩单。

3)列出英语和数学都不及格(分数小于60)的学生的姓名。

17. 在SQL Server 或者Oracle中,为数据库表建立索引能够()

A. 防止非法的删除操作 B. 防止非法的插入操作 C. 提高查询性能

D. 节约数据库的磁盘空间

18. 在SQL Server 或者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的输出答案()

Select a.depton,a.job,b.loc,sum(a.sal) From dmp a,dept b

Where a.deptno =b.depton Group by a.depton,a.job,b.loc

Order by sum(a.sal)

这个查询按哪个对的顺序返回输出? A. a.depton B. a.job C. B.loc

D. Sum(a.sal)

23. 看下列代码,回答问题

select deptno,job,avg(sal) from cmp

group by deptno,job having avg(sal) >

(select sal From cmp

Where cname=’MARTIN’)

上述语句使用下列哪种子查询? A. 单行子查询 B. 多行子查询 C. from 子查询 D. 多列子查询

24. 要把SALES 表中的PRODUCT_TYPE 列的大小从varchar(5)列增加到varchar2(10),用下列哪个语句()

A. alter table sales add(product_type varchar2(10)) B. alter table sales modify product_type varchar2(10)

C. alter table sales unused column product_type varchar2(10) D. alter tale sales drop column product_type

25. 数据库

设有如下关系,用SELECT 完成查询: 学生表(学号,姓名,年龄,所在系) 课程表(课程号,课程名,教室) 选课表(学号,课程号,成绩) 用SQL完成以下操作:

1)求数学系学生的学号和姓名。 2)将一个新的学生记录(学号:“98010”,姓名:“张三”,年龄“20”,所在系:“计算机系”)插入到学生表中。 3)把学号:“98010”的学生的所在系改为艺术系。 4)删除艺术系的学生记录及选课记录。

26. 请举例说明left join,right join ,inner join 三者的区别。 左表 LID 1 2 3 4 右表 RID 1 2 3 4

执行如下语句填表: Select *

From lefttable as lt Left join righttable as rt On lt.lvalue=rt.rvalue 执行如下语句填表:

Left join LID Right join: LID LValue RID RValue LValue RID RValue RValue A B C D LValue A B C D

Inner join LID LValue RID RValue 27. Order By 和 Group By

O_ld 1 2 3 4 5 6

Select customer,sum(orderprice)from orders 该语句能执行吗?

使用GROUP By 语句对客户进行组合 问 select customer,SUM(orderPrice) from order

group by customer 结果集。 Customer

28. 请根据下面的表结构来编写sql语句: Name 表 userId username 1 2 3 小王 小李 小陈 SUM(orderprice) orderDate 2008-12-29 2008-11-23 2008-10-5 2008-9-28 2008-8-6 2008-7-21 orderprice 1000 1600 700 300 2000 100 Customer Bush Carter Bush Bush Adams Carter age 18 20 22 sex 男 女 男 Class表 classId Class001 Class002 Class003 classname 一班 二班 三班 Study name 语文 数学 英语 Userid 1 2 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. Drop table B. Delete table C. Destroy table D. Remove table

31. 原表:

Couse id course name score: 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 serviet 80

为了便于阅读,查询此表后的结果显示如下(及格分数为60): Course id course name score mark: 1 Java 70 pass 2 oracle 90 pass 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pass 写出此查询语句

32. 数据库

有学生表(student),教师表(teacher),成绩表(score)如下:

Student_ID S01 Teacher_ID T01 T02 Teacher_ID T01 T02 Student_name 王晓明 Teacher_name 刘老师 张老师 Student_ID S01 S02 class 一班 department 语文 数学 score 60 70 1) 请查询出一班学生的语文成绩,结果如下

班级 学生姓名 科目 成绩

2)请查询出所有成绩》60的学生,结果如下

班级 学生姓名 科目 成绩

33. 学生成绩表(stuscore) 姓名 name 张三 张三 张三 李四 李四 李四 课程 subject 数学 语文 英语 数学 语文 英语 分数 score 89 80 70 90 70 80 学号 stuid 1 1 1 2 2 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. 在SQL Server 2000中,下列关于索引说法错误的是()

A. 可以通过SQL 语句不删除圆索引二直接修改建立新的索引类型 B. 如果一个表中存在重复记录,则不能建立索引

C.一个表中只能建立一个聚簇索引

C. 一个表的主索引必须对不包含空值的字段建立,并且强制该字段成为唯一索引。

36. 描述table和view的区别

37. 描述字段类型 char,varchar(nchar)的区别

38. A表left join B 表时,取出所有A表数据还是B表数据 39. “select top 10 * from A表”(信息不明)

40. 描述SQL 语句中的关键字 union 和 union all的区别

41. A表 full join B表 和A 表 join B 表获得的记录是否一样?(题目信息不清晰) 42. 针对SQL 语句的关键字 in 和。。。(信息不清晰) 43. MySQL中有一张任务表(task),请给出搜寻语句列出task表中任务描述(descript)为空的任务。 44. 数据库

下面是学生成绩表(score)结构说明 字段名称 Sc_number Sc_name Sc_sex Sc_courseid Sc_score Sc_ismakcup 字段解释 学号 姓名 性别 课程号 分数 当前考试是否为补考 字段类型 字符 字符 字段长度 8 50 约束 pk Not null Not null pk Not null Not null 字符(男:1;女:2 0) 5 字符 数值 3 字符(补考:1;2 非补考:0)

下面是课程表(course)说明 字段名称 Co_id Co_name Co_desc 字段解释 课程号 课程名 课程介绍 字段类型 字符 字符 字符 字段长度 5 3 60 约束 pk Not null 1) 如果学号的前两位表示年级,要查找98级女生的姓名,请邪乎相应的SQL 语句

2) 要查找所有需要补考(小于60分)的学生姓名和这门课程的名称和成绩,请写出相应的SQL 语句

45. 数据库

按照要求写出SQL

假设student 表中存放的某学校学生的信息,其字段定义为: 列名 ID NAME AGE CLASSID BIRTHDAY 数据类型 int nvarchar int int datetime 说明 主键 姓名 年龄 班级,存放班级的主键 生日

Class 表是存放的是班级的信息,定义为: 列名 ID NAME 数据类型 int nvarchar 说明 主键 班级名称 1)寻找学校中所有姓“张”的学生

2)寻找班级名称为“A班”的,年龄最大的前5名学生。 3)统计每个班级的人数,(要求显示班级名称和人数)

46. (表不明)编写SQL 语句找出至少两门功课几个的学生名字

47. (表不明)编写SQL语句找出语文成绩排名第三的学生名字及具体分数 48.