1、WHERE表达式

条件表达式即是,对记录进行过滤,满足条件进行显示。如果没有指定WHERE子句,则显示所有记录;在WHERE表达式中,可以使用MySQL支持的函数或者运算符。

root@localhost test>SELECT id,username FROM user WHERE id % 2 = 0;

2、GROUP...BY...

此外还可以进行分组,分组的时候即可以指定列名也可以指定列的位置,查询结果分组:

[GROUP BY {col_name | position } [ASC | DESC],...]

其中ASC为升序,DESC为降序,为默认的。user表的全部记录如下:

现在来对sex进行分组,由于sex中只有两种“类型”,是0和NULL类型,因此会有两种分组

root@localhost test>SELECT sex FROM user GROUP BY sex;

3、分组条件HAVING...

还可以带有分组条件HAVING

[HAVING where_condition]

分组可以全部记录都做分组,也可以只对一部分记录做分组

root@localhost test>SELECT sex FROM user GROUP BY sex HAVING age > 25;

会出现如上的错误,这是因为在采用HAVING进行分组条件指定的时候,一定要保证分组的条件要么为一个聚合函数,要么保证这么字段必须出现在SELECT语句中,因此进行如下的修改

root@localhost test>SELECT sex,age FROM user GROUP BY sex HAVING age > 25;

那什么是聚合函数呢?即是max,min,avg,sum这些函数永远只有一个返回值

root@localhost test>SELECT sex,age FROM user GROUP BY sex HAVING age > 25;

root@localhost test>SELECT sex,age FROM user GROUP BY sex HAVING count(id) >= 2;

4、ORDER BY...

还可以对分组的结果进行排序,使用ORDER BY 语法结构

[ORDER BY {col_name | expr | position } [ASC | DESC ],...]

在使用语句SELECT * FROM user的时候,使用的是默认的插入顺序进行显示

root@localhost test>SELECT * FROM user ORDER BY id DESC;

对id进行降序排列显示

也可以按照两个字段进行排序,如果第一个字段就可以排出想要的结果,则忽略第二个字段;但如果第一个字段不能排出想要的结果,则遵守第二字段,甚至是第三个字段。

在上表中发现age有相同的字段,默认是从小到大

root@localhost test>SELECT * FROM user ORDER BY age;

这里如果age相同,则按照id 进行降序排列

root@localhost test>SELECT * FROM user ORDER BY age,id DESC;

注意两张表的异同

5、LIMIT限制查询数量

LIMIT语句限制查询结果的返回数量

[LIMIT  {[offset,] row_count | row_count OFFSET offset }
root@localhost test>SELECT * FROM user LIMIT 2;

按照标的插入顺序(默认显示方式)只显示表中所有记录的前两条记录

如果想显示从第m条记录开始显示共显示n条,怎么办呢?即是显示的是[m,m+n],如在user表中显示第3条、第4条记录

应该显示的第3条和第4条,但是因为SELECT语句中的记录是从0开始的,因此LIMIT后的3表示的SELECT语句中的第4条记录

此外id 号和结果集中的顺没有任何联系,即id排在结果集中的第一个位置,就是0,第二位置就是1...

root@localhost test>SELECT * FROM user ORDER BY id DESC;

root@localhost test>SELECT * FROM user ORDER BY id DESC LIMIT 2,2;

现在来看看INSERT中的用法

INSERT [INFO] table_name SET col_name ={expr|DEFAULT},... 

此方法可以使用子查询(SubQuery)

root@localhost test>CREATE TABLE test2(-> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,-> usernaem VARCHAR(20)-> );

这里首先创建一张新表,把user表中年龄大于30 的记录写入到test2表中

root@localhost test>insert test2 select username from user where age >= 30;

因为虽然表test2中记录数据的列只有username,但是实际上还有一列id列,因此做如下修改

root@localhost test>insert test2(usernaem) select username from user where age >= 30;

MySQL之条件表达式相关推荐

  1. mysql多条件count_Mysql中使用count加条件统计

    Mysql中使用count加条件统计  0  753 坚持奋斗 2019/6/28 13:19:56 江苏 南京 新建一个Mysql数据表a,包含id和num两个字段 [pre] mysql> ...

  2. mysql 的或表达式_MySQL表达式学习小结

    在mysql数据库中,一个表达式是直接量.列名.运算符和函数的组合,然后得到一个值. 例如: 5-2 这是一个表达式: LEFT('this',2)    也是一个表达式. 1,表达式别名 对于SEL ...

  3. mysql truncate 条件_MySQL的TRUNCATE关键字

    在MysqL中,还有一种方式可以删除表中的所有记录,需要使用TRUNCATE关键字. TRUNCATE [TABLE] 表名 参数说明 表名,指定要执行删除操作的数据表 在数据库chapter03中创 ...

  4. mysql的not like多个条件,MySQL LIKE条件

    本文概述 在MySQL中, LIKE条件用于执行模式匹配以找到正确的结果.它与WHERE子句结合使用在SELECT, INSERT, UPDATE和DELETE语句中. 句法: expression ...

  5. Oracle条件表达式

    条件表达式: case 字段:when 值1 then 值when 值1 then 值else默认值endcase...when 通用写法 mysql和oracle中都可以使用Oracle特有的写法: ...

  6. SQL语句的条件表达式

    sql语句条件表达式通用条件表达式 (Oracle和MySQL两种数据库都可用),和专用条件表达式(只有Oracle数据库能使用) 使用scott用户给的测试表来操作吧!!! 例 1:给emp表中的名 ...

  7. 2021年大数据常用语言Scala(七):基础语法学习 条件表达式

    条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作.scala条件表达式的语法和Java一样. 有返回值的if 与Java不一样的是 ...

  8. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)

    系列博客 1. 改善代码设计 -- 优化函数的构成(Composing Methods) 2. 改善代码设计 -- 优化物件之间的特性(Moving Features Between Objects) ...

  9. JAVA条件表达式的陷阱

    Map<String, Integer> map = new HashMap<String, Integer>();  map.put("count", n ...

最新文章

  1. Shell+Linux命令实现日志分析
  2. 自动安装虚拟机之网络安装和pxe安装
  3. bzoj 1151: [CTSC2007]动物园zoo
  4. C++基础教程之C++数据抽象
  5. vue的h函数_Vue中render中的h箭头函数
  6. 【图像加密】基于matlab DNA混沌系统图像加密【含Matlab源码 1190期】
  7. 微信公众平台开发(九) 数据库操作
  8. 计算机课word实验总结,大学计算机操作实践报告【实验8】Word2010综合实验
  9. linux怎么给用户777权限,linux下 chmod 777 中777这个数字是怎么出来的
  10. aurora协议学习之时钟补偿
  11. 关爱中老年健康,践行康养华夏,中老年春晚《康养华夏》栏目启动大会在广州盛大举行
  12. scala spark sql 获得分组后的分位点
  13. 高斯PDF的性质及其推论
  14. Dell计算机装Win8,超简单戴尔重装win7/win8系统完整教程
  15. Word中的mathtype如何按章节插入公式编号
  16. 【入门案例系列】学英语太难?这款英语单词小游戏教你一键学会。
  17. Android-内存泄露知识详解
  18. 狡猾的商人(带权并查集)
  19. 在k8s上安装fluentd收集日志
  20. JS文件下载页面跳转出现空白页解决办法

热门文章

  1. (原创)7-1 银行业务队列简单模拟 (30 分)
  2. windows php exec()不生效问题
  3. 洛谷——P1549 棋盘问题(2)
  4. 日常API之QQ登录
  5. [数据结构与算法]平衡二叉树实现
  6. Delete Master Data时的注意事项
  7. 构造函数 Create 与 析构函数 Destroy
  8. MQTT客户端工具MQTTfx
  9. Windows下配置单机Hadoop环境
  10. 图形基础 GPU架构(2)软件调用栈