目录
1.Mysql的数据类型
对于字符串类型的数据,有多少个字节就能存多少个汉字或者字符或者数字。char和varchar都是用来存储字符串的,但是他们保持和检索的方式不同。InnoDB存储引擎:建议使用VARCHAR类型。对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度VARCHAR列性能要好。因而,主要的性能因素是数据行使用的存储总量。由于CHAR平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。
2.Select
select中查询对于数值和日期类型的字段可以进行"加减乘除", 数值不说,看看日期类型的加减乘除
3.NULL
需要注意的是null不能进项四则运算,如果进行了四则运算其结果还是null.
4.字符串的连接
||
5.WHERE
字符里面包含匹配符:
还可以指定转义字符:
6.单行函数
SQL里面的函数包含了单行和多行函数,单行函数包含日期函数,数字函数,字符函数,转换函数,
- 字符函数(大小写转换函数和字符串操作函数)
1.length:获取参数数值的字节个数
Utf8的字母站一个字节,汉字三个字节
2.concat:拼接字符串
select concat(last_name,'_',firset_name) 姓名 from employees;
3.upper\lower:转换大小写
函数可以嵌套函数
4.substr substring:索引从1 开始
截取从指定索引处后面所有字符;截取从指定索引处指定字符长度的字符。
5.instr:返回字符串第一次出现的索引,如果找不到返回0
6.trim 去掉前后空格,若是想去掉某些不是空格的,可以使用trim('a' from'aaazhaojinchaoaaa')
7.lpad :用指定的字符实现左填充指定长度
8. rpad:用指定的字符实现右填充指定长度
当长度小于字符长度时,截取长度大小的字符。
9.replace 替换
- 数字操作函数
1.round 四舍五入
2.ceil 向上取整,
Select ceil(-7.78)返回-7
Floor 向下取整 ,
Select ceil(-7.78)返回-8
3.TRUNCATE(x,y) 截断 ,与 ROUND 最大的区别是不会进行四舍五入
SELECT TRUNCATE(1.23456,3) -- 1.234
4.mod取余
- 日期操作函数
1.now() 函数, 获取本地时间
2.year() , month(), dayofmonth() 分别从一个日期或者时间中提取出年 ,月 ,日 。例如想得到创建日期为8月份的学生
SELECT * FROM hand_student a WHERE MONTH(a.CREATION_DATE)=8
3.monthname() ;输出月份的英文单词名称
4.timestampdiff() 函数,比较两个日期之间的差值,第一个参数为计算的结果单位。例如可以根据生日计算出年龄。
5.to_days(),将日期转换成天数,比如计算最近三个月内过生日的学会。
6.date_add()
查询一个日期:
SELECT a.CREATION_DATE FROM hand_student a
Mysql中日期的加减都是有函数的,比如日期进行加法运算的函数:date_add(), 比如说给一个日期增加一天,
select date_add(a.CREATION_DATE, interval 1 day) FROM hand_student a
MySQL 为日期减去一个时间间隔:date_sub():
MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)
获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp(),因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。select now()获得本地时间。