数据的查询

在MySQL中可以通过SQL语句来实现基本数据查询,SQL语句可以通过如下多种使用:

查询所有字段数据 查询指定字段数据 避免重复数据查询 对结果进行排序和分组等查询

 

一.简单查询

 

在MySQL中,SELECT语句基本语法形式如下:

 

SELECT field1 field2 ... fieldn
FROM tablename
WHERE CONDITION1]
GROUP BY fieldm [HAVING CONDITION2]]
ORDER BY

 

 

1.查询表的所有字段

 

SELECT * FROM tablename;

 

可以列出所有列名,以便调整查询结果的顺序: SELECT field1 ...field n FROM

 

2.查询指定字段的数据

 

SELECT field1 ...field n FROM tablename; #指定查询列即可

 

3.去重查询 DISTINCT

 

SELECT DISTINCT field1,field2...fieldn FROM tablename;

 

4. IN 查询

使用场景: 有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数据是否在指定集合中.

 

 

SELECT field1 ...field n
FROM tablename WHERE fieldm IN(value1,value2...valuen);
 
SELECT field1 ...field n
FROM tablename WHERE fieldm NOT IN(value1,value2...valuen);

 

注:在集合中慎用NULL : IN查询存在NULL 不影响结果 NOT IN 存在NULL 则查询无任何结果

 

5.BETWEEN AND 查询

使用场景: 当我们需要指定范围内的数据( 如: id 从0到100) 的时候,MYSQL提供了关键字 between and,用来实现判断字段的数值是否在指定范围内的条件查询. 该关键字的具体语法形式如下:

 

SELECT field1,field2...,fieldn
FROM tablename WHERE fieldm BETWEEN min_value AND max_value;

 

6. LIKE 模糊查询

使用场景:当我们只想用字符串中间的一部分特征查找含有特征子串的信息时,MySQL关键字LIKE来实现模糊查询,需要使用通配符,语法如下:

 

SELECT field1,field2,...,fieldn
FROM tablename WHERE fieldm LIKE value;
 
SELECT field1,field2,...,fieldn
FROM tablename WHERE fieldm NOT LIKE value;

 

通配符:

符号

功能描述

_

该通配符匹配一个字符

%

该通配符匹配任意长度的字符

 

注:like后的value必须带 '':单引号

 

7.结果排序

使用场景:在MySQL中,从表中查询出的数据可能是无序的,或者其排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的需求,可以使用关键字 ORDER BY

 

SELECT field1,field2....fieldn
FROM tablename ORDER BY fieldm[ASC|DESC];

 

注:如果记录中存在NULL值,则认定为最小值 升序ASC结果在最前  降序DESC结果在最后

 

8.简单分组查询

 

使用场景: MySQL软件提供了5个统计函数来帮助用户统计数据,可以使用户方便地对记录进行统计数. 计算和. 计算平均数. 计算最大值和最小值,而不需要查询所有数据

 

在具体使用统计函数时,都是针对表中所有记录或指定特定条件的数据记录进行统计计算. 在现实应用中,经常会先把所有数据记录进行分组,再对这些分组后的数据记录进行统计计算.

 

MySQL 通过SQL语句GROUP BY来实现, 分组数据查询语法如下:

 

SELECT function() [field]
FROM tablename WHERE CONDITION GROUP BY field;

 

在上述语句中,参数field表示某字段名, 通过该字段对名称为 tablename的表的数据记录进行分组

 

注意:在具体进行分组查询时,分组所依据的字段上的值一定要有重复值,否则分组没有任何意义

 

->统计函数: 求和:sum(field)  求总个数:count() 求平均数:avg(field) 求最小值:min(field) 求最大值 max(field)

 

注: count():count(*):统计null  count(field) 忽略null

   求平均数:avg(field) 忽略null

9.统计分组查询

 

使用场景:在MySQL中,只实现简单的分组查询有时候可能没有任何实际意义,因为关键字GROUP BY单独使用时,默认查询出每个分组中随机的一条记录,具有很大的不确定性,一般建议将分组关键字与统计函数一起使用.

 

如果想显示每个分组的字段,可以通过函数GROUP_CONCAT() 来实现. 该函数可以实现显示每个分组中的指定字段,函数的具体语法形式如下:

 

SELECT GROUP_CONCAT(field)
FROM tablename
WHERE CONDITION GROUP BY field;