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,本文 说 ...
随机推荐
- sed一些常用命令
[转] http://blog.chinaunix.net/uid-20754793-id-177657.html 下面是我学习sed时参照参考书总结的一些常用sed命令,基本上每条语句都进行了调试1 ...
- MySQL 之 pymysql
MySQL 之 pymysql 一.概述 pymysql是python用来连接mysql的工具,安装方式:pip install pymysql -i https://pypi.douban.com/ ...
- 自定义属性,innerHTML,outerHTML,dom节点的获取,className,tagName,更改或者是获取css属性
01.自定义属性 1.自定义属性: 作用:保存数据 通用的自定义属性的前缀 data-属性="属性值" 注:自定义的属性不能通过 元素.属性 取属性值 ,需使用getAttribu ...
- to_char()、to_date()的区别
to_char 是把日期或数字转换为字符串 to_date 是把字符串转换为数据库中得日期类型 还记得以前初次接触oracle时对一些函数还不是很熟悉,老是弄错,比如在mysql中可以运行,但在ora ...
- odoo12之应用:一、双因子验证(Two-factor authentication, 2FA)(HOTP,TOTP)附源码
前言 双因子认证:双因子认证(2FA)是指结合密码以及实物(信用卡.SMS手机.令牌或指纹等生物标志)两种条件对用户进行认证的方法.--百度百科 跟我一样"老"的网瘾少年想必一定见 ...
- Winform中DevExpress的TreeList的入门使用教程(附源码下载)
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- charles 黑名单
本文参考:charles 黑名单 charles 黑名单 功能:阻止对匹配HOST的请求:可以直接把请求丢掉,也可以直接返回403状态码: 我一般用黑名单工具来block一些软件的自动上传功能 黑名单 ...
- jmeter linux压测报错:Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/server/ptest/disk_out.jmx'.
1.linux环境jmeter与win环境编写脚本的jmeter版本不一致,版本改为一致 2.脚本中存在中文,去除中文 3.脚本中存在类似于jp@gc - Active Threads Over Ti ...
- nfs 存储服务
今日内容: NFS 1.什么是nfs? network file system 网络文件系统 nfs共享存储 2.nfs能干什么? nfs 能为 不同主机系统之间 实现 文件的共享 3.为什么要使用n ...
- 48 (OC)* 适配iPad和iPhone、以及横竖屏适配。
一:核心方法 1.三个方法 1.1:开始就会触发 - (void)viewWillLayoutSubviews; 1.2:开始就会触发 - (void)viewDidLayoutSubviews; 1 ...