【MySQL】简单查询语句详解

文章目录

引言:SELECT语句基本形式

1、列出表的所有字段

2、“ * ”通配符查找

3、查询指定字段数据

4、 DISTINCT查询  

5、IN与NOT IN集合查询

6、BETWEEN AND查询

7、模糊查询

8、对查询结果排序

9、简单分组查询

10、统计分组查询

末尾


引言:SELECT语句基本形式

     在MySQL中,可以使用SELECT语句来查询数据,根据查询条件的不同,数据库系统会找到不同的数据,通过SELECT语句可以很方便地获取所需的信息。SELECT语句的基本语法形式如下:

SELECT field1 field2 … fieldn
    FROM tablename
    [WHERE CONDITION1]
    [GROUP BY fieldm [HAVING CONDITION2]]
    [ORDER BY fieldn [ASC|DESC]];
  • 参数filed1~fieldn表示需要查询的字段名;
  • 参数tablename表示表的名称;
  • 参数CONDITION1表示查询条件;
  • 参数fieldm表示按该字段中的数据进行分组;
  • 参数CONDITION2表示满足该表达式的数据才能输出;
  • 参数fieldn指按该字段中数据进行排序。
  • 参数ASC和DESC两个指出排序方式:ASC参数表示按升序的顺序进行排序,是默认参数;DESC参数表示按降序的顺序进行排序。 

 1、列出表的所有字段

   通过SQL语句SELECT列出表的所有字段,具体语法形式如下:

 SELECT field1,field2,…,fieldn FROM tablename; 

    其中,filed1~fieldn参数表示需要查询的字段名;tablename参数表示表的名称。 


 2、“ * ”通配符查找

    查询所有字段数据,除了使用上面的方式外,还可以通过符号“*”来实现,具体语法形式如下: 

SELECT * FROM tablename;

    其中,符号“*”表示所有字段名;tablename参数表示表的名称。与上一种方式相比,“*”符号方式的优势比较明显,即可用该符号代替表中的所有字段,但是这种方式不够灵活,只能按照表中字段的固定顺序显示,不能随便改变字段的顺序。 


3、查询指定字段数据

     查询指定字段数据,只需修改关键字SELECT后的字段列表为指定字段即可。

SELECT field1,field2,…,fieldn FROM tablename;

4、 DISTINCT查询  

    当在MySQL中执行简单数据查询时,有时会显示出重复数据。为了实现查询不重复数据,MySQL提供了DISTINCT功能,SQL语法如下:

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

    在上述语句中,关键字DISTINCT去除重复的数据。 


5、IN与NOT IN集合查询

    有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数值是否在指定集合,该关键字的具体语句形式如下:

SELECT field1,field2,…,fieldn   
    FROM tablename WHERE filedm IN(value1,value2,value3,…,valuen);   

    注:参数fieldn表示名称为tablename的表中的字段名,参数valuen表示集合中的值,通过关键字IN来判断字段fieldm的值是否在集合(value1,value2,value3,…,valuen)中,如果字段fieldm的值在集合中,就满足查询条件,该记录会被查询出来,否则不会被查询出来。 


    使用NOT IN可以反向查询非集合中的数据 

FROM tablename WHERE filedm NOT IN(value1,value2,value3,…,valuen);

集合查询的注意: 集合中慎用 NULL

    在具体使用关键字IN时,查询的集合中如果存在NULL,则不会影响查询,NULL 存不存在的效果都一样;但如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会查询到任何的结果。

     SQL示例,下面是表中数据

【MySQL】简单查询语句详解_第1张图片     使用IN查询,关键词中存在NULL

【MySQL】简单查询语句详解_第2张图片

     使用NOT IN查询,关键词中存在NULL


6BETWEEN AND查询

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

SELECT field1,field2,…,fieldn  
    FROM tablename WHERE fieldm BETWEEN minvalue AND maxvalue  
  1. 参数fieldn表示名称为tablename的表中的字段名,通过关键字BETWEEN和AND来设置字段field的取值范围,如果字段field的值在所指定的范围内,那么满足查询条件,该记录会被查询出来,否则不会被查询出来。 
  2. BETWEEN minvalue AND maxvalue,表示的是一个范围的判断过程,只针对数字类型(数字、日期....)。

    通过关键字NOT设置反向查询非查询范围的条件(不符合范围的数据记录查询),具体SQL语句如下: 

SELECT field1,field2,…,fieldn  
    FROM tablename WHERE fieldm not BETWEEN minvalue AND maxvalue  

    这条语句也等同于

SELECT field1,field2,…,fieldn  
    FROM tablename WHERE fieldm < minvalue or fieldm > maxvalue  

7、模糊查询

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

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

    在上述语句中,参数tablename表示表名,参数fieldn表示表中的字段名字,通过关键字LIKE来判断字段field的值是否与value字符串匹配,如果相匹配,则满足查询条件,该记录就会被查询出来;否则就不会被查询出来。


    在MySQL中,字符串必须加上单引号('')或双引号(″″)。由于关键字LIKE可以实现模糊查询,因此该关键字后面的字符串参数除了可以使用完整的字符串外,还可以包含通配符。LIKE关键字支持的通配符如下表所示。

     对于LIKE关键字,如果匹配“%%”,就表示查询所有数据记录。


8、对查询结果排序

     在MySQL中,从表中查询出的数据可能是无序的,或者其排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的要求,可以使用关键字ORDER BY对记录进行排序,其语法形式如下:

SELECT field1, field2, field3, …, fieldn  
    FROM tablename ORDER BY fieldm [ASC|DESC] 
  • 参数tablename表示所要进行排序的表名;
  • 参数fieldn表示表中的字段名字;
  • 参数ASC或DESC表示按照该字段进行排序:ASC表示按升序进行排序;DESC表示按降序进行排序。默认的情况下按ASC进行排序。 

注意:如果存在一条记录字段的值为空值(NULL),那么按升序排序时,含空值的记录将最先显示,可以理解为空值是该字段的最小值;按降序排列时,字段为空值的记录将最后显示。 


9、简单分组查询

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

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

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

SELECT function()[,filed ]
    FROM tablename WHERE CONDITION GROUP BY field;
  • 参数field表示某字段名,通过该字段对名称为tablename的表的数据记录进行分组。

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

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

五个统计函数简介


1.统计数量

COUNT(*):该种方式可以实现对表中记录进行统计,不管表字段中包含的是NULL值还是非NULL值。

COUNT(field):该种方式可以实现对指定字段的记录进行统计,在具体统计时将忽略NULL值。


2. 统计计算平均值

AVG(field):该种方式可以实现对指定字段的平均值进行计算,在具体统计时将忽略NULL值(该函数只有一种使用方式)。


3. 统计计算求和

SUM(field)使:该种方式可以实现计算指定字段值之和,在具体统计时将忽略NULL值(该函数只有一种使用方式)


4. 统计最大值

MAX(field):该种方式可以实现计算指定字段值中的最大值,在具体统计时将忽略NULL值(该函数只有一种使用方式)


5. 统计最小值

MIN(field):该种方式可以实现计算指定字段值中的最小值,在具体统计时将忽略NULL值(该函数只有一种使用方式)


10、统计分组查询

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

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

    SQL语句示例,下面是表中数据

【MySQL】简单查询语句详解_第3张图片     使用GROUP_CONCAT()分组查询

【MySQL】简单查询语句详解_第4张图片     不使用GROUP_CONCAT()

【MySQL】简单查询语句详解_第5张图片

【MySQL】简单查询语句详解_第6张图片

末尾

如果有帮助 麻烦点个赞鼓励以下吧

【MySQL】简单查询语句详解_第7张图片

你可能感兴趣的:(MySQL数据库,sql,mysql,数据库)