数据库MySQLⅡ

目录

起别名

去重

条件

排序

聚合函数

分组

获取部分行


  • 起别名

 as 给字段/表起别名

  • 去重

select distinct 字段1,...  from 表名

  • 条件

使用where子句对表中的数据筛选,符合条件的数据会出现在结果集中

语法:select 字段1,字段2... from 表名 where 条件

where后面支持多种运算符,进行条件的处理:

  • 比较运算:=    >     >=     <     <=     !=或<> 

  • 逻辑运算:and   or    not

  • 模糊查询:like    

                       %:任意多个字符

                        _:一个任意字符

  • 范围查询:

                        in:非连续的范围内

                        between …… and ……

  • 空判断:null与 ''是不同的

             判空:is null

             判非空:is not null

  • 排序

select * from 表名 

order by 列1 asc|desc,列2 asc|desc,...

  • 多个列参与排序时,先依据列1排,如果列1的值相同时,则按照列2排序,以此类推
  • 默认是从小到大,即升序
  • asc升序,desc降序
  • 聚合函数

聚合函数不能在where的条件中使用

count(*):计算总行数,括号中写*/列名,结果时相同的

max(列):最大值

min(列):最小值

sum(列):求和

avg(列):平均值

为什么聚合函数不可以写在where的后面而能写在having后面?
     因为聚合函数前面一定要有结果集,而在mysql内部运行机制中,where后面还没有结果集,所以聚合函数不可以写在where的后面。但having是接在分组的后面,而分组是有结果集的,所以having前是有结果集的,所以聚合函数可以写在having的后面

  • 分组

按照字段分组,此字段相同的数据会被放到一个组中,分组的目的是对每一组的数据进行统计使用聚合函数

分组后的数据筛选:

select 字段1,字段2,聚合 ... from 表名 

group by 字段1,字段2,字段3...

having 字段1,...聚合...

对比where和having:

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

  • having是对group by分组后的结果进行筛选

  • having后面的条件中可以使用聚合函数,where后面不可以

  • 获取部分行

select * from 表名 

limit start,count

  • 从start开始,获取count条数据;
  • 索引从0开始
发布了8 篇原创文章 · 获赞 1 · 访问量 295

猜你喜欢

转载自blog.csdn.net/qq_36985354/article/details/104192083