教学思路SQL之入门习题《学员成绩》 三、多表复杂子查询

简介:
1、查询出所有大连地区的学生的成绩。
2、查询从来没有参加任何考试的学生的信息。
3、查询有考试成绩纪录的学生的信息.
4、将所有大连地区学生的课程编号为3的课程成绩加10分。
5、删除所有C#课的成绩。
6、查询课程编号为3的课程的平均成绩,显示有此门课程成绩的学生编号,成绩及距平均分之间的差值。
7、查询参加了所有考试的学生的姓名。
8、查询有成绩纪录的学生人数。
9、查询有2门以上成绩的学生的姓名和联系方式
10、查询哪些学生有c#考试成绩,显示这些学生的姓名
11.查询出科目中教师的姓名,同时增加编号。
12.随机显示学生信息表中的两条数据:使用newid()函数
13.查询出联系电话为null的学生信息,联系电话用‘无’代替。
14.将查询出的地区为大连的都显示为null.
15.查询科目平均成绩超过70分的教师姓名。
新知识:
对空值进行显示操作:
  • isnull(A,‘aa’)函数可以将空值转换为有效的值。将列名A的值null改为‘aa’显示
  • nullif(A,‘aa’)函数可以根据指定的条件来生成空值。将列名A的值aa改为null显示
newid函数:
  •      
    使用newid()函数会产生随机行 
答案
1、查询出所有大连地区的学生的成绩。 
        select s.number,c.score    from chengji as c ,student as s where c.number=s.number and s.diqu='大连' 
        select * from chengji where number inselect number from student where diqu='大连'

2、查询从来没有参加任何考试的学生的信息。 
select * from student where number not in (select number from chengji) 
3、查询有考试成绩纪录的学生的信息. 
select * from student where number    in (select number from chengji) 
4、将所有大连地区学生的课程编号为3的课程成绩加10分。 
update chengji set score=score+10 where scorenumber=3 
5、删除所有C#课的成绩。 
delete chengji where scorenumber=(select scorenumber from score where kemu='C#'
6、查询课程编号为3的课程的平均成绩,显示有此门课程成绩的学生编号,成绩及距平均分之间的差值。 
select number,score-(select avg(score) from chengji where scorenumber=3) from chengji where scorenumber=3 
7、查询参加了所有考试的学生的姓名。 
select name from student where number inselect max(number) from chengji group by number) 
8、查询有成绩纪录的学生人数。 
    selectnumber ,name from student where number in 
select max(number) from chengji     group by number having count(scorenumber)=(select count(*) from score) ) 
9、查询有2门以上成绩的学生的姓名和联系方式。 
select name,lianxidianhua from student where number inselect number from chengji group by number having count(scorenumber)>2) 
10、查询哪些学生有c#考试成绩,显示这些学生的姓名。 
select name from student where number inselect number from chengji where scorenumber =(select scorenumber from score where kemu='c#')) 
给结果集添加编号 
11.查询出科目中教师的编号,同时增加序号。 
        select 序号=(select count(*) from score as a where a.scorenumber<=b.scorenumber ),teacherid    from score as b 
        select 序号=identity(1,1),teachername into #newtable from score 
12.随机显示学生信息表中的两条数据:使用newid()函数 
select top 2 * from student    order by newid() 
13.查询出联系电话为null的学生信息,联系电话用‘无’代替。 
select name,isnull(convert(char(20),lianxidianhua),'无'from student     
14.将查询出的地区为大连的都显示为null 
select name,nullif(diqu,'大连'from student 
15.查询科目平均成绩超过70分的教师姓名。 
select teachername from teacherinfo where teacherid in    
(select teacherid from score where scorenumber in 
(select scorenumber from chengji group by scorenumber having avg(score)>=70))
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/185781如需转载请自行联系原作者

叶子文文
相关文章
|
3月前
|
SQL 关系型数据库 PostgreSQL
遇到SQL 子查询性能很差?其实可以这样优化
遇到SQL 子查询性能很差?其实可以这样优化
160 2
|
3月前
|
SQL 存储 数据管理
SQL数据库的使用指南:从入门到精通
随着信息技术的飞速发展,数据库已成为各类企业和组织不可或缺的一部分。作为最流行的数据库管理系统之一,SQL数据库广泛应用于各种场景,如数据存储、数据管理、数据分析等。本文将详细介绍SQL数据库的使用方法,帮助初学者快速入门,并帮助有经验的开发者深化理解。一、SQL数据库基础首先,我们需要理解SQL数
176 2
|
3月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
4月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
106 6
|
3月前
|
SQL 安全 关系型数据库
SQL自动化注ru-SQLmap入门操作(一)
SQL自动化注ru-SQLmap入门操作(一)
|
3月前
|
SQL 安全 关系型数据库
SQL自动化注茹-SQLmap入门操作(二)
SQL自动化注茹-SQLmap入门操作(二)
|
5月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
413 0
|
5月前
|
SQL 数据库 开发者
SQL中的子查询:嵌套查询的深度解析
【8月更文挑战第31天】
670 0
|
4月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
6月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
147 13