揭阳网站制作维护,泾川建设路网站,网站关键词排行查询,长沙网站建设1681989表达式#xff1a;
将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数#xff0c;单个操作数也可以被看作是一个表达式。
操作数#xff1a;常数#xff0c;列名#xff0c;函数调用#xff0c;其他表达式
运算符#xff1a;算数运算符#xff0c;…表达式
将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数单个操作数也可以被看作是一个表达式。
操作数常数列名函数调用其他表达式
运算符算数运算符比较运算符逻辑运算符
介绍几个比较哦特殊的
a DIV b:除法 取商的整数部分
a XOR ba和b有且只有一个为真时表达式为真。
在上一章我们学到比较表达式。又比较运算符连接而成的表达式也称为布尔表达式除非表达式中包含NULL否则布尔表达式的结果只能是1或者0
表达式的使用
把这些操作数和运算符相互结合起来就可以组成表达式
1.作为计算字段放在select子句中
查询列表处的每个表达式都会被当作结果集中的一个列。
2.作为搜索条件放在where子句中
其实在where子句中可以放置任意的表达式在读取某条记录时只要where子句中表达式的结果不为0或者NULL那么该纪录就会被加入到结果集。
表达式中的NULL NULL作为算数运算符的操作时表达式的结果都为NULL。
除is NULLis not NULL 外NULL作为其余比较运算符的操作数时表达式的结果都为NULL。 函数 字符串处理函数
leftabc123, 3): 给定字符串从左边取指定长度的子串。
right.....................给定.....从右边...............
length(abc) 给定字符串占用的字节数量
lower’ABC) 给定字符串转换成小写
upperabc) 给定字符串转换成大写
ltrim abc) 给定字符串左边空格去除后的格式
rtrimabc ) 给定字符串后边空格去除后的格式
substringabc123, 2, 3)给定字符串从指定位置截取指定长度的子串
concat(‘abc, 123, xyz)将给定的各个字符串拼接成一个新的字符串
char_length(’狗哥) 给定字符串的字符数量。 日期和时间处理函数
now返回当前日期和时间
curdate返回当前日期
curtime返回当前时间
date将给定的日期和时间值的日期提取出来
date_add()将给定的日期和时间值添加指定的时间间隔
date_sub‘..... interval * 单位将给定的日期和时间值减去指定的时间间隔
datediff返回两个日期之间的天数负数表示前一个参数代表的日期比后一个参数代表的日期小
data_format(now(), %m-%d-%y)用给定的格式显示日期和时间
year()提取年份
month提取月份
day提取日
hour提取小时
minute提取分钟
second提取秒
在使用date_add和sub的时候注意我们的单位有这些 microsecond 毫秒
second 秒
minute 分钟
hour 小时
day 天
week 周
month 月
quarter 季度
year 年
在使用date_format是我们可以通过一些所谓的格式符来自定义显示格式
%b 简写的月份名称janfeb....)
%D 带有英文后缀的月份中的日期0st 1st 2st....)
%d, 数字格式的月份中的日期0001.....)
%f 微秒
%H 24小时制的小时00~24
%h 12小时制的小时00~12
%i 数值格式的分钟00~59
%M 月份名januaryFebruary.....)
%m 数值形式的月份00~12
%p 上午或下午
%s 秒00~59 %S 秒00~59
%W 星期名sundaymonday....)
%w 周内第几天0星期日1星期1 .....)
%Y 四位数数字形式的年例如2023
%y 两位数数字形式的年例如23
数值处理函数 abs取绝对值
pi返回圆周率
cos 返回一个角度的余弦
sin返回一个角度的正弦
tan返回一个角度的正切
pow返回某个数的指定次幂
sqrt返回一个数的平方根
mod() 返回除法的余数
rand 返回一个随机数
ceil返回不小于给定值的最小整数
floor返回不大于给定值的最大整数
流程控制表达式和函数 语法 case when 表达式1 then 结果1[when 表达式2 then 结果2.....] else 默认结果 end
当表达式1为true时就返回结果1
一定要记得写末尾的end
mysql select *, - case when score60 then bujige - when score90 then hege - else youxiu end as level - from student_score; --------------------------------------------- | number | subject | score | level | --------------------------------------------- | 220101101 | 计算机是怎样运行的 | 78 | hege | | 220101102 | 计算机是怎样运行的 | 79 | hege | | 220101103 | 计算机是怎样运行的 | 78 | hege | | 220101104 | 计算机是怎样运行的 | 77 | hege | | 220101105 | 计算机是怎样运行的 | 77 | hege | --------------------------------------------- 5 rows in set (0.01 sec)
if语句
语法if表达式1 表达式2 表达式3
含义是当表达式1为true时返回值就为表达式2 否则为表达式3
ifnull语句 语法ifnull表达式1 表达式2
含义是当表达式1为NULL时返回值就为表达式2否则返回表达式1.
nullif语句 语法nullif表达式1 表达式2
含义是当表达式1的值和表达式2的值相同时函数返回值为NULL否则返回表达式1. 汇总函数
max表达式)
从匹配的结果中返回表达式对应列的最大值
mysql select max(score) from student_score; ------------ | max(score) | ------------ | 79 | ------------ 1 row in set (0.01 sec)
min表达式
从匹配结果中返回表达式对应列的最大值
sum表达式 求和的意思
avg表达式
取平均数
count操作数
对列中的某个值进行计数
mysql select count(1) from student_score; ---------- | count(1) | ---------- | 5 | ---------- 1 row in set (0.00 sec) 隐式类型转换
只要某个表达式的类型与上下文要求的类型不符合MySQL就会根据上下文环境中需要的类型对该表达式进行类型转换。由于这些类型转换是MySQL自动完成的所以也称为隐式类型转换。
1.将操作数类型转换为运算符需要的类型
比如把字符串’1‘和1进行相加MySQL就会自动把字符串’1‘ 自动转换为1的整形进行相加
如果字符串中包含其他字符或者字母的话就会从第一个字符进行判断最长的数字是多少就是多少你比如’123asd‘这个就会转换成123.其实当字符串类型的表达式与其他类型的表达式进行算数运算比较大小已经进行逻辑判断时都会被转换成double类型。
2.将函数参数转换成该函数期望的类型
3.在where子句中单独的字符串类型的表达式会被转换为double类型的数值
mysql select 5 where 2a; --- | 5 | --- | 5 | --- 1 row in set, 1 warning (0.01 sec)
这里的2a就转换成了2所以查询结果不为空集
4存储数据时把某个值转换成某个列所需要的类型