MySQL常用运算符:算术运算符、比较运算符、逻辑运算符

 

(一)  算术运算符

 

注意:

  1. 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。
  2. div运算符主要是求两个数相除的商

(二)  比较运算符:比较运算符的运算结果为1(条件为真),0(条件为假)

 

注意:

  1. between的格式:between  值1  and 值2,表示值1到值2间的所有数据,包含值1和值2,如select  5  between  1  and  10;
  2. in的格式:in  (值1,值2,值3…),只要值括号里面的值就表示符合条件,如select  5  in  (1,3,5);
  3. like的示例:select  ‘李晓明’  like  ‘李%’;

(三)  逻辑运算符:运算结果为1(条件为真),0(条件为假)

 

注意:逻辑运算符的运算规律

1、  and运算规律

真 and 真 = 真

真 and 假 = 假

假 and 真 = 假

假 and 假= 假

2、  or运算规律

真 or 真 = 真

真 or 假 = 真

假 or 真 = 真

假 or 假 = 假

3、  not运算规律:非真即假,非假即真

二、数据查询

(一)  格式1(查询所有数据):select  *  from  表名;

(二)  格式2(查询指定字段):select  字段名1,字段名2…  from  表名;

(三)  格式3(查询指定数据):select  字段名1,字段名2…  from   表名  五大子句;mysql中五大子句包含where/group by/having/order by/limit,这五种子句顺序不可以改变。

三、where子句的使用

(一)  使用比较运算符作为条件:select  字段名1,字段名2…  from   表名  where   条件;

(二)  使用like实现模糊查询(适用于对文本查询),格式:select  字段名1,字段名2…  from  表名  where  字段名  like ‘条件’;注意条件中可以加通配符(%表示任意个任意字符,_表示任意一个字符),如果要将通配符变为普通字符,那么需要在它前面加\,即采用\%的形式

(三)  以值是否为空作为条件——is  null和is not null

四、对查询结果的处理

(一)  聚合函数的使用:max、min、sum、avg、count

1、  格式:select  函数(字段名)  as  ‘别名’  from  表名  条件;

2、  示例:select  count(price)  as  '个数'  from book;

3、  注意:聚合函数通常和分组语句group by结合使用

(二)  对查询结果的去重处理——distinct关键字

1、  格式:select  distinct  字段名  from 表名  where  条件;

(三)  为查询结果起别名——as关键字

1、  格式:select  字段名  as  别名  from 表名  where  条件;

五、group  by子句的使用

(一)  作用:group  by子句的作用是对数据进行分组

(二)  格式:select  要查找的内容  from  表名  group  by  字段名;

(三)  示例:select cat_id, max(shop_price) as '每个栏目中最贵的价格' from ecs_goods group by cat_id;

(四)  注意在使用聚合函数和分组时,要显示的字段的名称不可以超出分组依据的字段名和聚合函数对应的字段名,即select cat_id,  goods_name,max(shop_price) as '每个栏目中最贵的价格' from ecs_goods group by cat_id;是错误的,不可以有goods_name

六、having子句的使用

(一)  作用:having子句的作用和where类似,都是具有根据条件对数据进行过滤的作用,不同点在于having在group by之后,而where在group  by之前,另外where是先过滤后聚合,having是先聚合后过滤

(二)  案例1:从ecs_goods表查询比市场价便宜200元以上的商品及该商品所省的钱(注:market_price-shop_price)

1、  方法1:select goods_name, (market_price-shop_price) from ecs_goods where (market _price-shop_price)>200;

2、  方法2:select goods_name, (market_price-shop_price) as chajia from ecs_goods hav ing chajia>200;

(三)  案例2:从ecs_goods表中查询积压货款总额超过2W元的栏目,以及该栏目积压的货款(注:积压货款=goods_number*shop_price)

1、  方法:select cat_id,sum(goods_number*shop_price) as total from ecs_goods group by cat_id having total>20000;

(四)  案例3:在ecshop1库中的stu表中查询查询出2门及2门以上不及格者的平均成绩

1、  方法:select name,avg(score), sum(score<60) as 'small' from stu group by name h aving small>=2;

七、order  by子句:对查询出来的数据进行排序

(一)  格式:select  查询的内容  from 表名  order by 字段1  排序方式,字段2排序方式…;

(二)  示例:select cat_id, goods_name, shop_price from ecs_goods order by cat_id desc ,shop_price asc;

(三)  注意:排序方式分为asc(升序,默认)、desc(降序)

八、limit子句:限制显示搜索到的数据的条目数

(一)  格式:select  查询的内容  from  表名  limit  编号,条目数;

(二)  注意:编号从0开始,即第一条数据的编号为0,如果只写编号,不写条目数,那么表示只显示第一条

(三)  习题:从book表中检索出id9前一条数据:select id, bookname from book where id<9 order by id desc limit 1;

九、查询语句的执行顺序:from、where、group by、聚合、having、order by、limit

转载于:https://www.cnblogs.com/lovelygang/p/10305744.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值