在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录
SQL语句中使用where子句语法
select column_name from table_name where column_name 运算符 value
运算符 | 描述 |
---|---|
= | 等于 |
<>或!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
between and | 选取介于两个值之间的数据范围;在Mysql中,相当于>=并且<= |
在where子句中,使用and、or可以把两个或多个过滤条件结合起来
and、or运算符语法
select column_name from table_name where condition1 and
condition2 or condition3
运算符 | 描述 |
---|---|
and | 表示左右两边的条件同时成立 |
or | 表示左右两边只要有一个条件成立 |
创建表、插入数据
create table employee(
id int not null auto_increment primary key,
name varchar(30) comment '姓名',
sex varchar(1) comment '性别',
salary int comment '薪资(元)'
)engine=innodb default charset=utf8;
insert into employee(name,sex,salary) values('张三','男',5500);
insert into employee(name,sex,salary) values('李洁','女',4500);
insert into employee(name,sex,salary) values('李小梅','女',4200);
insert into employee(name,sex,salary) values('欧阳辉','男',7500);
insert into employee(name,sex,salary) values('李芳','女',8500);
insert into employee(name,sex,salary) values('张江','男',6800);
insert into employee(name,sex,salary) values('李四','男',12000);
insert into employee(name,sex,salary) values('王五','男',3500);
insert into employee(name,sex,salary) values('马小龙','男',6000);
insert into employee(name,sex,salary) values('龙五','男',8000);
insert into employee(name,sex,salary) values('冯小芳','女',10000);
insert into employee(name,sex,salary) values('马小花','女',4000);
运算符in的使用
运算符in允许我们在where子句中过滤某个字段的多个值
where子句使用in语法
select column_name from table_name where column_name in (value1,value2,...)
运算符like的使用
在where子句中,有时候我们需要查询包含xxx字符串的所有记录,这时就需要用到运算符like
where子句使用like语法
select column_name from table_name where column_name like '%value%'
说明:
- like子句中的%类似于正则表达式中的*,匹配任意0个或多个字符
- like子句中的_匹配任意单个字符
- like子句中如果没有%和_,就相当于运算符=的效果
Mysql内置函数
我们通常说的Mysql函数指的是Mysql数据库提供的内置函数,包括数学函数、字符串函数、日期和时间函数、聚合函数、条件判断函数等,这些内置函数可以帮助用户更方便地处理表中的数据,简化用户的操作
函数 | 描述 |
---|---|
数学函数 | 如ABS、SORT、MOD、SIN、COS、TAN、COT等 |
字符串函数 | 如LENGTH、LOWER、UPPER、TRIM(去空格)、SUBSTRING(截取)等 |
日期和时间函数 | 如NOW、CURDATE、CURTIME、SYSDATE、DATE_FORMAT、TEAR、MONTH、WEEK等 |
聚合函数 | COUNT、SUM、AVG、MIN、MAX |
条件判断函数 | IF、IFNULL、CASE WHEN等 |
系统信息函数 | VERSION、DATEBASE、USER等 |
加密函数 | MD5、SHA1、SHA2等 |
函数now()
函数now()用于返回当前的日期和时间
应用场景:
在实际应用中,大多数业务表都会带一个创建时间create_time字段,用于记录每一条数据的产生时间。在向表中插入数据时,就可以在insert语句中使用now()函数
示例:
insert into user(id,name,create_time) values(1,'zhangsan',now());
函数date_format()
函数date_format()用于指定的格式显示日期/时间
应用场景:
在实际应用中,一般会按照标准格式存储日期/时间,如2019-12-13 14:15:16.在查询使用数据时,往往又会有不同的格式要求,这时就需要使用
date_format()函数进行格式转换
示例:
select name,dat_format(birthday,'%Y/%m/%d') from user;
聚合函数
聚合函数是对一组值进行计算,并返回单个值。
Mysql常用的聚合函数有5个,分别是count、sum、avg、min和max。
函数 | 描述 |
---|---|
count | 返回符合条件的记录总数 |
sum | 返回指定列的总和,忽略空值 |
avg | 返回指定列的平均值,忽略值 |
min | 返回指定列的最小值,忽略空值 |
max | 返回指定列的最大值,忽略空值 |
函数ifnull()
函数ifnull()用于处理NULL值,ifnull(v1,v2),如果v1的值不为NULL,则返回v1,否则返回v2。
case when
case when是流程控制语句,可以在SQL语句中使用case when来获取更加准确和直接的结果。SQL中的case when类似于编程语言中的if else或者switch。
case when的语法有2种
1. case [col_name] when [value1] then [result1]...else [default] end
2. case when [expr] then [result1]...else[default] end
select
id,
name,
case sex
when '男' then 'F'
when '女' then 'M'
else ''
end as sex,
salary
from employee;