sql 基础语法3:分组,聚合函数,having,联合查询,快速备份,内联函数
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,联合查询,快速备份,内联函数的更多相关文章
- C++中对C的扩展学习新增语法——内联函数以及函数参数
内联函数以及函数参数 内联函数 使用 inline 关键字必须和函数体放在一起. 内联函数具有内部链接属性. 内联函数会被编译器在编译阶段替换到函数调用的地方. 可以把内联函数定义写到头文件中,多个c ...
- C++基础学习6:内联函数
C++语言新增关键字 inline,用于将一个函数声明为内联函数.在程序编译时,编译器会将内联函数调用处用函数体替换,这一点类似于C语言中的宏扩展. 采用内联函数可以有效避免函数调用的开销,程序执行效 ...
- 你好,C++(28)用空间换时间 5.2 内联函数 5.3 重载函数
5.2 内联函数 通过5.1节的学习我们知道,系统为了实现函数调用会做很多额外的幕后工作:保存现场.对参数进行赋值.恢复现场等等.如果函数在程序内被多次调用,且其本身比较短小,可以很快执行完毕,那么 ...
- [ 随手记 1 ] C/C++宏,普通函数,内联函数
函数定义 C 语言中的函数定义的一般形式如下: return_type function_name( parameter list ) { body of the function } 在 C 语言中 ...
- C/C++之宏、内联函数和普通函数的区别
内联函数的执行过程与带参数宏定义很相似,但参数的处理不同.带参数的宏定义并不对参数进行运算,而是直接替换:内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算 ...
- C++命名空间、函数重载、缺省参数、内联函数、引用
一 .C++入门 1.C++关键字 2.命名空间 3.C++输入&输出 4.缺省参数 5.函数重载 6.引用 7.内联函数 8.auto关键字 9.基于范围的for循环 10.指针空值null ...
- __inline定义的内联函数和宏的区别
转自:http://blog.csdn.net/lw370481/article/details/7311668 函数与宏 #define TABLE_COMP(x) ((x)>0?(x):0) ...
- C++内联函数
在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...
- C/C++ 内联函数
内联函数具备一般函数的性质,但是不需要调用,而是在编译阶段,会用函数体替换函数名被调用的地方.可以节省调用时间(进出栈.保存上下文). 在编译层面和宏的作用相同.内联函数的展开在编译阶段,宏展开在预处 ...
- 特殊用途语言特性——默认参数、内联函数和constexptr函数
1 默认实参 某些函数有这样一些参数,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参.调用含有默认实参的函数时,可以包含该实参,也可以省略该实参. 我们可 ...
随机推荐
- php chop()函数 语法
php chop()函数 语法 chop()函数是什么意思? php chop函数是rtrim函数的别名,作用与rtrim函数是相同的,删除字符串右边的空格或其他预定义字符,语法是chop(strin ...
- LOJ 3094 「BJOI2019」删数——角标偏移的线段树
题目:https://loj.ac/problem/3094 弱化版是 AGC017C . 用线段树维护那个题里的序列即可. 对应关系大概是: 真实值的范围是 [ 1-m , n+m ] :考虑设偏移 ...
- win7NVIDIA显卡驱动升级时卡住
可以先装上.NET framework,再更新就不会卡了
- python 中的__str__ 和__repr__方法
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >> ...
- Docker问题方案收集
1.问题: Unable to connect to unix:///var/run/docker.sock (Permission denied) from PHP code 解决方法: Make ...
- 【转】如何成功安装旧版本火狐,成功安装firebug和firepath插件
原文地址:https://www.cnblogs.com/meimei00/p/10566793.html
- cortable 使用方法
星期一到星期六,早上六点到晚上六点.每隔两个小时 执行语句 0 6-18/2 * * 1-6 commond
- 安装Elasticsearch5.4.0以及head,kibana插件
可以在网盘中下载也可以去官网下载 网盘: Elasticsearch 地址:http://pan.baidu.com/s/1hrI0AFU elasticsearch-head 地址:http:// ...
- ubuntu+qt+opencv
linux下Qt+OpenCv环境的搭建: https://blog.csdn.net/yaowangII/article/details/84303124 1.qt:https://blog.csd ...
- python3 装饰器修复技术@wraps到底是什么?
Python 装饰器中的@wraps的作用: 装饰器的作用: 在不改变原有功能代码的基础上,添加额外的功能,如用户验证等 @wraps(view_func)的作用: 不改变使 ...