select * from Classinfo
select * from StuInfo
select * from CourseInfo
select * from ScoreInfo --分组 group by,分组后在结果列中只能出现分组依据列和聚合列
--统计男女人数
select stuSexy,COUNT(*)
from StuInfo
group by stuSexy--分组也是一个聚合过程,把所有性别相同的元组放到了同一行 --算出每门课的平均分
select cId,avg(score)
from ScoreInfo
group by cId --根据科目进行分组,算出平均分 select cId,avg(score)
from ScoreInfo
group by cId,StuId --按多个属性进行分组 --求每个班的男女人数,同时输出班级名
select ci.className,si.stuSexy,COUNT(*)
from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
group by ci.className,si.stuSexy --除了这两个分组关键属性,其他属性都被合并了,所以不能再使用 select ci.classId,si.stuSexy,COUNT(*)
from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
group by ci.classId,si.stuSexy --只能使用ci.classId和si.stuSexy了 --统计学生编号>2的各班级的各性别的学生人数
select ci.className,si.stuSexy,COUNT(*)
from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
where si.stuId>2
group by si.stuSexy,ci.className --统计学生编号>2的编号为1的班级的各性别的学生人数
select ci.className,si.stuSexy,COUNT(*)
from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
where si.stuId>2 and ci.classId=1
group by si.stuSexy,ci.className --having查询
--统计学生编号>2的编号各班级的各性别的学生人数>1的信息
select ci.className,si.stuSexy,COUNT(*)
from StuInfo as si
inner join Classinfo as ci on si.classId=ci.classId
where si.stuId>2
group by si.stuSexy,ci.className having count(*)>1 --对count增加条件 select * from Classinfo
select * from StuInfo
select * from CourseInfo
select * from ScoreInfo --联合查询:将多个查询的结果集合合并成一个集合union
--要求:1,结果集列数要一致 2,对应列的类型要一致
--union,union all,except,intersect 并,直接相加,差,交
select stuId from StuInfo
union
select stuid from ScoreInfo select stuId from StuInfo
union all
select stuid from ScoreInfo select stuId from StuInfo
except
select stuid from ScoreInfo select stuId from StuInfo
intersect
select stuid from ScoreInfo --快速备份
--向一个不存在的表中快速插入数据:包括插入属性行
select * into test1 from Classinfo --新建一个空表,但是包含属性列
select * into test2 from Classinfo
where 1=2 --向一个存在的表中插入数据
insert into test2(className)--因为classId是自增的所以不能从外界添加,所以只能添加className
select className from Classinfo --格式转化函数CAST,CONVERT
select CAST(89.000000 as decimal(4,1))
select CONVERT(decimal(4,1),89.000000) select CAST(1 as CHAR(1))+'' select char(65)
select ASCII('A')
select left('ABCDEF',5)
select right('ABCDEF',5)
select substring('ABCDEF',1,5)
select lower('ABCDEF')
select upper('ABCDEFa')
select ltrim(' ab c')--去掉左侧空格
select RTRIM('abc ')
select STR(1) select GETDATE()
select dateAdd(YY,1,GETDATE())
select dateAdd(MM,1,GETDATE())
select dateAdd(DD,1,GETDATE())
select DATEPART("Dayofyear",GETDATE())--求出一年中第几天
select DATEPART("year",GETDATE())--返回int型
select DATEPART("month",GETDATE())
select DATEPART("day",GETDATE()) select dateDiff(DD,dateAdd(YY,1,GETDATE()),GETDATE())--日期差 select STR(DATEPART(YY,stuBirthday))+'-'+ltrim(STR(DATEPART(MM,stuBirthday)))+'-'+ltrim(STR(DATEPART(DD,stuBirthday)))
from StuInfo select * from Classinfo
select * from StuInfo
select * from CourseInfo
select * from ScoreInfo
--查询科目名称,平均分
select ci.cName,AVG(sco.score)
from ScoreInfo as sco
inner join CourseInfo as ci on sco.scoreId=ci.cId
group by ci.cName --查询班级名称,一个班平均分
-- sco-stu-class
select ci.className,AVG(sco.score)
from ScoreInfo as sco
inner join StuInfo as si on sco.StuId=si.stuId
inner join Classinfo as ci on si.classId=ci.classId
group by ci.className --查询查询班级名称,科目名称,平均分
-- course-sco-stu-class
select ci.className,cour.cName,AVG(sco.score)
from ScoreInfo as sco
inner join StuInfo as si on si.stuId=sco.StuId
inner join Classinfo as ci on si.classId=ci.classId
inner join CourseInfo as cour on sco.cId=cour.cId
group by ci.className,cour.cName

1

sql 基础语法3:分组,聚合函数,having,联合查询,快速备份,内联函数的更多相关文章

  1. C++中对C的扩展学习新增语法——内联函数以及函数参数

    内联函数以及函数参数 内联函数 使用 inline 关键字必须和函数体放在一起. 内联函数具有内部链接属性. 内联函数会被编译器在编译阶段替换到函数调用的地方. 可以把内联函数定义写到头文件中,多个c ...

  2. C++基础学习6:内联函数

    C++语言新增关键字 inline,用于将一个函数声明为内联函数.在程序编译时,编译器会将内联函数调用处用函数体替换,这一点类似于C语言中的宏扩展. 采用内联函数可以有效避免函数调用的开销,程序执行效 ...

  3. 你好,C++(28)用空间换时间 5.2 内联函数 5.3 重载函数

    5.2  内联函数 通过5.1节的学习我们知道,系统为了实现函数调用会做很多额外的幕后工作:保存现场.对参数进行赋值.恢复现场等等.如果函数在程序内被多次调用,且其本身比较短小,可以很快执行完毕,那么 ...

  4. [ 随手记 1 ] C/C++宏,普通函数,内联函数

    函数定义 C 语言中的函数定义的一般形式如下: return_type function_name( parameter list ) { body of the function } 在 C 语言中 ...

  5. C/C++之宏、内联函数和普通函数的区别

    内联函数的执行过程与带参数宏定义很相似,但参数的处理不同.带参数的宏定义并不对参数进行运算,而是直接替换:内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算 ...

  6. C++命名空间、函数重载、缺省参数、内联函数、引用

    一 .C++入门 1.C++关键字 2.命名空间 3.C++输入&输出 4.缺省参数 5.函数重载 6.引用 7.内联函数 8.auto关键字 9.基于范围的for循环 10.指针空值null ...

  7. __inline定义的内联函数和宏的区别

    转自:http://blog.csdn.net/lw370481/article/details/7311668 函数与宏 #define TABLE_COMP(x) ((x)>0?(x):0) ...

  8. C++内联函数

    在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...

  9. C/C++ 内联函数

    内联函数具备一般函数的性质,但是不需要调用,而是在编译阶段,会用函数体替换函数名被调用的地方.可以节省调用时间(进出栈.保存上下文). 在编译层面和宏的作用相同.内联函数的展开在编译阶段,宏展开在预处 ...

  10. 特殊用途语言特性——默认参数、内联函数和constexptr函数

    1 默认实参 某些函数有这样一些参数,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参.调用含有默认实参的函数时,可以包含该实参,也可以省略该实参. 我们可 ...

随机推荐

  1. C# 私有字段前缀 _ 的设置(VS2019, .editorconfig)

    常量和静态只读字段大写 私有字段前缀 _ #### Naming styles #### # Naming rules dotnet_naming_rule.const_should_be_all_u ...

  2. HDU 6090 Rikka with Graph —— 2017 Multi-University Training 5

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 10.18.2 linux文件压缩与打包

    tar压缩工具 tar 本身为一个打包工具,可以把目录打包成一个文件,它的好处是它把所有文件整合成一个大文件整体,方便拷贝或者移动. 语法:tar [-zjxcvfpP] filename tar 命 ...

  4. qt编程参考资料

    https://qtguide.ustclug.org/

  5. 点击按钮后URL呗改变

    这里留个坑,Button默认类型是submit.没有写类型的,可能会导致触发Url改变.要么写类型,要么在按钮对应的Js方法里return.

  6. 大数据学习笔记之Hadoop(二):HDFS文件系统

    文章目录 一 HDFS概念 1.1 概念 1.2 组成 1.3 HDFS 文件块大小 二 HFDS命令行操作 三 HDFS客户端操作 3.1 eclipse环境准备 3.1.1 jar包准备 3.2 ...

  7. 【C#学习笔记】 List.AddRange 方法

    [官方笔记] 将指定集合的元素添加到 List 的末尾 命名空间:System.Collections.Generic程序集:mscorlib(在 mscorlib.dll 中) public: vo ...

  8. 关于函数lower_bound()如何使用的问题

    这个函数是c++ STL里自带的函数,应该需要引用头文件#include<iostream> 功能:在一个有序的序列中查找可以将value(一个变量)放在队列里面而不会引起序列长度变化,单 ...

  9. [BOI 2008]Elect 选举

    题目描述 N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党退出后,其它党 ...

  10. C++中的面向对象(一)

    1,本节课开始进入 C++ 中的面向对象,面向对象是 C++ 中最核心也是体现 C++ 价   值的一个部分: 2,日常生活当中我们都习惯对事物进行分类,那么这种分类的思想是否可以引入到 程序设计中? ...