WEB 面试题(九) 数据库编程 其一

本文提供了一系列SQL查询题目,涵盖了条件查询、嵌套查询、多表查询等,涉及从简单的数据筛选到复杂的联表操作。例如,如何在GRADE表中查找特定分数范围的学生,或者在多表中查询学习特定课程的学生信息。同时,文章还讨论了触发器和自定义函数的应用,如在图书管理场景下,如何实现借书、还书的逻辑处理以及图书库存的动态更新。
摘要由CSDN通过智能技术生成

141.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的
a.select top 10 * from A where id not in (select top 30 id from A)
演变步骤:
1)select top 30 id from T_FilterWords–取前条
2)select * from T_FilterWords where id not in (select top 30 id from T_FilterWords)–取id不等于前三十条
3)select top 10 * from T_FilterWords
b.select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
c.1用ROW_NUMBER实现
142.综合查询(条件查询、嵌套查询、多表查询)
表一:student_info
学号 姓名 性别 出生年月 家庭住址 备注
0001 张三 男 1981-8-9 北京 NULL

表二:curriculum
课程编号 课程名称 学分
0001 计算机基础 2
0002 C语言 2

表三:grade
学号 课程编号 分数
0001 0001 80
0001 0002 90
a.条件查询
1)在GRADE表中查找80-90份的学生学号和分数
select 学号,分数 from grade where 分数 between 80 and 90
2)在GRADE 表中查找课程编号为003学生的平均分
select avg(分数) from grade where 课程编号=‘003’
3)在GRADE 表中查询学习各门课程的人数
Select课程编号,count(学号) as 人数from grade group by 课程编号
4)查询所有姓张的学生的学号和姓名
select 姓名,学号 from student_info where 姓名 like '张%’
b.嵌套查询
1)查询和学号’0001’的这位同学性别相同的所有同学的姓名和出生年月
select 姓名,出生年月 from student_info where 性别 in(select 性别 from student_info where sno=‘0001’)
2)查询所有选修课程编号为0002 和0003的学生的学号、姓名和性别
select 学号,姓名,性别 from student_info where 学号 in(select 学号 from grade where 课程编号=‘0002’ and 学号 in(select 学号 from grade where 课程编号=‘0001’))
3)查询出学号为0001的学生的分数比0002号学生最低分高的课程编号的课程编号和分数

select 课程编号, 分数 fr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值