针对一个具体问题如何,应该如何构造一个适合于它的数据库
一、字符函数
CONCAT() 字符连接
CONCAT_WS()使用指定的分隔符进行字符的连接
FORMAT()数字格式化(它的返回值是一个字符型)
字符大小写转换LOWER() UPPER()
取左右侧字符LEFT() RIGHT()
这些都是比较简单的函数,所以下边我全部都以代码的形式展现给大家,就不再一一截图了
LENGTH()获取字符串长度 SELECT LENGTH(‘my sql’); 显示结果为6
LTRIM()删除前导空格 前导空格就是指第一个字符前边的空格
RTRIM()删除后续空格 后续空格就是指最后一个字符后边的空格
TRIM()删除前导和后续空格 此函数还由删除指定字符的功能 大家可以去看慕课网MySQL部分的 《与MySQL零距离接触》
SUBSTRING()字符串截取 SELECT SUBSTRING(‘MySQL’,1,2);得到的是My,表示从第一位截,截取两个字符 也可以不指定截多长,直接写从第几位截,那么它就默认从该位置截取到结尾 位置也可以从负值取,表示从尾端开始截取
[NOT]LIKE模式匹配 SELECT ‘MySQL’ LIKE ‘M%’得到的是1,表示true %表示匹配任意个字符, ‘_’表示匹配一个字符
表示将1后边的%不再当通配符解析
REPLACE()字符串替换 SELECT REPLACE(‘??My??SQL???’,’?’,’’);将里边的空格都替换成空格,最终得到的是MySQL
数值运算符与函数
CEIL() 向上取整 SELECT CEIL(3.01);结果是4
DIV 整数法 SELECT 3 DIV 4 结果是0
FLOOR() 向下取整 SELECT CEIL(3.99)结果是3
后边的函数都是见名知意
MOD 取余数 SELECT 5 MOD 3结果是2
POWER() 幂运算 SELECT POWER(3,3)结果是27
ROUND() 四舍五入
较运算符和函数
[NOT]BETWEEN…..AND…[不]在范围之内 SELECT 35 BETWEEN 1 AND 22结果是0
[NOT]IN() [不]在列出值范围之内 SELECT 10 IN(10,15,20,25)结果是1
IS [NOT]NULL [不]为空 SELECT NULL IS NULL; 结果是1
日期时间函数
NOW() 当前时间和日期 SELECTNOW();
CURDATE() 前日期 SELECT CURDATE()
CURTIME() 当前时间 SELECT CURTIME()
DATE_ADD() 日期变化 SELECT DATE_ADD(‘2014-3-12’,INTERVAL 365 DAY)这里的值如果是负值表示时间往前 那里的DAY也可以是YEAR WEEK
DATEDIFF() 日期差值 SELECT DATEDIFF(‘2014-3-12’,’2015-4-12’);
DATE_FORMAT() 格式化
注意那里的输出格式%Y表示年的输出格式,可以上MySQL官网去查看更多的格式
信息函数
CONNECTION_ID() 连接id
DATABASE() 当前数据库
LAST_INSERT_ID() 最后插入记录的ID号
USER() 当前用户
VERSION() 版本信息
当插入多个时,输出的LAST_INSERT_ID()是插入的最前边一个而不是最后一个
聚合函数
AVG()
COUNT()
MAX()
MIN()
SUM()
取平均值
当插入多个时,输出的LAST_INSERT_ID()是插入的最前边一个而不是最后一个
别的函数不再一一演示,都是一样的