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. 安装uWebSocketIO

    https://github.com/uNetworking/uWebSockets sudo apt-get install libuv1-dev git clone https://github. ...

  2. flask-路转换器

    from flask import Flask, render_template from werkzeug.routing import BaseConverter # 配置regex路由转换器 # ...

  3. MySQL清除表数据而保留表结构TRUNCATE TABLE

    有时候我们会需要清除一个表格中的所有资料.要达到者个目的,一种方式是使用 DROP TABLE 指令,不过这样整个表格就消失,表无法再被用了.另一种方式就是运用 TRUNCATE TABLE 的指令. ...

  4. liunx 上无法kill 掉 redis服务

    要新学习一下redis 的哨兵服务,但是发现启动redis的时候,哨兵服务已经存在了,而且reids6379的服务也杀不死,就找到这样的参考方案 /etc/init.d/redis-server st ...

  5. 配置github的pull request触发jenkins自动构建

    参照: https://www.cnblogs.com/zanjiahaoge666/p/6402738.html 之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般 ...

  6. Linux查看文件大小5个常用命令

    1. 前言 Linux 系统有非常好用的命令,功能也非常丰富,如果你对命令行工具熟悉,可以非常高效率完成维护工具.本文主要介绍Linux系统中,用于查看文件大小的命令. Linux 查看文件大小5个常 ...

  7. python Condition类(锁)

    Condition(条件变量)通常与一个锁关联.需要在多个Contidion中共享一个锁时,可以传递一个Lock/RLock实例给构造方法,否则它将自己生成一个RLock实例. 不理解锁的,请看上一条 ...

  8. python 自动把mysql备份文件发送邮箱

    import os import time import sched import smtplib from email.mime.text import MIMEText from email.he ...

  9. 实验报告(六)&第八周学习总结

    班级 计科二班 学号 20188425 姓名 IM 完成时间2019/10/18 评分等级 实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 ...

  10. cross-env

    cross-env跨平台设置环境变量 安装npm install --save-dev cross-env config文件下新建环境对应文件 新建编译命令 修改build/webpack.prod. ...