MySQL数据查询

Posted 妖精游乐场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据查询相关的知识,希望对你有一定的参考价值。

要点概论

1. SELECT语句的语法

2. 简单查询

3. 连接查询

4.联合查询

5. 子查询

6. 正则表达式查询

7. 通过正则表达式查询数据

 

1. SELECT 语句的语法

  http://www.cnblogs.com/HZY258/p/8496391.html

 

2. 简单查询

  2.1 获取所有列

SELECT * FROM table_name;

    如果数据表中的列较少,也可以通过列出所有列名的方式获取数据。

 

  2.2 获取指定列

   

SELECT 列名列表 FROM table_name;

# 各列名以逗号隔开

 

  2.3 为列指定别名

    当表或者列名的名称比较长时,使用别名很有用。在 SELECT 语句查询中,可以使用以下任意一种方式为列指定别名。

    1)采用符合 ANSI 规则的方法指定别名

      

SELECT address_id \'地址 ID\',address \'地址\' FROM address;

#采用 ANSI 规则的标准方法是指在列表表达式中给出列名

 

    2)使用 AS 关键字指定别名

 

SELECT address_id as \'地址 ID\',address as \'地址\' FROM address;

    PS:为列指定别名操作时,必须注意以下几点:

      ① 当引用中文别名时,可以不加引号,但是不能使用全角引号,否则查询会出错。

      ② 当引用英文的别名超过两个单词时,则必须用引号将其引起来。

      ③ 可以同时使用以上两种方法,会返回同样的结果集。

  

  2.4 获取不重复的数据

    如果没有为数据库表中的列添加唯一性约束或者主键约束时,这些列很可能存在着重复的值。

    使用 DISTINCT 关键字筛选结果集,对于重复行(这里是指结果集数据行的每个字段数据值都一样)只保留并显示一行。语法如下:

SELECT DISTINCT column 1[,column 2,..., column n] FROM table_name;

    PS:使用 DISTINCT 关键字时,如果表中存在多个为 NULL 的行,它们将作为相等处理

 

  2.5 限制查询结果

    1)LIMIT 指定初始位置

 

LIMIT 初始位置,查询记录数量;

 

    2)LIMIT 不指定初始位置

LIMIT 显示记录数;

    PS:在上述语法中,如果 “显示记录数” 小于或者等于查询结果的总数量,那么将会从第一条记录开始,显示指定条数的记录。

       如果 “显示记录数” 大于查询结果的总数量,数据库会直接显示查询出来的所有记录。

 

  2.6 WHERE 条件查询

    WHERE 设置查询条件时,WHERE 字句可以使用算术运算符(如 +,-,*,/,%),比较运算符(如 》=,《=,BETWEEN AND 和 LIKE)和逻辑运算符(如 AND,OR,NOT)等多种运算符。

  

  2.7 对查询结果分组

GROUP BY 字段名 [HAVING 条件表达式] [WITH ROLLUP];

    上述语法说明如下:

      1)字段名:它是指按照该字段的指进行分组,指定多各字段时中间使用 逗号 进行分割

      2)HAVING 条件表达式:可选参数,用来限制分组后的显示,满足条件表达式的结果将会被显示出来。

      3)WITH ROLLUP:可选参数,将会在所有记录的最后加上一条,该记录是上面所有记录的总和。

      PS: GROUP BY 可以单独使用,单独使用时查询结果就是字段取值的分组情况,字段中取值相同的记录为一组,但是只显示该组的第一条记录。

    一般在使用聚合函数时才会使用到 GROUP BY 子句,GROUP BY 之后可以跟 HAVING 子句,它实现对结果集的筛选。

    HAVING 和 WHERE 的不同点表现在以下三个方面:

      1)HAVING 针对结果组: WHERE 针对的时列的数据。

      2)HAVING 可以与聚合函数一起使用,但是 WHERE 不能。

      3)HAVING 语句只过滤分组后的数据;WHERE 在分组前对数据进行过滤

  

  2.8 对查询结果排序

    

ORDER BY order_expression [ASC | DESC];

    在语法格式中,order_expression 指明了排序列或列的别名和表达式。

    当有多个排序列时,每个排序列之间用逗号隔开,而且列后都可以跟一个排序要求。

 

 

3. 连接查询

  连接查询是把两个或两个以上的表按某个条件连接起来,从中选取需要的数据。

  连接查询时同时查询两个或两个以上的表时使用的。

  当不同的表中存在表示相同意义的列时,可以通过该字段来连接这几个表。

  mysql 中支持不同的连接类型。

 

  3.1 交叉连接查询

     PASS

 

  3.2 内连接查询

    PASS

 

  3.3 外连接查询

    PASS

 

  3.4 自连接查询(待补充

 

 

 

 

 

 

  

以上是关于MySQL数据查询的主要内容,如果未能解决你的问题,请参考以下文章

sql mysql查询/ db片段

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

硬核!管理mysql数据库的工具

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段