四十四、mysql数据库3:MySQL各种查询命令

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:https://blog.csdn.net/xk1761299425 https://blog.csdn.net/xk1761299425/article/details/81810389

一、查询的命令

1、查询所有信息: select * from 表名 ;

2、也可以这样查,查详细点:数据库.表名 .*

3、数据库的名字省略的前提是:你当前所选择的数据库就是该数据库,因此要选择相应的数据库里的表。

4、查询表中的部分字段信息:

 ① 详细查询:

② 在当前表中可省略表名,直接查询:

5、给表起别名  —  用as 

① 这种形式的:前面的也需要修改:

②前面不写表名的,后面可直接加as s:

6、为字段起别名:

7、去重:挺重要

 看看gender都有什么

② 去重的原理:是以一行记录为看点的呢,这一行的记录没有重复的。

没有变化,因为没有一行是重复的。

二、MySQL条件查询  (用where

比较运算符逻辑运算符模糊查询范围查询空判断

(1)比较运算符

         等于: =

         大于: >

         大于等于: >=

         小于: <

         小于等于: <=

         不等于: != 或 <>

1、

2、Where 1> 0为真,全导出来数据。

3、id != 10的都显示出来:

(2)逻辑运算符

and    这个符号两边都为真的时候,结果才为真,也就是才满足条件。

or     这个符号两边只要有一个为真的时候,结果就为真,也就是才满足条件。

not    

(3)模糊查询:like

%表示任意多个任意字符

_表示一个任意字符

2、下面是以正则表达式查询 使用rlike,(直接用like查不到)^周 查询以周字开头的名字

3、例如:查询“小”字开头的名字或者名字中带“杰”字的:

(4)范围查询

1、in表示在一个非连续的集合内:

2、between ... and ...表示在一个连续的范围内

② 不能写字符串:

(5)空判断

     用is判断

     注意:null与''是不同的

     判空is null

     判非空is not null

   

   

6)优先级

   优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符

   and比or先运算,如果同时出现并希望先算or,需要结合()使用

三、命令总结:

四、排序的基本使用(使用order by

1、asc从小到大排列,即升序

     desc从大到小排序,即降序

2、代码如下所示:给身高降序、升序

 

3、默认按照列值从小到大排列

 

4、下面的排序是优先使用身高进行排序的,如果身高一样的,就再使用年龄进行排序:

五、聚合函数的使用---聚合函数,为了统计而生

1、count(*)表示计算总行数:

为了保证统计的数据是最准确,所以count(*)

2、max(列)表示求此列的最大值

     min(列)表示求此列的最小值

3、sum(列)表示求此列的和

4、avg(列)表示求此列的平均值(为空的话不包含

或这种形式:

六、分组的基本使用:(使用group by group_concat() )

原理:去重,一样的在一组

按照字段分组:此字段相同的数据会被放到一个组中,分组后,分组的依据列会显示在结果集中,

其他列不会显示在结果集中,可以对分组后的数据进行统计,做聚合运算。 分组的目的还是为了做统计。

1、在这分组就相当于去重了:

那也可以使用前面讲过的distinct去重:  效果一样

2、默认情况下:分组之后会对分组的数据执行一次升序排序的操作。

3、查看按着性别分组以后,组里人的姓名:

   ① 可使用这个命令,但执行结果不会变

   ② group_concat()函数一起使用

4、与聚合函数一起使用:

5、分组后的数据筛选(条件选择)having 在分组使用

① 对比where与having

where是对from后面指定的表进行数据筛选,属于对原始数据的筛选

having是对group by的结果进行筛选

总结:有group by语句的出现不一定有having语句的出现,那有having语句的出现就一定会有group by语句的出现。

② 例如:查询女生的人数:

七、(重点)用limit限制查询结果的数量

1、不指定初始位置

不指定初始位置时,记录从第一条记录开始显示。显示记录的条数有limit关键字指定。

如果你指定的数目比实际表中存在的记录数大,那么查询结果就会把表的全部记录显示出来

2、指定初始位置:

开始从0下标开始数的

查询时,从记录的第3个位置开始查起(也就是后一个位置开始查),一共查询3条记录。

前面的2代表,从哪条记录之后开始查起,后面的3代表,一共查询几条记录,它们之间用逗号分开。

3、可以使用order by 关键字将身高降序排列,然后使用limit关键字指定只查询降序后的前5条记录。

4、(重点)按照身高分组,显示出名字,并降序输出第一个人的名字

八、(重点)分页的查询语句

1、已知:每页显示的数据数是用变量pageSize,当前在第几页用变量pageNow来表示。

      求出数据表中满足条件的总数据量,用变量allSum:

万能公式:(当前页数-1)*要查的条数

再求出总页数: if allSum  %  pageSize  ==   0 :

                               allSum  /  pageSize

                          else:

                               allSum  /  pageSize  +  1    

用变量pageCount。

2、万能公式:(当前页数-1)*要查的条数

现在我想要得到第1页的数据信息并且只要3条:

limit (pageNow - 1)*pageSize , pageSize                  (1-1)*3=0

现在我想要得到第2页的数据信息:limit (pageNow - 1)*pageSize, pageSize  

(当前页数-1)*条数3                            

现在我想要得到第3页的数据信息:limit (pageNow - 1)*pageSize, pageSize       (3-1)*3

查询的完整格式 ^_^ 不要被吓到 其实很简单 ! _ !

中间的一长串字符只是格式,该怎样写还怎样写。

 

猜你喜欢

转载自blog.csdn.net/xk1761299425/article/details/81810389
今日推荐