Mysql基础知识:查询数据

Mysql 查询数据

1. 基本查询语句

SELECT   属性列表
         FROM   表名和视图列表
         WHERE   条件表达式1
         GROUP BY   属性名1   [HAVING  条件表达式2]
         ORDER BY   属性名2   [ASC | DESC];

  GROUP BY表示按照属性名1指定的字段进行分组。如果后面包括HAVING关键字,则表示只有满足条件表达式2的才能输出。

2. 单表查询

  1)查询所有字段

SELECT * FROM   表名;

  2)查询指定字段

SELECT   属性名   FROM   表名;

  3)查询指定记录

SELECT   属性名   FROM   表名   WHERE   条件表达式;

  4)IN关键字查询

SELECT   属性名   FROM   表名   WHERE   属性名  [NOT]  IN (元素1, 元素2, ...);

  5)BETWEEN ADN查询

SELECT   属性名   FROM   表名   WHERE   属性名   [NOT]   BETWEEN   取值1   AND   取值2;

  6)LIKE关键字查询

SELECT   属性名   FROM   表名   WHERE   属性名    [NOT]   LIKE   '字符串';

  7)查询空值

SELECT   属性名   FROM   表名   WHERE   属性名   IS   [NOT]   NULL;

  8)AND多条件查询

SELECT   属性名   FROM   表名   WHERE   条件表达式1   AND   条件表达式2   AND  ...;

  9)OR多条件查询

SELECT   属性名   FROM   表名   WHERE   条件表达式1   OR   条件表达式2   OR  ...;

  10)查询结果不重复

SELECT   DISTINCT   属性名   FROM   表名   WHERE   条件表达式;

  11)对查询结果排序

SELECT   属性名1   FROM   表名   ORDER   BY   属性名2   [ASC | DESC];

  12)分组查询

SELECT   属性名1   FROM   表名   GROUP   BY   属性名2   HAVING   条件表达式   WITH ROLLUP;

  HAVING条件表达式用来限制条件,WITH ROLLUP表示加上一条表示所有记录总和的记录。

  13)LIMIT限制查询结果的数量

SELECT   *   FROM   表名   LIMIT   记录数;
SELECT   *   FROM   表名   LIMIT   初始位置, 记录数;

  注意:第一条记录位置是0。

3. 使用集合函数查询

   集合函数包括COUNT()、SUM()、AVG()、MAX()、MIN()。COUNT()统计记录的条数,SUM()计算字段值的总和。

4. 连接查询

  1)内连接查询

    只查询两表相匹配的记录。

SELECT   属性名列表
         FROM   表名1, 表名2
         WHERE   表名1.属性名1 = 表名2.属性名2;
SELECT   属性名列表
         FROM   表名1   INNER JOIN   表名2
         ON   表名1.属性名1 = 表名2.属性名2;

  2)外连接查询

SELECT   属性名列表
         FROM   表名1   LEFT | RIGHT   JOIN   表名2
         ON   表名1.属性名1 = 表名2.属性名2;

  左连接查询:查询表名1中所有记录和表名2中匹配的记录。

  右连接查询:查询表名2中所有记录和表名1中匹配的记录。

5. 子查询

  1)IN关键字

SELECT  *   FROM   表名1  WHERE   属性名1   IN  (SELECT查询子句);

  2)比较运算符

    子查询可以使用的比较运算符包括:=、!=、>、>=、<、<=、<>,其中!=和<>等价。

SELECT  *   FROM   表名1  WHERE   属性名1   比较运算符  (SELECT查询子句);

  3)EXISTS关键字

SELECT  *   FROM   表名1  WHERE   属性名1  [NOT]  EXISTS  (SELECT查询子句);

  4)ANY关键字

    ANY表示满足其中任一条件即可。即只要满足内层查询语句返回结果中的任何一个,就可以通过该条件来执行外层查询语句。

  5)ALL关键字

    ALL表示满足所有条件。

6. 合并查询结果

SELECT   语句1
    UNION | UNION ALL
SELECT   语句2
    UNION | UNION ALL
...

  UNION:将所有查询结果合并在一起,然后去除相同的记录;

  UNION ALL:简单合并。

7. 为表和字段取别名

  1)为表取别名

    表名   表的别名

  2)为字段去别名

    属性名   [AS]   别名

8. 使用正则表达式

  属性名   REGEXP   '匹配方式'

原文地址:https://www.cnblogs.com/jx-yangbo/p/6391899.html