sql面试题-二、如下数据表

学生信息表(student)

姓名name 学号code
张三 001
李四 002
马五 003
甲六 004

考试信息表(exam)

学号code 学科subject 成绩score
001 数学 80
002 数学 75
001 语文 90
002 语文 80
001 英语 90
002 英语 85
003 英语 80
004 英语 70

1)、查询出所有学生信息,sql怎么编写?

select * from student;

2)、新学生小明,学号为005,需要将信息写入学生信息表,sql语句怎么编写?

insert into student values ('小明',005); 

3)、李四语文成绩被登记错误,成绩实际为85分,更新到考试信息表中,sql语句怎么编写?

updata exam set score=85 where subject=‘语文’ and code=(select code from student where name="李四")

4)、查询出各科成绩的平均成绩,显示字段为:学科、平均分,sql怎么编写?

select subject,avg(score) from exam group up subject;

5)、查询出所有学生各科成绩,显示字段为:姓名、学号、学科、成绩,并以学号与学科排序,没有成绩的学生也需要列出,sql怎么编写?

select student.name,student.code,exam.subject,exam.score from student left join exam on student.code=exam.code order by code asc,subiect asc;

6)、查询出单科成绩最高的,显示字段为:姓名、学号、学科、成绩,sql怎么编写?

select student.name,student.code,exam.subject,exam.score from student left join exam on student.code=exam.code where (exam.subject,exam.score) in (select subject,max(score) from exam group by subject);

三、如下手数据表:

b1

主码 列标题 列名 数据类型 宽度 小数位数 是否空值
P 书号 TNO char 15 no
书名 TNAME varchar 50 no
作者姓名 TAUTHOR varchar 8 no
出版社编号 CNO char 5 yes
书类 TCATEGORY varchar 20 yes
价格 TPRICE numeric 8 2 yes

b2

主码 列标题 列名 数据类型 宽度 小数位数** 是否空值
p 出版社编号 CNO char 5 NO
出版社名称 CNAME varchar 20 NO
出版社电话 CPHONE varchar 15 YES
出版社城市 CCITY varchar 20 YES

1)、查询出版过“计算机”类图书的出版社编号(若一个出版社出版过多部“计算机”类图书,则在查询结果中该出版社编号只显示一次)

select distinct CNO from b1 where TCATEGORY='计算机';

2)、查询南开大学出版社的“经济”类或“数学”类图书的信息

select * from b1,b2 where b1.CNO=b2.CNO and b2.CNAME='南开大学' and (b1.TCATEGORY='经济' or b1.TCATEGORY='数学');

3)、查询编号为“00001”的出版社出版图书的平均价

select avg(TPRICE) from b1 where CNO='00001';

4)、查询至少出版过20套图书的出版社,在查询结果中按出版社编号的升序顺序显示满足条件的出版社编号、出版社名称和每个出版社出版的图书套数

select b2.CNAME from b1,b2 where b1.CNO=b2.CNO and group by b1.CNO having count(b1.CNO)>20;

5)、查询比编号为“00001”的出版社出版图书套数多的出版社编号

select CNO from b1 group by CNO having count(*)>(select count(*) from b1 where CNO='00001');
上一篇:Matlab进阶绘图第63期—带标记线的三维填充折线图


下一篇:【车载开发系列】GIT教程---如何下载代码库