世上最简版的SQL Server学习_上篇

目录:

1.SQL数据处理

2.常用操作

3.创建定时任务

4.模糊查询与通配符查询

5.聚合函数介绍

6.排序

7.分组查询

 

 

一、SQL处理数据

 

 

                         SQL用于查询并导出数据

                                   |

                                   |

 

----> 需求分析 -----> 数据采集 -----> 数据查询 ------> 数据分析 ------> 数据分析报告 ------

                                                  |

                                                  |

                                  PythonR用于导出数据并分析整理                                      

 

 

二、常用操作

 

1、主要功能

   

性能保障、数据安全、数据存储

 

2、常用操作类型

    

创建数据库、还原数据库、备份数据库、连接远程数据库

 

3、数据表操作

 

DQL : 数据库查询语言-----select

DML: 数据操作语言---------update(改)、insert(增)、delete(删)

DDL:数据定义语言---------createalterdrop

 

其中select包括:

条件查询:wheredistinct、逻辑运算符

分组:group by having

排序:order by

常用函数

子查询

多表关联

 

三、创建定时任务

 

 

 

1、任务说明

 

 

 

自动备份任务:每天0点整准时备份CS数据库,备份路径D:\backup_dropdate

 

自动清理旧备份任务:每周日0点整清理旧备份,清理文件夹同上地址

 

 

 

2、详细过程图解

主要步骤:

 

·启动维护计划向导

 

·选择计划属性

 

 

 ·选择维护任务

 

 

 

 

·新建作业计划

 

 

·结果图:

 

 

 

 

 

四、模糊查询与通配符查询

 

 

1、查询内容

 

特殊关键字:likeinbetween

 

通配符: %(代表任意字符)、 _(代表一个字符)

 

空值和空格

 

 

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、聚合函数内容

 

·聚合函数介绍

 

Sumcountmaxminavg

只能对数值进行运算,如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、字符型按照首字母AZ排序

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

 

 

posted on 2020-04-06 00:10  没有平凡的人生  阅读(284)  评论(0编辑  收藏  举报

导航