mysql的函数笔记
1. 甲骨文--oracle 和mysql( 免费,开源) 2. sqlserver 3. IBM--DB2 关系型数据库
database 数据库 , 数据表table , 数据: 记录-- 增删改查
结构化查询语言
非关系型数据库: redis, mongodb
数据库优化:
数据类型:
创建表的语法:
create table 表名(
列名1 数据类型 [约束] [默认值],
列名2 数据类型 [约束] [默认值],
列名3 数据类型 [约束] [默认值],
。。。
列名n 数据类型 [约束] [默认值]
);
数据类型:
1.整型---整数
int ,tinyint ,smallint ,bigint
int(5) int
2. 浮点型 ---实数---小数
float ,dounle , decimal
必须加上()
float(m,n) m表示占用的符号长度,n表示小数位的个数
3. 字符串类型 ‘abc’ “ghjj”
varchar(20): 可变长度 "abc" -- 3字节
char( 30): 不可变长度 "abc" --30字节
text : 文本型
4. 日期类型
date ,time,datetime
5. 其他 : 集合类型 set
枚举型: enum
二进制:blob
x的y次方法--幂 2^3= 2*2*2=8
对数: log2 8
一、 数学函数
1. 幂
2. 对数
3.绝对值
4. 三角函数
5. 上限,下限,四舍五入
1. ceil(x)和ceiling(x)意义相同,返回不小于x的最小整数数值 : 向上取整
2. floor函数返回最大整数: 向下取整3 3.5 4
3.四舍五入函数-round(x[,y])
round(x): 取最接近x的整数
select round(-1.14),round(-1.67), round(1.14),round(1.66);
+--------------+--------------+-------------+-------------+
| round(-1.14) | round(-1.67) | round(1.14) | round(1.66) |
+--------------+--------------+-------------+-------------+
| -1 | -2 | 1 | 2 |
+--------------+--------------+-------------+-------------+
1 row in set (0.00 sec)
round(x,y):
y是大于0的整数,表示保留小数点的位数, y是一个负数,表示整数位的后y位,归零,含有四舍五入现象
select round(3741.5926,-3);
+---------------------+
| round(3741.5926,-3) |
+---------------------+
| 4000 |
+---------------------+
4. truncate()截取数字
TRUNCATE(x,y)函数对操作数进行操作,结果保留小数点后面指定y位
mysql> select truncate(3.5678,2) ,round(3.5678,2);
+--------------------+-----------------+
| truncate(3.5678,2) | round(3.5678,2) |
+--------------------+-----------------+
| 3.56 | 3.57 |
+--------------------+-----------------+
5. power(x,y)求一个数的y次幂
6. sign(x)-返回数字的符号,正数为1,负数为-1,零为0
mysql> select sign(-9.2),sign(89.8),sign(0.0);
+------------+------------+-----------+
| sign(-9.2) | sign(89.8) | sign(0.0) |
+------------+------------+-----------+
| -1 | 1 | 0 |
+------------+------------+-----------+
二、字符串函数
1. 求字符串长度
char_length(), length() 区别
mysql> select char_length("a12你好哈"),length("a12你好哈");
+--------------------------+---------------------+
| char_length("a12你好哈") | length("a12你好哈") |
+--------------------------+---------------------+
| 6 | 9 |
+--------------------------+---------------------+
char_length("a12你好哈"): 统计里面有多少个字符 (不区分汉字还是英文)
length("a12你好哈"): 统计的是占用的字节数()
汉字字符集: gbk: 一个汉字占用内存2字节 ,utf8一个汉字占用内存3字节
2. (1)使用CONCAT函数连接字符串
SELECT CONCAT('My SQL', '5.5'),CONCAT('My',NULL, 'SQL');
+-------------------------+--------------------------+
| CONCAT('My SQL', '5.5') | CONCAT('My',NULL, 'SQL') |
+-------------------------+--------------------------+
| My SQL5.5 | NULL |
+-------------------------+--------------------------+
CONCAT 可以一次拼接2个以上的字符串,当其中一个是null值时,结果是NULL
(2)CONCAT_WS函数连接带分隔符的字符串concat_ws(x,s1,s2) x代表分割符,分割符为null返回null
mysql> select concat_ws("-","x","y","z"), concat_ws("-","x",null,"z"),concat_ws(null,"x","y","z");
+----------------------------+-----------------------------+-----------------------------+
| concat_ws("-","x","y","z") | concat_ws("-","x",null,"z") | concat_ws(null,"x","y","z") |
+----------------------------+-----------------------------+-----------------------------+
| x-y-z | x-z | NULL |
+----------------------------+-----------------------------+-----------------------------+
3. lower函数或者lcase函数将字符串中所有字母字符转换为小写
mysql> select LOWER("vfrvGRHG"),lcase("feGRHT");
+-------------------+-----------------+
| LOWER("vfrvGRHG") | lcase("feGRHT") |
+-------------------+-----------------+
| vfrvgrhg | fegrht |
+-------------------+-----------------+
1 row in set (0.00 sec)
upper函数或者ucase函数将字符串中所有字母字符转换为大写
4. 字节的截取:
(1) left(str,n): 截取str 左边n个字符
(2)right(str,n): 截取str 右边n个字符
(3) substring(str,start,length);
mysql> select left("abcdefg",3),right("abcdefg",3) ,substring("abcdefg",3,4);
+-------------------+--------------------+--------------------------+
| left("abcdefg",3) | right("abcdefg",3) | substring("abcdefg",3,4) |
+-------------------+--------------------+--------------------------+
| abc | efg | cdef |
+-------------------+--------------------+--------------------------+
5. 删除空格的函数
ltrim左边去空格, rtrim 右边去空格,trim两端去空格
SELECT '* book *',CONCAT('***',LTRIM(' book '),'***') l1,CONCAT('***',RTRIM(' book '),'***') l2 ,CONCAT('***',TRIM(' book '),'***') l3;
+-----------+------------------+------------------+------------+
| * book * | l1 | l2 | l3 |
+-----------+------------------+------------------+------------+
| * book * | ***book *** | *** book*** | ***book*** |
+-----------+------------------+------------------+------------+
6. 使用REVERSE函数反转字符串
7. 字符串替换replace(str,s1,s2)
mysql> select replace("abcdefgef","ef","***");
+---------------------------------+
| replace("abcdefgef","ef","***") |
+---------------------------------+
| abcd***g*** |
+---------------------------------+
任意的电话号码中间四位被替换为****
select replace("13718820432",substring("13718820432",3,4),"****");
mysql> select * from person1;
+------+-------------+
| id | phone |
+------+-------------+
| 1 | 13245677777 |
| 1 | 13269879012 |
| 3 | 13287901256 |
| 3 | 13789001256 |
mysql> select replace(phone,substring(phone,4,4),"****") from person1;
+--------------------------------------------+
| replace(phone,substring(phone,4,4),"****") |
+--------------------------------------------+
| 132****7777 |
| 132****9012 |
| 132****1256 |
| 137****1256 |
+--------------------------------------------+
三 、日期函数
select current_timestamp(),localtime(),now(),sysdate();
四、系统信息函数
五、条件判断函数
1. if(expr,v1,v2) 函数
mysql> select if(5>41,1,0);
+--------------+
| if(5>41,1,0) |
+--------------+
| 0 |
+--------------+
mysql> select if(comm is null,0,comm)+sal 总钱数 from emp;
+--------+
| 总钱数 |
+--------+
| 880 |
| 2060 |
| 1875 |
| 3273 |
| 2775 |
| 3135 |
| 2695 |
| 3300 |
| 5500 |
| 1650 |
| 1210 |
| 1045 |
| 3300 |
| 1430 |
| 3556 |
+--------+
15 rows in set (0.00 sec)
mysql> select if(comm is null,sal,comm+sal) 总钱数 from emp;
+--------+
| 总钱数 |
+--------+
| 880 |
| 2060 |
| 1875 |
| 3273 |
| 2775 |
| 3135 |
| 2695 |
| 3300 |
| 5500 |
| 1650 |
| 1210 |
| 1045 |
| 3300 |
| 1430 |
| 3556 |
+--------+
15 rows in set (0.00 sec)
2. case函数
case 条件 when 值1 then 结果1 [when 值2 then 结果2][else 结果n] end
mysql> select case 31*5%4 when 0 then "整除" when 1 then "余数为1" when 2 then "余数为2" else "余数为3" end;
+--------------------------------------------------------------------------------------------------------+
| case 31*5%4 when 0 then "整除" when 1 then "余数为1" when 2 then "余数为2" else "余数为3" end |
+--------------------------------------------------------------------------------------------------------+
| 余数为3 |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql的函数笔记的更多相关文章
- MySQL函数笔记
MySQL函数笔记 日期函数 SELECT t1.xcjyrq, t1.* FROM view_sbxx t1 WHERE t1.syzt ; SELECT t1.xcjyrq, t1.* FROM ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- mysql颠覆实战笔记(一)--设计一个项目需求,灌入一万数据先
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- Mysql的函数使用方法
今天有点临时需求要计算一张表的结果,不想写代码,想到了mysql的自定义函数.碰到了很多问题,为了方便一下使用,在此记录一下. 需求:一张表中,有比分,需要查询出比赛id和比赛结果. 分析: ...
- MySql数据库基础笔记(一)
一.表与库的概念 数据库管理数据,它是以什么样的形式组成的? 生活中的表---->表 table多行多列,传统的数据库都是这样的;声明了表头,一个表创建好了,剩下的就是往表中添加数据 多张表放在 ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- 基于【 MySql 】二 || mysql详细学习笔记
mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...
- (2.2)【转】mysql的SQL笔记
一千行 MySQL 详细学习笔记 IT技术思维 4月1日 ↑↑↑点上方蓝字关注并星标⭐「IT技术思维」 一起培养顶尖技术思维 作者:格物 原文链接:https://shockerli.net/post ...
- MySQL:提高笔记-4
MySQL:提高笔记-4 学完基础的语法后,进一步对 MySQL 进行学习,前几篇为: MySQL:提高笔记-1 MySQL:提高笔记-2 MySQL:提高笔记-3 MySQL:提高笔记-4,本文 说 ...
随机推荐
- Git暂存本地代码,强制获取远程最新代码
一:git stash // 把本地修改的代码压到git栈中去 二:git pull // 本地代码压栈之后,pull远程代码会完全覆盖本地代码 三:git stash list // 可以查看 ...
- HTML5 01. 布局、语义化标签、智能化表单、表单元素/标签/属性/事件、多媒体、类操作、自定义属性
1.知识点 lang = “en” 所用语言是英文 文档结构更简洁 IE8一下不支持h5c3 书写更宽松 div没有语义 标签语义化:在合适的地方使用合适的标签 对seo优化友谊 网页经典布局 页 ...
- Spring的事件监听机制
最近公司在重构广告系统,其中核心的打包功能由广告系统调用,即对apk打包的调用和打包完成之后的回调,需要提供相应的接口给广告系统.因此,为了将apk打包的核心流程和对接广告系统的业务解耦,利用了spr ...
- mybatis转义
SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE 在执行 ...
- 【Offer】[68] 【树中两个结点的最低公共祖先】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个树结点,求它们的最低公共祖先. [牛客网刷题地址]无 思路分析 该题首先要确定是否为二叉树,还要确定是否为二叉搜索树,是否有父指 ...
- 使用FreePBX和第三方线路对接
首先搭建好相关环境 在FreePBX的web-gui控制界面进行操作. 通信接口连接--->中继 先创建一条中继线路: 创建中继 设置这条线路 优先级为0 中继名: 设置一个名字 Outgoi ...
- GIT常见问题及其解决方案
问题: remote: Permission to beijing01/learn_github.git denied to liuhongyang02. fatal: unable to acces ...
- Vue 前端uni-app多环境配置部署服务器的问题
目录 前端Vue 针对问题 package.json描述 多环境部署 查看源码获取解决方案 转载请标明出处: http://dujinyang.blog.csdn.net/ 本文出自:[奥特曼超人的博 ...
- Imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloading it now.
场景 在使用pip下载了Imageio之后,需要下载ffmpeag-win-32-v3.2.4.exe文件,一种是在代码的 开头部分加入: imageio.plugins.ffmpeg.downloa ...
- 中文保存在properties乱码的解决
方法:将中文转换为Native/ASCII编码:(比较好的一种解决方法,也必须设置好properties的字符编码(utf-8):已经试验成功) 网站:http://tool.oschina.net/ ...