• SQL 查询 (代码)


    **************************************
    *************SELECT  查询*************
    **************************************

    查询单列字段信息:
    SELECT 姓名
    FROM 例子
    **************************************
    查询多字段信息:
    SELECT 姓名,地址,电话
    FROM 例子
    **************************************
    查询所有字段信息:
    SELECT *
    FROM 例子
    **************************************
    通过指定数据表中所有字段来查询数据信息:
    SELECT 姓名,职务,地址,电话,编号,性别
    FROM 例子

    **************************************
    *         DISTINCT  去除重复         *
    **************************************

    取出查询结果中重复的值:
    SELECT DISTINCT 姓名
    FROM 例子
    **************************************
    去掉多列查询结果中的重复值:
    SELECT DISTINCT 姓名,编号,电话
    FROM 例子
    **************************************
    在查询数据时使用别名:
    SELECT
    编号 AS 'nomber'
    姓名 AS 'name'
    电话 AS 'phone'
    FROM 例子
    **************************************

    **************************************
    *           ASC  升序排列            *
    **************************************

    将查询结果进行升序排列:
    SELECT
    编号,姓名,地址,电话
    FROM 例子
    ORDER BY 姓名 ASC
    /*按照‘姓名’进行升序排列  ASC可省*/
    **************************************
    实现多列升序排序:
    SELECT
    编号,姓名,地址,电话
    FROM 例子
    ORDER BY 姓名,地址
    **************************************

    **************************************
    *           DESC 将序排列            *
    **************************************

    将查询结果进行将序排列:
    SELECT
    编号,姓名,地址,电话
    FROM 例子
    ORDER BY 姓名 DESC
    **************************************
    多列先升序后降序排列:
    SELECT *
    FROM 例子
    ORDER BY 姓名 ASC,地址 DESC
    **************************************
    多列先降序后升序排列:
    SELECT *
    FROM 例子
    ORDER BY 姓名 DESC,地址 ASC
    **************************************

    **************************************
    *         GROUP BY 分组查询          *
    **************************************

    将查询结果进行分组:
    SELECT 科目,SUM(各科成绩) AS '各科总成绩'
    FROM 成绩单
    GROUP BY 科目
    /*将各科成绩求和作为‘各科总成绩’的数据*/
    **************************************
    将分组数据升序排序:
    SELECT 科目,SUM(各科成绩) AS '各科总成绩'
    FROM 成绩单
    GROUP BY 科目
    ORDER BY 科目
    **************************************
    将分组数据降序排序:
    SELECT 科目,SUM(各科成绩) AS '各科总成绩'
    FROM 成绩单
    GROUP BY 科目
    ORDER BY 科目 DESC
    **************************************

    **************************************
    *     HAVING 对查询结果进行限制      *
    **************************************

    HAVING子句的应用:
    SELECT 科目,SUM(各科成绩) AS '各科总成绩'
    FROM 成绩单
    GROUP BY 科目
    HAVING SUM(各科成绩)<200
    **************************************

    **************************************
    *           WHERE 条件查询           *
    **************************************

    单条件查询:
    SELECT 编号,姓名,性别
    FROM 例子
    WHERE 性别='女'
    **************************************

    **************************************
    *         算术关系运算符查询         *
    **************************************

    使用运算符进行条件查询:
    SELECT 姓名,性别,编号
    FROM student
    WHERE 年龄>20
    /*
    =   等于
    >   大于 例:生日>'1990-10-01'
    >=  大于等于
    <   小于
    <=  小于等于
    <>  不等于(除条件以外的)
    !=  不等于()
    !>  不大于
    !<  不小于
    */

    **************************************
    *         BETWEEN 范围筛选           *
    **************************************

    使用BETWEEN运算符查询数值区间的数据:
    SELECT *
    FROM 例子
    WHERE 编号 BETWEEN 1002 AND 1004
    ORDER BY 编号
    **************************************

    **************************************
    *     TOP 指定查询结果中返回的行数   *
    **************************************

    使用TOP子句查询数据表中前三条记录:
    SELECT TOP 3 *
    FROM 例子
    **************************************
    在TOP子句中使用PERCENT关键字:
    SELECT TOP 3 PERCENT *
    FROM 例子
    执行后:查询前百分之3条记录
    **************************************
    使用IS NOT NULL 运算符查询数据:
    SELECT *
    FROM 例子
    WHERE 职务 IS NOT NULL
    ORDER BY 编号
    **************************************
    使用IS NULL 运算符查询数据:
    SELECT *
    FROM 例子
    WHERE 职务 IS NULL
    ORDER BY 编号
    **************************************

    **************************************
    *            LIKE 模糊查询           *
    **************************************

    SQL中的通配符:
    '_'    一个字符
    %      任意长度的字符
    []     括号内所指定范围内的一个字符
    [^]    不在括号内中指定范围内的任意一个字符
    **************************************
    使用LIKE进行查询:
    SELECT *
    FROM 例子
    WHERE 地址 LIKE '山西'
    **************************************
    使用NOT LIKE进行查询:
    SELECT *
    FROM 例子
    WHERE 地址 NOT LIKE '山西'
    **************************************
    使用'_'通配符进行查询:
    SELECT *
    FROM 例子
    WHERE 地址 LIKE '山_'
    /*'_'表示一个字符,结果中只有和'山_'字节数相同且满足LIKE数据*/
    **************************************
    将“_”放在与其一起作为匹配字符的前面:
    SELECT *
    FROM 例子
    WHERE 地址  LIKE '_南'
    **************************************
    全部使用“_”通配符查询数据信息:
    SELECT *
    FROM 例子
    WHERE 地址  LIKE '__'
    执行后:结果中的“地址”列字节数与“_”个数相同
    **************************************
    使用“%”通配符:
    SELECT *
    FROM 例子
    WHERE 地址  LIKE '%西'
    /*%可以再前/中/后使用*/
    **************************************
    使用“[]”通配符:
    SELECT *
    FROM 例子
    WHERE 地址  LIKE '[山]%'
    注意:条件的字符数
    **************************************
    使用[^]通配符:
    SELECT *
    FROM 例子
    WHERE 地址  LIKE '[^河]%'
    执行后:结果中只有“地址”列以“河”开头以外的数据
    **************************************

    **************************************
    *           逻辑运算查询             *
    **************************************

    使用AND运算符实现条件查询:
    SELECT *
    FROM 例子
    WHERE 性别='女'
    AND 编号>'1002'
    **************************************
    使用多个AND运算符实现条件查询:
    SELECT *
    FROM 例子
    WHERE 性别='女'
    AND 编号>'1002'
    AND 地址 LIKE '山%'
    **************************************
    使用OR运算符实现条件查询:
    SELECT *
    FROM 例子
    WHERE 性别='女'
    OR 地址 LIKE '山%'
    **************************************
    使用多个OR运算符实现条件查询:
    SELECT *
    FROM 例子
    WHERE 性别='女'
    OR 地址 LIKE '河%'
    OR 姓名='赵六'
    **************************************
    运算符AND OR 的组合使用:
    SELECT *
    FROM 例子
    WHERE 性别='男'
    AND 地址 LIKE '河%'
    OR 地址='山西'
    **************************************
    多个AND OR 运算符的组合使用:
    SELECT *
    FROM 例子
    WHERE 性别='男'
    AND 地址 LIKE '河%'
    OR 地址='山西'
    OR 姓名 LIKE '刘%'
    **************************************
    使用IN 运算符进行查询:
    SELECT *
    FROM 例子
    WHERE 性别 IN ('男')
    **************************************
    使用IN 运算符进行查询:
    SELECT *
    FROM 例子
    WHERE 地址 IN ('河南','湖北')
    **************************************
    使用NOT IN 运算符进行查询:
    SELECT *
    FROM 例子
    WHERE 地址 NOT IN ('河南','湖北')
    **************************************
    NOT 运算符查询:
    SELECT *
    FROM 例子
    WHERE NOT 地址='河南'
    **************************************
    使用NOT 运算符实现查询:
    SELECT *
    FROM 例子
    WHERE NOT 编号>1004
    **************************************
    NULL 的取反:
    SELECT *
    FROM 例子
    WHERE NOT 职务 IS NULL
    **************************************
    NOT 的取反查询:
    SELECT *
    FROM 例子
    WHERE NOT 职务<>'无'
    **************************************
    NOT 与BETWEEN 的组合使用:
    SELECT *
    FROM 例子
    WHERE 编号 NOT BETWEEN '1003' AND '1005'
    **************************************

    **************************************
    *          数学运算符的应用          *
    **************************************

    使用“+”运算符:
    SELECT 货物编号,货物名称,数量,单价,货物运输单价,单价+货物运输单价 AS 实际单价
    FROM 货物信息表
    **************************************
    使用“*”运算符:
    SELECT 货物编号,货物名称,数量,单价,货物运输单价,数量*单价 AS 总价
    FROM 货物信息表
    **************************************
    +   加
    -   减
    *   乘
    /   除
    %   取余
    **************************************

    **************************************
    *            集合查询运算符          *
    **************************************

    ************************
    *      UNION 并集      *
    ************************
    UNION 运算符的应用:
    SELECT 编号,姓名 FROM 员工信息表
    UNION
    SELECT 编号,姓名 FROM 学生信息表
    执行后:将量表中的相关数据组合在一起
    **************************************
    组合带限制条件的数据表信息:
    SELECT 编号,姓名 FROM 员工信息表
    WHERE 姓名 LIKE '刘%'
    UNION
    SELECT 编号,姓名 FROM 学生信息表
    **************************************
    对多表进行UNION运算:
    SELECT 编号,姓名 FROM 员工信息表
    WHERE 编号<='1003'
    UNION
    SELECT 编号,姓名 FROM 学生信息表
    WHERE 编号<='98002'
    UNION
    SELECT 编号,姓名 FROM 教师信息表
    WHERE 编号<='99004'
    **************************************
    将使用UNION运算符将查询的结果进行排序:
    SELECT 编号,姓名 FROM 员工信息表
    WHERE 编号<='1003'
    UNION
    SELECT 编号,姓名 FROM 学生信息表
    WHERE 编号<='98002'
    UNION
    SELECT 编号,姓名 FROM 教师信息表
    WHERE 编号<='99004'
    ORDER BY 编号
    **************************************

    ************************
    *    INTERSECT 交集    *
    ************************
    INTERSECT运算符的使用:
    SELECT 姓名 FROM 员工信息表
    INTERSECT
    SELECT 姓名 FROM 学生信息表
    **************************************
    多个INTERSECT运算符的使用:
    SELECT 姓名 FROM 员工信息表
    INTERSECT
    SELECT 姓名 FROM 学生信息表
    INTERSECT
    SELECT 姓名 FROM 教师信息表
    **************************************
    逻辑运算符与IN运算符的组合使用:
    SELECT *
    FROM 员工部门表
    WHERE 部门 IN('生产部','营销部','财务部')
    AND 姓名 LIKE '赵%'
    **************************************
    逻辑运算符与NOT运算符组合使用:
    SELECT *
    FROM 员工部门表
    WHERE 性别='女'
    AND
    NOT 生日 BETWEEN '1980-01-01' AND '1982-12-31'
    **************************************
    逻辑运算符与数学运算符组合使用:
    SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价
    FROM 货物信息
    WHERE 数量*单价>100 AND 数量>50
    **************************************
    逻辑运算符与集合运算符的组合使用:
    SELECT 编号,姓名 FROM 员工信息表
    WHERE 编号>1003 AND 姓名 LIKE '刘%'
    UNION
    SELECT 学生编号,学生姓名 FROM 学生信息表
    WHERE 学生编号>98002 OR 学生姓名 LIKE '赵%'
    **************************************
    数学运算符与NOT运算符组合使用:
    SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价,产地
    FROM 货物信息表
    WHERE NOT 产地='吉林长春'
    **************************************
    算术运算符与IN运算符组合使用:
    SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价,产地
    FROM 货物信息表
    WHERE 数量*单价>100 AND 产地 IN ('辽宁锦州','吉林长春')
    **************************************
    数学运算符与集合算符的组合使用:
    SELECT 货物名称,数量*单价 AS 总价 FROM 货物信息表
    UNION
    SELECT 货物名称,数量*单价 AS 总价 FROM 采购信息表
    **************************************

    **************************************
    *         CAST 改变数据类型          *
    **************************************

    使用CAST 表达式转换日期数据类型:
    SELECT 编号,姓名,性别,CAST(birthday AS CHAR(11)) AS '出生日期'
    FROM 学生信息表
    ORDER BY 编号
    **************************************
    使用CAST 表达式转换数值数据类型:
    SELECT 货物编号,货物名称,CAST(数量 AS VARCHAR(3)) + '个' AS 货物数量,
    CAST(单价 AS VARCHAR(6)) + '元' AS 货物单价,
    FROM 货物信息表
    ORDER BY 货物编号
    **************************************
    使用CAST 表达式转换数值与日期数据类型:
    SELECT 货物编号,货物名称,CAST(数量 AS VARCHAR(3)) + '个' AS 货物数量,
    CAST(单价 AS VARCHAR(6)) + '元' AS 货物单价,
    CAST(运输日期 AS CHAR(11)) AS 货物运输日期
    FROM 货物信息表
    ORDER BY 货物编号
    **************************************

    **************************************
    *         CASE                       *
    **************************************

    CASE 表达式的应用:
    SELECT 编号,姓名,性别,生日,娱乐分组=
    CASE
        WHEN 生日>'1981-01-01' AND 生日<'1989-01-01' THEN '青年组'
        WHEN 生日>'1970-01-01' AND 生日<'1981-01-01' THEN '中年组'
        WHEN 生日>'1955-01-01' AND 生日<'1970-01-01' THEN '老年组'
    END
    FROM 员工信息表
    ORDER BY 编号
    **************************************

  • 相关阅读:
    Codeforces 1372D Omkar and Circle
    一个估算
    CF 1348F Phoenix and Memory
    caterpillar tree
    ABC167F Bracket Sequencing
    【troubleshooting】中文输入法下,CMD 光标消失
    Visual Studio 2019创建并调试vue.js项目(Iview admin)
    Mysql知识点集合篇
    spring boot集成mybatis-plus(注解模式)
    spring boot集成mybatis(注解模式)
  • 原文地址:https://www.cnblogs.com/gaorui/p/2134680.html
Copyright © 2020-2023  润新知