• 世上最简版的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:ackup_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

  • 相关阅读:
    VS2008编写MFC程序--使用opencv2.4()
    November 02nd, 2017 Week 44th Thursday
    November 01st, 2017 Week 44th Wednesday
    October 31st, 2017 Week 44th Tuesday
    October 30th, 2017 Week 44th Monday
    October 29th, 2017 Week 44th Sunday
    October 28th, 2017 Week 43rd Saturday
    October 27th, 2017 Week 43rd Friday
    October 26th, 2017 Week 43rd Thursday
    October 25th, 2017 Week 43rd Wednesday
  • 原文地址:https://www.cnblogs.com/CRRPF/p/12640111.html
Copyright © 2020-2023  润新知