• MYSQL基础七--单表数据查询


    1.查询所有字段

    SELECT *FROM tab_red;

    2.查询指定字段

    SELECT dname FROM tab_red;

    3.避免重复数据查询

    SELECT DISTINCT dname FROM tab_red;

    添加关键字DISTINCT后,dname序列中将避免重复的内容。出现的值为唯一的。

    4.对查询的内容进行四则运算

    SELECT id*12 FROM tab_red;

    将查询到id的内容乘以12。

    5.条件数据查询

    (1).带关系运算符和逻辑运算符的条件数据查询;

    SELECT dname FROM tab_red WHERE job = 'work'&& sal > 800;

    (2).带BETWEEN AND关键字的条件数据查询;

    SELECT dname FROM tab_red WHERE sal BETWEEN 1000 AND 2000;

    SELECT dname FROM tab_red WHERE sal NOT BETWEEN 1000 AND 2000;

    (3).带IS NULL关键字的条件数据查询

    1).SELECT dname FROM tab_red WHERE sal IS NULL;表示该值为空时

    2).SELECT dname FROM tab_red WHERE sal NOT IS NULL;表示该值不为空

    3).SELECT dname FROM tab_red WHERE NOT sal IS NULL;表示非sal为空

    2)和3)意义一样。

    (4).带IN关键字的条件数据查询

    范围查询条件,在IN(50,203,502,320)这个范围内查询。

    SELECT dname FROM tab_red WHERE sal IN (50,203,502,320);

    在使用关键字IN的时候,查询的集合中如果存在NULL,则不会影响查询结果。如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会有任何的查询结果。

    (5).带LIKE关键字的条件数据查询

     如果查询的名字中包含文本"cj"的所有名字,此时就需要通过通配符来实现模糊查询。

    “_”通配符,该通配符能匹配单个字符;

    “%”通配符,该通配符值可以匹配任意长度的字符串,既可以是0个字符串,1个字符串,也可以是多个字符串。

    SELECT dname FROM tab_red WHERE dname LIKE 'A%';包含A的任意长度的字符串

    SELECT dname FROM tab_red WHERE dname LIKE '_A%';第二个字母为A的任意长度字符串;

    通过NOT LIKE来查找不包括'A'字母的字符串

    SELECT dname FROM tab_red WHERE NOT dname LIKE '%A%';

    使用%A%是因为A%为首字母是A的字符串,但是在前面加%和后面加%表示字符串任意位置中包含A的字符串。

    6.排序数据查询

    通过关键字ORDER BY来设置查询结果的顺序

    (1).按照单字段排序

    1).升序排序

    SELECT *FROM tab_red ORDER BY sal ASC;

    由于ORDER BY 默认为升序,因此也可以改为

    SELECT *FROM tab_red ORDER BY sal;

    2).降序排序

    SELECT *FROM tab_red ORDER BY sal DESC;

    (2).按照多字段排序

    SELECT *FROM tab_red ORDER BY sal,id DESC;

    7.限制数据查询数量

    通过关键字LIMIT来限制查询结果的数量

    (1).不指定初始位置方式

    如果不指定初始位置,默认值为0,表示从第一条记录开始显示

    SELECT *FROM tab_red WHERE sal IS NULL LIMIT 2;

    表示最多显示两条数据

    (2).指定初始位置方式

    LIMIT 关键字经常备用在分页系统中,对于第一页数据记录,可以通过不指定初始位置来实现,但是对于第二页或者其他页必须指定初始位置,否则无法实现分页。

    LIMIT关键字海经常与ORDER BY关键字一起使用。

    SELECT *FROM tab_red WHERE sal IS NULL ORDER BY sal LIMIT 5,10;

    以上语句表示,从第五条语句开始,最多显示十条数据。

    8.统计函数

    COUNT():实现记录数据的条数

    SELECT COUNT(dname) FROM tab_red;

    AVG():实现计算字段值得总和

    SUM():实现字段值得总和

    MAX():实现字段值的最大值

    MIN():实现字段值的最小值

    9.分组查询

    (1).简单分组查询

    通过关键字GROUP BY来实现分组查询

    SELECT * FROM tab_red GROUP BY dname;

    (2).实现统计功能分组查询

    通过关键字GROUP_CONCAT()字段来显示每个分组中所指定的字段值。

    SELECT GROUP_CONCAT(dname) FROM tab_red GROUP BY mygroup;

    只显示指定的dname字段的分组内容;

    (3).多个字段的分组查询

    SELECT * FROM tab_red GROUP BY mygroup,id;

    通过 mygroup,id进行分组。

    10.分组查询的条件限定

    当在通过GROUP BY关键字进行分组查询的时候,不能使用WHERE关键字进行条件限定。这时就需要用到关键字HAVING关键字进行条件限定

    SELECT id,GROUP_CONCAT(dname) FROM tab_red GROUP BY mygroup HAVING AVG(sal) > 2000;

  • 相关阅读:
    一行转多行 及多行转一行的 hive语句
    sparkSQL、dataframe
    特征工程
    python相关
    pyspark dataframe 格式数据输入 做逻辑回归
    hive sql 随机抽样
    pyspark 逻辑回归程序
    3.27模拟赛
    luogu P3217 [HNOI2011]数矩形
    bzoj 4403 序列统计
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/6590236.html
Copyright © 2020-2023  润新知