链接查询和分组查询

use Myschool
--查询对应年级下的人数
SELECT COUNT(1) AS ‘人数‘ FROM Student WHERE GradeId=1
SELECT COUNT(1) AS ‘人数‘ FROM Student WHERE GradeId=2
SELECT COUNT(1) AS ‘人数‘ FROM Student WHERE GradeId=3
--分组查询地区对应的人数
--分组查询原理:根据特定列进行的分组,找列的想同值
SELECT COUNT(1) AS ‘人数‘,Address AS ‘地址‘
FROM Student WHERE Address LIKE ‘学生宿舍‘
GROUP BY Address
--查询科目的平均分
--WHERE-->GROUP BY-->ORDER BY
SELECT AVG(StudentResult) AS ‘平均分‘,Subject.SubjectName FROM Subject,Result
WHERE Subject.Subjectld=Result.Subjectld
GROUP BY Subject.SubjectName
ORDER BY AVG(StudentResult)ASC
--查询每学期的男女同学人数
--根据多列进行分组
SELECT COUNT(1) AS ‘人数‘,GradeId,Sex FROM Student
GROUP BY GradeId,Sex
ORDER BY COUNT(1)
--查询科目的品均分大于70
--HAVING和WHERE有什么不同
--where是针对表中原有的记录进行条件筛选
--group by是针对where条件筛选后的记录进行分组
--having是针对group by分组后的记录进行条件筛选
SELECT AVG(StudentResult) AS ‘平均分‘,Subject.SubjectName FROM Subject,Result
WHERE Subject.Subjectld=Result.Subjectld
GROUP BY Subject.SubjectName HAVING AVG(StudentResult)>=70
ORDER BY AVG(StudentResult)
--链接查询
--1.内连接
SELECT S.StudentName,G.GradeNema FROM Student AS S INNER JOIN Grade AS G
ON S.GradeId=G.GradeId
--查询学生姓名对应科目和考试分数
--当使用内连接进行多表联查时,直接空格继续用JINNER JOIN
SELECT S.StudentName,SU.SubjectName,R.StudentResult
FROM Result AS R INNER JOIN Subject AS SU
ON (R.Subjectld=SU.Subjectld)
INNER JOIN Student AS S ON (S.StudentNo=R.StudentNo)
--2.外连接
--2.1左外链接
SELECT S.StudentName,R.StudentResult, R.Subjectld
FROM Result AS R LEFT JOIN Student AS S
ON (S.StudentNo=R.StudentNo)
SELECT S.StudentName,G.GradeNema
FROM Grade AS G LEFT JOIN Student AS S
ON(S.GradeId=G.GradeId)
SELECT R.*,S.SubjectName
FROM Subject AS S LEFT JOIN Result AS R
ON (R.Subjectld=S.Subjectld)
--2.2右外连接
SELECT S.StudentName,R.StudentResult,R.Subjectld
FROM Result AS R RIGHT JOIN Student AS S
ON (S.StudentNo=R.StudentNo)
SELECT S.StudentName,G.GradeNema
FROM Student AS S RIGHT JOIN Grade AS G
ON (S.GradeId=G.GradeId)
SELECT R.*,S.SubjectName FROM Result AS R RIGHT JOIN Subject AS S
ON(R.Subjectld=S.Subjectld)

原文地址:https://www.cnblogs.com/tinghao/p/10148472.html

时间: 2024-07-30 11:14:15

链接查询和分组查询的相关文章

S1/C#语言和数据库技术基础/11-连接查询和分组查询

分组查询 采用分组查询的T-SQL语句如下. SELECT   CourseID,AVG(Score)   AS   课程平均成绩 FROM   Score GROUP   BY   CourseID (1)查询男女学生的人数各是多少 SELECT   COUNT(*)    AS   人数,SSex    FROM   Students GROUP   BY   SSex (2)查询每个年级的总人数 SELECT   COUNT(*)   AS   年级人数,SGrade   FROM   S

【Hibernate】Hibernate的聚类查询、分组查询、排序与时间之差

在Hibernate中的HQL语句其实能够基本能够实现SQL语句所做的事情,正如jQuery至于javascript一样.虽然HQL语句是对类的查询,但是HQL在实行聚类查询.分组查询.排序与时间之差等查询,也无须把查询结果查询出来,再通过对List的处理才得到结果. 比如有一张如下的Testtable表: 要像<[Mysql]求出离最近相差X天的项,sql语句关于日期的比对>(点击打开链接)一样,查询date字段离现在具有30年的项有多少,SQL语句则这样写: select count(*)

连表查询和分组查询

表连接和分组链接 1.分组查询 01.分组查询是按某一列分组,相同的列合并,查询出结果 02.Group by 关键字 03.分组查询支持的条件: 001.年级 002.姓氏 003.地址 004.年龄 04.语法 select 列名 from 表明 where 条件 group by 列名 *group by中查询的列,必须出现在查询列中!!! *分组的顺序为由前到后 2.having 01.对分组后的数据进行筛选,将"组"看做"列"来限定条件 02.语法 sel

Django学习【第7篇】:Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany(&qu

Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名"

Django Mysql数据库-聚合查询与分组查询

一.聚合查询与分组查询(很重要!!!) 聚合查询:aggregate(*args, **kwargs),只对一个组进行聚合 from django.db.models import Avg,Sum,Count,Max,Min # 1.查询所有图书的平均价格 print(models.Book.objects.all().aggregate(Avg("price"))) aggregate()是QuerySet 的一个终止子句(也就是返回的不再是一个QuerySet集合的时候),意思是说

关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询

http://www.jianshu.com/p/eeb6a898d4ec 前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. SQL数据查询 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]- FROM <表名或视图名>[,<表名或视图名>]- [WHERE <条件表达式>] [GROUP BY <列名> [HAVING &l

[Mysql 查询语句]——分组查询group by

#group by(1) group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组(2) group by可用于单个字段分组,也可用于多个字段分组 select * from employee; +------+------+--------+------+------+-------------+ | num | d_id | name | age | sex | homeaddr | +------+------+--------+------+------+----

连接查询和分组查询

一.分组查询:用于统计时经常使用分组查询 1.group by分组 01.例如查询每个年级的总人数 --一旦通过group by分组,那么我们只能获取组相关的信息,而不能获取组中成员的信息 --在select后只能跟聚合函数和group by后面的列,其他列不允许 1 select gradeid as 年级编号,COUNT(studentno) as 总人数 2 from student 3 group by gradeid 聚合函数: sum()--count()--max() min()-