MySQL之条件表达式
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之条件表达式相关推荐
- mysql多条件count_Mysql中使用count加条件统计
Mysql中使用count加条件统计 0 753 坚持奋斗 2019/6/28 13:19:56 江苏 南京 新建一个Mysql数据表a,包含id和num两个字段 [pre] mysql> ...
- mysql 的或表达式_MySQL表达式学习小结
在mysql数据库中,一个表达式是直接量.列名.运算符和函数的组合,然后得到一个值. 例如: 5-2 这是一个表达式: LEFT('this',2) 也是一个表达式. 1,表达式别名 对于SEL ...
- mysql truncate 条件_MySQL的TRUNCATE关键字
在MysqL中,还有一种方式可以删除表中的所有记录,需要使用TRUNCATE关键字. TRUNCATE [TABLE] 表名 参数说明 表名,指定要执行删除操作的数据表 在数据库chapter03中创 ...
- mysql的not like多个条件,MySQL LIKE条件
本文概述 在MySQL中, LIKE条件用于执行模式匹配以找到正确的结果.它与WHERE子句结合使用在SELECT, INSERT, UPDATE和DELETE语句中. 句法: expression ...
- Oracle条件表达式
条件表达式: case 字段:when 值1 then 值when 值1 then 值else默认值endcase...when 通用写法 mysql和oracle中都可以使用Oracle特有的写法: ...
- SQL语句的条件表达式
sql语句条件表达式通用条件表达式 (Oracle和MySQL两种数据库都可用),和专用条件表达式(只有Oracle数据库能使用) 使用scott用户给的测试表来操作吧!!! 例 1:给emp表中的名 ...
- 2021年大数据常用语言Scala(七):基础语法学习 条件表达式
条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作.scala条件表达式的语法和Java一样. 有返回值的if 与Java不一样的是 ...
- 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
系列博客 1. 改善代码设计 -- 优化函数的构成(Composing Methods) 2. 改善代码设计 -- 优化物件之间的特性(Moving Features Between Objects) ...
- JAVA条件表达式的陷阱
Map<String, Integer> map = new HashMap<String, Integer>(); map.put("count", n ...
最新文章
- Shell+Linux命令实现日志分析
- 自动安装虚拟机之网络安装和pxe安装
- bzoj 1151: [CTSC2007]动物园zoo
- C++基础教程之C++数据抽象
- vue的h函数_Vue中render中的h箭头函数
- 【图像加密】基于matlab DNA混沌系统图像加密【含Matlab源码 1190期】
- 微信公众平台开发(九) 数据库操作
- 计算机课word实验总结,大学计算机操作实践报告【实验8】Word2010综合实验
- linux怎么给用户777权限,linux下 chmod 777 中777这个数字是怎么出来的
- aurora协议学习之时钟补偿
- 关爱中老年健康,践行康养华夏,中老年春晚《康养华夏》栏目启动大会在广州盛大举行
- scala spark sql 获得分组后的分位点
- 高斯PDF的性质及其推论
- Dell计算机装Win8,超简单戴尔重装win7/win8系统完整教程
- Word中的mathtype如何按章节插入公式编号
- 【入门案例系列】学英语太难?这款英语单词小游戏教你一键学会。
- Android-内存泄露知识详解
- 狡猾的商人(带权并查集)
- 在k8s上安装fluentd收集日志
- JS文件下载页面跳转出现空白页解决办法