目录:
1.SQL数据处理
2.常用操作
3.创建定时任务
4.模糊查询与通配符查询
5.聚合函数介绍
6.排序
7.分组查询
一、SQL处理数据
SQL用于查询并导出数据
|
|
----> 需求分析 -----> 数据采集 -----> 数据查询 ------> 数据分析 ------> 数据分析报告 ------
|
|
Python和R用于导出数据并分析整理
二、常用操作
1、主要功能
性能保障、数据安全、数据存储
2、常用操作类型
创建数据库、还原数据库、备份数据库、连接远程数据库
3、数据表操作
DQL : 数据库查询语言-----select
DML: 数据操作语言---------update(改)、insert(增)、delete(删)
DDL:数据定义语言---------create、alter、drop
其中select包括:
条件查询:where、distinct、逻辑运算符
分组:group by having
排序:order by
常用函数
子查询
多表关联
三、创建定时任务
1、任务说明
自动备份任务:每天0点整准时备份CS数据库,备份路径D:ackup_dropdate
自动清理旧备份任务:每周日0点整清理旧备份,清理文件夹同上地址
2、详细过程图解
主要步骤:
·启动维护计划向导
·选择计划属性
·选择维护任务
·新建作业计划
·结果图:
四、模糊查询与通配符查询
1、查询内容
特殊关键字:like、 in、 between
通配符: %(代表任意字符)、 _(代表一个字符)
空值和空格
2、查询脚本及实现
查询姓王的学生
select * from mingdan where xm like'王%'
查询不姓王的学生--not和like的组合使用
select * from mingdan where xm not like'王%'
查询姓王且名字是2个字的学生
select * from mingdan where xm like'王_'
计算出学生的年龄--强调当前的字段里没有符合年龄的字段,如何计算出来
Select 2020-substring(IDcard,7,4) from mingdan
代码展现:
select IDcard, substring(IDcard,7,4)出生年份 from mingdan
select 2020-substring(mingdan.IDcard,7,4)年龄 from mingdan
where 2020-substring(mingdan.IDcard,7,4) >= 8 and 2020-substring(mingdan.IDcard,7,4) <= 30--直接算出年龄
select 2020-substring(mingdan.IDcard,7,4)年龄 from mingdan
where 2020-substring(mingdan.IDcard,7,4) between 9 and 20
select * from mingdan where IDcard is null or IDcard like '% %'
实现between语句
五、聚合函数介绍
1、聚合函数内容
·聚合函数介绍
Sum、count、max、min、avg
只能对数值进行运算,如number字段、存储数字的varchar字段
·不得不说的区别
除了count以外,聚合函数都会忽略空值count(1)
·利用distinct去重
2、查询脚本
课程表(SCORE)
1 语文 2 数学 3英语 4体育
1.查询南天鹏的所有考试成绩
select * from student where xm='南天鹏'--先查出南天鹏的学号
select * from score where xh=130901001--根据学号查成绩
2.计算南天鹏成绩的总分,最高分,最低分,平均分
select sum(cj) as 总分,
max(cj) as 最高分,
min(cj) as 最低分,
avg(cj) as 平均分
from score
where xh = 130901001
3.课后题:计算语文课的最高分、最低分、平均分
select sum(cj) as 总分,
max(cj) as 最高分,
min(cj) as 最低分,
avg(cj) as 平均分
from score where id=1
4.数一数总共有多少个学生
select count(xh) from student
select count(1) from student
5.count与其他聚合函数的的区别
select count(1) from cs ;
select count(id) from cs ;
select sum(1) from cs ;
注意:空格和空值也同样计算了
6.查询学生姓名是否有重复
select distinct xm from student --被过滤掉重复的
select distinct xm,xb from student --按姓名和性别查重
六、排序
一、
(1) 排序关键字
Order by
(2) 排序用法
1、 单字段排序
2、 多字段排序
3、 升降序 desc降序,升序不需要做任何标注(默认就是升序)
(3) 排序的原理
1、字符型按照首字母A→Z排序
2、数字、日期按照大小来排序
(4) 使用ORDER BY 排序的两大原则
1、原则1:永远是在最后
2、原则2:没有不能排序的东西
二、脚本查询
1.查询学生名单并按照姓名排序
select * from student order by xm
2.查询语文课的成绩,以降序(从高到低)排列
select * from score where id=1 order by cj desc
3.查询学生所有成绩,并按照姓名,成绩(降序)排列
select xm,name,cj from score order by xm,cj desc
·排序条件为(120901008-120901005),xm
七、分组查询
·分组原理解析
1、计算每个学生的总分
·浏览所有学生成绩表
·告诉SQL,按照什么分组(这里按照姓名)
·分组之后算总分、平均分(sum()、avg())
·注意事项:group by的顺序是在where之后
2、筛选出平均分大于60分的同学(分组查询中,对于聚合结果的过滤和筛选要用到having)
·在group by后要用having