sql面试题

一、如下数据表(afinfo):

Id name age Height sex memo
1 徐洪国 37 175 高中
2 王芳芳 26 160 本科
3 徐晓盛 24 170 硕士
4 陈晓 30 170 博士
5 郑凯 27 177 大专

1)、请编写sql语句对年龄进行升序排列

 select * from afinfo order by age desc;

2)、请编写sql语句查询对“徐”姓开头的人员名单

select * from afinfo where name like '徐%';

3)、请编写sql语句修改陈晓的年龄为45

 update afinfo set age = 45 where name='陈晓';

4)、请编写sql删除王芳芳这表数据记录

delete from afinfo where name='王芳芳'; 

二、如下数据表

学生信息表(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');

相关推荐

  1. SQL经典面试

    2024-07-16 07:38:01       46 阅读
  2. SQL面试(二)

    2024-07-16 07:38:01       26 阅读
  3. sql面试

    2024-07-16 07:38:01       25 阅读
  4. 50道SQL面试

    2024-07-16 07:38:01       32 阅读
  5. SQL面试挑战13:分组topN

    2024-07-16 07:38:01       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 07:38:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 07:38:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 07:38:01       62 阅读
  4. Python语言-面向对象

    2024-07-16 07:38:01       72 阅读

热门阅读

  1. 开发指南048-mysql设置

    2024-07-16 07:38:01       29 阅读
  2. Web 中POST为什么会发送两次请求

    2024-07-16 07:38:01       27 阅读
  3. Sqlmap中文使用手册 - Injection模块参数使用

    2024-07-16 07:38:01       26 阅读
  4. SpringBoot解决Apache Tomcat输入验证错误漏洞

    2024-07-16 07:38:01       30 阅读
  5. android studio 怎么下载 buildTool

    2024-07-16 07:38:01       24 阅读
  6. Apache Lucene 详解及示例

    2024-07-16 07:38:01       24 阅读
  7. 大模型笔记3 Longformer for Extractive Summarization训练

    2024-07-16 07:38:01       26 阅读
  8. vue3中的props和emit

    2024-07-16 07:38:01       19 阅读
  9. 昇思25天学习打卡营第22天|MindNLP ChatGLM-6B StreamChat

    2024-07-16 07:38:01       26 阅读
  10. 函数式自动微分

    2024-07-16 07:38:01       21 阅读
  11. kubernetes1.24版本移除 Dockershim

    2024-07-16 07:38:01       24 阅读
  12. Redis 是什么

    2024-07-16 07:38:01       27 阅读