|
函数:
字符串
length()取字符串的字节数 mysql中一个汉字占三个字节 生僻字可能占四个字节
没有保存到表里的汉字占2个字节
课后练习 ?取得字符个数的函数
select name,length(name)from stu;//查询名字的字节数
left(str,n)//截取字符串str的左边n位
select name ,left(name,n)from stu;
right(str,n)//截取字符串str的右边n位
select name ,rigth(str,n)from stu;
substr(str,s,n)//截取字符串str的第s(包含s)位到n位
substring
concat (str1,str2)//拼接srt1和str2 可以拼接多个
select concat_ws(“#”,str1,str2)//拼接时前方添加#
trim()/ltrim()/rtrim() 剃除空格
replace(str,str1,str2)//从str中找到str1 替换成str2;
数据类型转换
convert(123,char)//将123转换成字符串
数值
取整
向上四舍五入
select ceil(10.3)//取整为11
select ceil(10.0)//取整为10
向下四舍五入
select floor(10.9)//取整为10
select floor(10.0)//取整为10
四舍五入
select round(10.4)///取整为10
select round(10.5)//取整为11
truncate(f,n) 将小数f保留到n位,超出n位的数据抛弃
select truncate(10.123,2)//取值为10.12
日期
now()//取服务器当前的系统时间
curdate()//只取服务器当前系统时间的日期不取时间
curtime()//只取服务器前期系统时间的时间不取日期
year(日期)//取年份
year(now())//取出服务器前期系统时间的年份
month(now())//取出服务器前期系统时间的月
day(now())//取出服务器前期系统时间的日
hour(now())//取出服务器前期系统时间的小时
minute(now())//取出服务器前期系统时间的分钟
second(now())//取出服务器前期系统时间的秒
date_add(now(),interval 10 day)//将时间往后推10天
date_add(now(),interval -10 day)//将时间往前推10天
dayname(日期)计算日期所对应的星期几
datediff(日期1,日期2)//日期1和日期2相差多少天
分组函数
聚合函数 5个:对多个数据进行处理得到单一的结果
max()//最大值 数值型 日期 字符串
min()//最小值 数值型 日期 字符串
avg()//平均值 数值型
sum()//合计 数值型
count()//计次/个数 不区分数据类型
自动过滤空值
分组:按类型分组
* select 列表中如果同时出现聚合函数(单个)和多值数据(字段),则必须带上分组语句
则必须带上分组group by语句,将多值数据(字段)放在group by语句中
select count(*),sex from stu group by sex
|
|