zoukankan      html  css  js  c++  java
  • 世上最简版的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

  • 相关阅读:
    登录注册功能
    29-----BBS论坛
    linux笔记
    nginx,uwsgi发布web服务器
    linux常用服务部署
    linux系统基础优化及常用命令
    linux基本操作命令
    linux命令
    linux基础
    阿里云服务器搭建
  • 原文地址:https://www.cnblogs.com/CRRPF/p/12640111.html
Copyright © 2011-2022 走看看