mySQL教学第6章MySQL内置函数.ppt
《mysql教程》PPT课件
数据库的发展史
• 人工管理阶段
– 人力手工整理存储数据
• 文件系统阶段
–使用磁盘文件来存储数据
• 数据库系统阶段
–关系型数据库
• 高级数据库阶段
– “关系-对象”型数据库
• mysql命令
– 处理存放在文件里的SQL命令 – 格式:mysql [option] dbname < file.sql mysql –u root –p --default-character-
set=latin1 dbname < backup.sql
注:latin1是MySQL4.0的默认字符集或者utf-8是 MySQL5.0的默认字符集,如果不知道使用什么字 符集的时候,可以选用这两个其中一个
Address
12, Temple Street 123, Sunset Blvd. 32, Golden Avenue
12, Temple Street 12, Tmple Street 33, Golden Avenue
BookTaken
AC091 AC043 AC021
AC043 AC011 AC011
DBMS的主要功能-For数据库管理员
–数据库的运行管理
保证数据的安全性、完整性、 多用户对数据的并发使用 发生故障后的系统恢复
–数据库的建立和维护功能(实用程序)
数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等
时下流行的DBMS
• Oracle
– 应用广泛、功能强大,分布式数据库系统 – “关系-对象”型数据库
MySQL基本原理 ppt课件
15
MySQL复制原理
• MySQL Replication的基本原理是通过binlog复制应用的方式来还原数据。
• MySQL通过Server_id来识别binlog由哪台主机产生,因此即使双Master复制, 也不会出现binlog被重复应用
• 复制线程分为Slave IO和Slave SQL两个,Slave IO线程只负责注册到Master上, 读取binlog,然后解析到本地,Slave SQL线程只负责把Slave IO线程产生的可 执行SQL应用到本地。
dir=bundled –enable-assembler –enable-profiling –enable-local-in –with-readline
–with-pthread –with-embedded-server –with-client-ldflags=-all-static –with-
• MySQL结构层次 • MySQL处理流程 • 存储引擎机制
2021/3/26
MySQL基本原理 ppt课件
3
MySQL结构层次
2021/3/26
MySQL基本原理 ppt课件
4
MySQL处理流程
当客户端链接上mysql服务端时, 系统为其分配一个链接描述符thd, 用以描述客户端的所有信息,将作 为参数在各个模块之间传递。一个 典型的客户端查询在MySQL的主要 模块之间的调用关系如图所示:
wwwpenglixuncom整理课件内容概要mysql关键代码实现分析整理课件mysql体系架构存储引擎机制整理课件mysql结构层次整理课件mysql处理流程当客户端链接上mysql服务端时系统为其分配一个链接描述符thd用以描述客户端的所有信息将作为参数在各个模块之间传递
《mysqll教程》课件
如phpBB使用MySQL作为其数据库存储解决方案。
博客平台
如WooCommerce使用MySQL作为其商品和订单数据的存储。
02 MySQL基础
安装和配置MySQL
总结词
安装步骤、配置选项
详细描述
提供详细的MySQL安装步骤,包括下载安装包、运行安装程序、选择安装组件等。同时介绍常见的配置选项, 如端口号、字符集、时区等。
1995年发布第一个版本,2000年 MySQL AB公司被Sun Microsystems公司收购,2008年被 甲骨文公司(Oracle Corporation) 收购。
03
里程碑
随着版本的更新,MySQL不断优化和 改进,成为世界上最流行的关系型数 据库管理系统之一。
MySQL的特点和优势
特点
数据仓库
建立数据仓库,对大数据进行多维分 析和报表生成。
数据可视化
使用工具如Tableau或Power BI,将 数据分析结果进行可视化展示。
06 MySQL的未来发展
MySQL的新特性和发展方向
分布式数据库
MySQL将进一步支持分布式数据 库功能,实现更高效的数据存储 和处理。
人工智能与机器学
系统架构
02 设计新闻发布系统的整体架构
,包括前后端分离、数据库设 计等。
数据库优化
03 对数据库表进行优化,如索引
、分区等,以提高查询效率。
缓存技术
04 使用缓存技术如Redis,减少
对数据库的访问次数。
异步处理
05 使用消息队列如Kafka,实现
异步处理,提高系统响应速度 。
安全措施
06 对用户输入进行校验和过滤,
高效数据库的需求。
网络数据库技术6Mysql语言结构及内置函数
值,可以为三种之一:1(真)、0(假)及 NULL(不能确定)
运 算 符 = > < >= 等于 大于 小于 大于等于 含 义 运 算 符 <= <>、!= <=> 含 义 小于等于 不等于 相等或都等于空
3. 逻辑运算符
逻辑运算符用于对某个条件进行测试,运算结
果为TRUE(1)或FALSE(0)
义
不同于数字类型的“0”或字符串类型的空字符
串。
一. 常量和变量
变量 用于临时存放数据 变量中的数据随程序的运行而变化 两个属性
变量名 数据类型
变量
1. 用户变量 2. 系统变量
1. 用户变量
先定义和初始化。
如果使用没有初始化的变量,它的值为NULL。
定义和初始化语法格式为:
VARIABLES。
二. 运算符与表达式
1. 算术运算符 2. 比较运算符 3. 逻辑运算符 4. 位运算符 5. 运算符优先级
6. 表达式
1. 算术运算符
五种: +(加)、(减)、*(乘)、/(除)和%
(求模)
2. 比较运算符
又称关系运算符 用于比较两个表达式的值,其运算结果为逻辑
了,并且应用于每个启动的会话。
如果使用GLOBAL(要求SUPER权限)来设
置系统变量,则该值被记住,并被用于新的连 接,直到服务器重新启动为止。
会话系统变量
只适用于当前的会话 当启动会话的时候,每个会话系统变量都和同
名的全局系统变量的值相同。
一个会话系统变量的值是可以改变的,但是这
WHERE XM=@student;
《MySQL数据库原理及应用》课件第6章MySQL数据库高级管理
第6章 MySQL数 据库高级管理
6.1 MySQL的权 限系统
6. 1. 1 权限表 6. 1.2 MySQL权限
系统的工作原 理 6. 1.3 账户管理
6. 1.4 权限管理
6.2 MySQL的数 据备份和恢复
6.3 MySQL日志
● 1. 权限表user 、db和host的结构 和作用
● 〔 2〕 db表和host表 。db表和host 表也是MySQL数据库中非常重要
● 【例】 添加一个新用户 , 用户名为bana , 密码为440432, 不指定明文 。操作步骤如下 。
● ① 使用password ()函数获取密码 "440432 " 的散列值 。 ● mysql> SELECT password ( "440432 " ) ;
● +------------------------------------------- +
● || password ( "440432 " )
||
● +------------------------------------------- +
● || *8896757F25D7B730D7A72894FE06257623CF99B9 ||
● +------------------------------------------- +
第6章 MySQL数 据库高级管理
6.1 MySQL的权 限系统
6. 1. 1 权限表 6. 1.2 MySQL权限
系统的工作原 理 6. 1.3 账户管理
6. 1.4 权限管理
6.2 MySQL的数 据备份和恢复
《MySQL基础教程》课件
数据的插入、查询、更新和删除
总结词
掌握插入、查询、更新和删除数据的基本操 作。
详细描述
插入数据可以使用`INSERT INTO`语句,指 定要插入的表和要插入的数据。查询数据可 以使用`SELECT`语句,指定要查询的表和条
件。更新数据可以使用`UPDATE`语句,指 定要更新的表、更新条件和要更新的数据。
《MySQL基础教程》PPT课件
• MySQL简介 • MySQL的安装与配置 • MySQL的基本操作 • MySQL的数据类型 • MySQL的查询优化 • MySQL的存储过程和函数 • MySQL的触发器和事件 • MySQL的管理和维护
01
MySQL简介
什么是MySQL
定义
MySQL是一个开源的关系型数据库管理系统(RDBຫໍສະໝຸດ S) 。重启MySQL服务
修改配置后,需要重启MySQL服务使配置生效。
启动与停止MySQL服务
启动MySQL服务
通过操作系统命令或MySQL自带的命令行 工具启动MySQL服务。
停止MySQL服务
同样使用操作系统命令或MySQL自带的命令行工具 停止MySQL服务。
常见问题处理
在启动或停止MySQL服务时,可能会遇到 各种问题,如端口被占用、权限问题等,需 要根据实际情况进行处理。
03
04
05
事件是一种定时任务, 可以在指定的时间间隔 内自动执行。
创建事件需要使用 `CREATE EVENT`语句, 并指定事件的名称、触 发时间、触发间隔以及 要执行的SQL语句。
事件的使用场景包括定 期清理数据、自动备份 数据库、定时发送通知 等。
08
MySQL的管理和维护
数据备份与恢复
《mysql教程》课件
总结词
了解和掌握索引和约束的概念及作用, 以及如何在MySQL中创建和使用索引和 约束。
VS
详细描述
索引用于提高查询效率,通过在表的列上 创建索引,可以加快对数据的访问速度。 约束用于保证数据的完整性和一致性,常 见的约束有主键约束、外键约束、唯一约 束和检查约束等。在MySQL中,可以使 用CREATE INDEX语句创建索引,使用 ALTER TABLE语句添加约束。
的性能和响应速度。
04
MySQL安全和维护
用户和权限管理
用户管理
创建、删除用户,设置用户密码,为用户分 配权限等。
权限管理
为用户分配不同的数据库权限,如查询、插 入、更新、删除等。
角色管理
创建、删除角色,为角色分配权限,然后将 角色分配给用户。
访问控制
控制用户对数据库的访问,例如限制某些用 户只能访问特定的表或列。
数据插入、查询、更新和删除
总结词
掌握在MySQL中插入、查询、更新和删除数据的基本操作。
详细描述
插入数据使用INSERT INTO语句,查询数据使用SELECT语句,更新数据使用UPDATE语句,删除数据使用 DELETE FROM语句。这些操作是数据库管理中最常见的操作,需要熟练掌握。
索引和约束
视图和分区
要点一
视图
视图是一个虚拟表,基于SQL查询的结果集。视图可以用 于简化复杂的查询操作,隐藏表中的某些列或行,以及提 供数据安全性控制。
要点二
分区
分区是将表或索引分成多个较小的、更易于管理的片段的 技术。分区可以提高查询性能、管理大型表和索引的灵活 性,以及实现数据维护和备份的优化。
数据库设计和优化
2008年,MySQL被Sun Microsystems公司收 购。
mysql第6章课件
6.2.4 6.2.5
流程控制的使用
✎
知识架构
6.3 存储过程的使用
调用存储过程 查看存储过程 修改存储过程 删除存储过程
返回目录
6.3.1 6.3.2
6.3.3
6.3.4
✎
6.1 事务管理
什么是事务?
所谓的事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成, 同一个事务的操作具备同步的特点,即事务中的语句要么都执行,要么都不执行。 − 事物的使用:
示例如下:
示例如下:
✎
6.2 存储过程的创建
定义条件
− 定义条件是指事先定义程序执行过程中遇到的问题。定 义条件使用DECLARE语句,语法格式如下:
DECLARE condition_name CONDITION FOR [condition_type]; // condition_type的两种形式: [condition_type]: SQLSTATE[VALUE] sqlstate_value|mysql_error_code
持久性
事务 特性
隔离性
✎
6.1 事务管理
案例代码
− 由于事务中的操作都是手动提交的,因此在操作完事务时, 一定要使用COMMIT语句提交事务,否则事务操作会失败。
✎
6.1 事务管理
案例代码
− 在操作一个事务时,如果发现当前事务中的操作是不合理的, 此时只要还没有提交事务,就可以通过回滚来取消当前事务。
提交事务
取消事务(回滚)
COMMIT;
ROLLBACK;
✎
6.1 事务管理
案例代码
− 通过一个转账的案例演示事务的使用。
✎
MySql基础操作详解ppt课件
数据的增删改查
添加关键字:INSERT 添加数据:INSERT INTO 表名(列) VALVES
(值); 例:insert into student(name, birth) values ('sl',
Goodbye
Client 然后输入密码。登陆成效果果如下:
根本操作—用户管理
用户信息都存储在er表。 添加用户 GRANT 权限 ON 位置 TO 用户名登录主机 identified by "
密码" 权限:Insert、Delete、Update、Select等等 位置:数据库.表,通配符*表示一切〔*.*表示一切数据
10; "like"表示模糊匹配,主要利用一些通配符匹配。 "regexp"表示扩展正那么表达式匹配,功能更全面。
通配符和正那么表达式
%:匹配恣意多个恣意字符 例:where name like '%l':表示恣意以'l'终了
的字符串 例:where name like 'l%':表示恣意以'l'开场
'1991-1-18'); 注:假设插入数据不满足约束条件那么会出现
SQL错误! 删除关键字:DELETE 删除数据:DELETE FROM 表名 WHERE 范围; 例:delete from student where id=1;
数据的增删改查
修正关键字:UPDATE UPDATE 表名 SET 列=值 WHERE 范围 例:update student set name='sll',birth='1234'
第六章MYSQL数据库
SQL 是操作和检索关系型数据库的标准语言,使用 是操作和检索关系型数据库的标准语言,使用Sql语 语 句,程序员和数据库管理员可以完成如下的任务
改变数据库的结构 更改系统的安全设置 增加用户对数据库或表的许可权限 在数据库中检索需要的信息 对数据库的信息进行更新
SQL语言的分类 语言的分类
drop index index_name;
插入记录操作
语法: 语法:
insert into 表名(字段名,字段名, ... ) values(字段值,字段值,...);
叙述: 叙述:
如果表名后面没写字段名,则默认是向所有的字段添 加值字符串值应该用引号括起来
举例1:向people表中添加一条记录: 向 表中添加一条记录: 表中添加一条记录 insert into people(name,age) values(“zhangsan”,20); 举例2:向people表中添加三条记录: 表中添加三条记录: 向 表中添加三条记录 insert into people values (“zhangsan”,20), (“lisi”,10), (“wangwu”,40);
更新表结构
语法:alter table 表名 action;
说明:action 可以是如下语句: add 列名 <建表语句> (first | after 列名) 可以为表添加一列,如果没指定first或者after,则在列尾添 加一列,否则在指定列添加新列 add primary key (列名) 为表添加一个主键,如果主键已经存在,则出现错误 alter 列名 set default 默认值 可以更改指定列默认值 change (modify) 列名 <建表语句>(first | after) 可以更改列类型,如果原列的名字和新列的名字相同,则change Modify的作用相同 drop 列名 //可以删除一列 //可以删除主键 //可以删除索引 //可以将表名更改 drop primary key rename as 新表名
MySQL存储过程ppt课件
sp_name 存储过程的名字 proc_parameter指定参数为IN, OUT,或INOUT characteristic 特征 routine_body 包含合法的SQL过程语句。
(IN inparms INT,OUT outparams varchar(32))
/* 输入参数 */
BEGIN
/* 语句块头 */
DECLARE var CHAR(10);
/* 变量声明 */
DECLARE num int; IF inparms = 1 THEN
SET var = 'hello';
生物信息学数据库设计
第六章 MySQL存储过程
存储过程的概念
所谓的存储过程就是存储在数据库当中的可 以执行特定工作(查询和更新)的一组SQL 代码 的程序段。
与自定义函数的区别:
自定义函数有且只有一个返回值,就像普通 的函数一样,可以直接在表达式中嵌入调用。
存储过程可以没有返回值,也可以有任意个 输出参数,必须单独调用。
存储程序的CASE语句实现一个复杂的条件构造。如果 search_condition 求值为真,相应的SQL被执行。如果没 有搜索条件匹配,在ELSE子句里的语句被执行。
举例: CREATE PROCEDURE p2 (IN parameter1 INT) BEGIN
DECLARE variable1 INT; SET variable1 = parameter1 + 1; CASE variable1
END
//
mysql中的内置函数
mysql中的内置函数mysql内置函数列表可以从查询,这⾥仅分类简单介绍⼀些可能会⽤到的函数。
1 数学函数abs(x)pi()mod(x,y)sqrt(x)ceil(x)或者ceiling(x)rand(),rand(N):返回0-1间的浮点数,使⽤不同的seed N可以获得不同的随机数round(x, D):四舍五⼊保留D位⼩数,D默认为0,可以为负数,如round(19, -1)返回20truncate(x, D):截断⾄保留D位⼩数,D可以为负数,如trancate(19,-1)返回10sign(x): 返回x的符号,正负零分别返回1, -1, 0pow(x,y)或者power(x,y)exp(x):e^xlog(x):⾃然对数log10(x):以10为底的对数radians(x):⾓度换弧度degrees(x):弧度换⾓度sin(x)和asin(x):cos(x)和acos(x):tan(x)和atan(x):cot(x):2 字符串函数char_length(str):返回str所包含的字符数,⼀个多字节字符算⼀个字符length(str): 返回字符串的字节长度,如utf8中,⼀个汉字3字节,数字和字母算⼀个字节concat(s1, s1, ...): 返回连接参数产⽣的字符串concat_ws(x, s1, s2, ...): 使⽤连接符x连接其他参数产⽣的字符串INSERT(str,pos,len,newstr):返回str,其起始于pos,长度为len的⼦串被newstr取代。
1. 若pos不在str范围内,则返回原字符串str2. 若str中从pos开始的⼦串不⾜len,则将从pos开始的剩余字符⽤newstr取代3. 计算pos时从1开始,若pos=3,则从第3个字符开始替换lower(str)或者lcase(str):upper(str)或者ucase(str):left(s,n):返回字符串s最左边n个字符right(s,n): 返回字符串最右边n个字符lpad(s1, len, s2): ⽤s2在s1左边填充⾄长度为len, 若s1的长度⼤于len,则截断字符串s1⾄长度len返回rpad(s1, len, s2):ltrim(s):删除s左侧空格字符rtrim(s):TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)或TRIM([remstr FROM] str):从str中删除remstr, remstr默认为空⽩字符REPEAT(str,count):返回str重复count次得到的新字符串REPLACE(str,from_str,to_str):将str中的from_str全部替换成to_strSPACE(N):返回长度为N的空⽩字符串STRCMP(str1,str2):若str1和str2相同,返回0,若str1⼩于str2, 返回-1,否则返回1.SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len),MID(str,pos,len): 获取特定位置,特定长度的⼦字符串LOCATE(substr,str), LOCATE(substr,str,pos),INSTR(str,substr),POSITION(substr IN str): 返回字符串中特定⼦串的位置,注意这⾥INSTR与其他函数的参数位置是相反的REVERSE(str)ELT(N,str1,str2,str3,...):返回参数strN, 若N⼤于str参数个数,则返回NULLFIELD(str,str1,str2,str3,...): 返回str在后⾯的str列表中第⼀次出现的位置,若找不到str或者str为NULL, 则返回0FIND_IN_SET(str,strlist):strlist是由','分隔的字符串,若str不在strlist或者strlist为空字符串,则返回0;若任意⼀个参数为NULL则返回NULLMAKE_SET(bits,str1,str2,...): 由bits的作为位图来选取strN参数,选中的参数⽤','连接后返回3 ⽇期和时间函数CURDATE(), CURRENT_DATE, CURRENT_DATE():⽤于获取当前⽇期,格式为'YYYY-MM-DD'; 若+0则返回YYYYMMDDUTC_DATE, UTC_DATE():返回当前世界标准时间CURTIME([fsp]), CURRENT_TIME, CURRENT_TIME([fsp]): ⽤于获取当前时间,格式为'HH:MM:SS' 若+0则返回 HHMMSSUTC_TIME, UTC_TIME([fsp])CURRENT_TIMESTAMP, CURRENT_TIMESTAMP([fsp]), LOCALTIME, LOCALTIME([fsp]), SYSDATE([fsp]), NOW([fsp]): ⽤于获取当前的时间⽇期,格式为'YYYY-MM-DD HH:MM:SS',若+0则返回YYYYMMDDHHMMSSUTC_TIMESTAMP, UTC_TIMESTAMP([fsp])UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date):返回⼀个unix时间戳('1970-01-01 00:00:00' UTC⾄今或者date的秒数),这实际上是从字符串到整数的⼀个转化过程FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format):从时间戳返回'YYYY-MM-DD HH:MM:SS' 或者YYYYMMDDHHMMSS,加⼊format后根据所需的format显⽰。
mysql教程06.MySQL内置函数
Lpad(s1,len,s2):返回字符串s1,其左边由字符串s2填补到len字符长度,假 如s1的长度大于len,则返回值被缩短至len字符
Rpad(s1,len,s2):返回字符串s1,其右边由字符串s2填补到len字符长度,假 如s1的长度大于len,则返回值被缩短至len字符
Ltrim(s):返回字符串s,其引导空格字符被删除 Rtrim(s):返回字符串s,结尾空格字符被删除 Trim(s):去掉字符串s开始处和结尾处的空格 Trim(s1 from s):去掉字符串s中开始处和结尾处的字符串s1 Repeat(s,n):将字符串s重复n次 Space(n):返回n个空格 Replace(s,s1,s2):用字符串s2替代字符串s中的字符串s1 Strcmp(s1,s2):比较字符串s1和s2 Substring(s,n,len):获取从字符串s中的第n个位置开始长度为len的字符串
Ifnull(v1,v2):如果v1不为空,则显示v1的值,否则显示v2的 值
Case when expr1 then v1 [when expr2 then v2…] [else wn] end: case表示函数开始,end表示函数结束
Case expr when e1 then v1 [when e2 then v2…] [else wn]end:case表示函数开始,end表示函数结束
字符串函数
Char_length(s):返回字符串s的字符数 Length(s):返回值为字符串s的长度,单位为字节 Concat(s1,s2,…):返回结果为连接参数产生的字符串 Insert(s1,x,len,s2):将字符串s2替换s1的x位置开始长度为
mysql中函数的应用PPT课件
案例分析1-1
问题:
授课:XXX 2021/3/9
自定义函数完成类似REPLACE()函 数的功能
7
案例分析1-2
分析: 函数需要3个参数: 1,原始字符串 2,源字符串 3,目标字符串
授课:XXX 2021/3/9
8
案例分析1-3
授课:XXX 2021/3/9
DELIMITER $$ CREATE FUNCTION myreplace(str VARCHAR(50),ystr VARCHAR(50),mstr VARCHAR(50)) RETURNS VARCHAR(50) BEGIN RETURN REPLACE(str,ystr,mstr); END $$ DELIMITER ;
9
授课:XXX 2021/3/9
案例分析2-1
大家知道mysql中字符串转int会发生自动类型转换 例如: select ‘123’+0 返回int 那么如何将int转为字符串呢? 自定义函数完成.
10
授课:XXX 2021/3/9
案例分析2-2
可以利用concat()函数将数值和空字符串连接出来
SET t = t + 1; END WHILE;
SELECT t; END$$ DELIMITER ;
25
WHILE示例 授课:XXX 2021/3/9
学员成绩表
问题:
本次考试成绩较差,假定要提分,确保每人笔试都通过。提分规则很简 单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分, 再看是否都通过,如此反复提分,直到所有人都通过为止 。
20
IF-ELSE示例授课:XXX 2021/3/9问题:学员成绩表
mysql中的内置函数
mysql中的内置函数字符串函数1、ASCLL(s)返回字符串s的第⼀个字符的ascll2、char_length(s)返回字符串s的字符个数3、character_length(s)返回字符串的字符数4、concat(s1,s2,s3...)字符串s1,s2,s3,...拼接合并为⼀个字符串5、concat_ws(x,s1,s2,...)合并字符串,并使⽤x隔开6、field(s,s1,s2...)返回字符串s在字符串列表[s1,s2...]中的位置7、find_in_set(s1,s2)返回s1在s2中的返回位置8、format(x,n)格式化数字x,保留到⼩数点后n位9、insert(s1,x,len,s2)字符串s2,替换s1的从x位置开始长度为len的字符串10、locate(s1,s)从字符串 s 中获取 s1 的开始位置。
从0开始11、lcase(s)将字符串s中的所有字母变成⼩写字母12、left(s,n)返回字符串 s 的前 n 个字符串13、lower(s)将字符串转换成⼩写字母14、lpad(s1,len,s2)在字符串 s1 的开始位置填充字符串s2,使得字符串长度达到len15、ltrim(s)去掉字符串s开始处的空格16、mid(s,n,len)从字符串s的n位置截取长度为len的⼦字符串。
同 substring(s,n,len)17、position(s1 in s)从字符串 s 中获取 s1 的开始位置18、repeat(s,n)将字符串 s 重复 n 次19、replace(s,s1,s2)将字符串s2代替字符串s中的字符串s120、reverse(s)将字符串s的顺序反过来21、right(s,n)返回字符串s的后n个字符22、rpad(s1,len,s2)在字符串s1的结束位置添加字符串s2,使字符串长度达到len23、rtrim(s)去掉字符串s结尾处的空格24、space(n)返回n个空格25、strcmp(s1,s2)⽐较字符串⼤⼩。
Mysql数据库内置功能之函数
Mysql数据库内置功能之函数⼀函数MySQL中提供了许多内置函数,例如:⼀、数学函数1ROUND(x,y)2返回参数x的四舍五⼊的有y位⼩数的值34RAND()5返回0到1内的随机值,可以通过提供⼀个参数(种⼦)使RAND()随机数⽣成器⽣成⼀个指定的值。
View Code⼆、聚合函数(常⽤于GROUP BY从句的SELECT查询中)1AVG(col)返回指定列的平均值2COUNT(col)返回指定列中⾮NULL值的个数3MIN(col)返回指定列的最⼩值4MAX(col)返回指定列的最⼤值5SUM(col)返回指定列的所有值之和6 GROUP_CONCAT(col) 返回由属于⼀组的列值连接组合⽽成的结果三、字符串函数1 CHAR_LENGTH(str)2返回值为字符串str 的长度,长度的单位为字符。
⼀个多字节字符算作⼀个单字符。
3 CONCAT(str1,str2,...)4字符串拼接5如有任何⼀个参数为NULL ,则返回值为NULL。
6 CONCAT_WS(separator,str1,str2,...)7字符串拼接(⾃定义连接符)8 CONCAT_WS()不会忽略任何空字符串。
(然⽽会忽略所有的NULL)。
910 CONV(N,from_base,to_base)11进制转换12例如:13SELECT CONV('a',16,2); 表⽰将 a 由16进制转换为2进制字符串表⽰1415 FORMAT(X,D)16将数字X 的格式写为'#,###,###.##',以四舍五⼊的⽅式保留⼩数点后 D 位,并将结果以字符串的形式返回。
若 D 为0, 则返回结果不带有⼩数点,或不含⼩数部分。
17例如:18SELECT FORMAT(12332.1,4); 结果为:'12,332.1000'19INSERT(str,pos,len,newstr)20在str的指定位置插⼊字符串21 pos:要替换位置其实位置22len:替换的长度23 newstr:新字符串24特别的:25如果pos超过原字符串长度,则返回原字符串26如果len超过原字符串长度,则由新字符串完全替换27 INSTR(str,substr)28返回字符串str中⼦字符串的第⼀个出现位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.3字符串函数
填充字符串的函数 PAD(‘s1’,10,’s2’) 删除空格的函数 LTRIM() 删除指定字符串两端字符的函数 TRIM(s1 from s) 重复生成字符串的函数 Repeat(s,n) 空格函数和替换函数 Space(n)空格函数 比较字符串大小函数 STRCMP('abc','def') 获取子字符串 SUBSTRING('password',4,2)
6.5 条件判断函数
IF(expr,v1,v2)函数 IFNULL(v1,v2)函数 CASE函数
IF(expr,v1,v2)函数
IF(expr, v1, v2)如果表达式expr是 TRUE(expr <> 0 and expr <> NULL),则 IF()的返回值为v1;否则返回值则为v2。IF() 的返回值为数字值或字符串值,具体情况视 其所在语境而定。
获得两个时间间隔天数
select sname 姓名,DATEDIFF(NOW(),birthday) 来到这个世界的天 数 from `TStudent`
6.4日期和时间函数5
将日期和时间格式化的函数
DATE_FORMAT(date,format)
SELECT DATE_FORMAT(NOW(),'%Y 年%c 月%d 日%h 点%i 分钟%s 秒')
第6章 MySQL函数
微软最有价值专家(MVP) IT集成课程视频教学下载地址
本章内容
6.1 MySQL函数简介 6.2 数学函数 6.3 字符串函数 6.4 日期和时间函数 6.5 条件判断函数 6.6 系统信息函数 6.7 加密函数 6.8 其他函数 6.9综合案例——MySQL函数的使用
获取随机数的函数RAND()和 RAND(x)
获取随机数的函数RAND()和RAND(x)
四舍五入函数ROUND(x)、 ROUND(x,y)和TRUNCATE(x,y)
四舍五入函数ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y)
符号函数SIGN(x)
SIGN(x)返回参数的符号,x的值为负、零 或正时返回结果依次为-1、0或1。
6.3字符串函数
计算机字符串字符数的函数和字符串 长度的函数 Length() char_length()
合并字符串 Concat(s1,s2) 结果 s1s2 替换字符串的函数 Insert(s1,x,len,s2)使用s2替换
s1字符串
大小写字符转换函数 lower() upper() 获取指定长度的字符串函数 Left(指定日期是一年的第几 周
WEEK('2012-08-04')
获取天数的函数 获取指定日期是一年中的 第几天
DAYOFYEAR('2012-08-04')
6.4 日期和时间函数3
获取年份、季度、小时、分钟和秒钟的函数
YEAR('11-02-04') 00-69转换成2000-2069,70-99转换成 1970-1999 QUARTER('2012-02-21') HOUR(NOW()) MINUTE(NOW()) SECOND(NOW())
6.2 MySQL函数简介
各类函数从功能方面主要分为以下几类: 数学函数 字符串函数 日期和时间函数 条件判断函数 系统信息函数和加密函数 其他函数
6.2数学函数
绝对值函数ABS(x)和返回圆周率的函 数PI() 平方根函数SQRT(x)和求余函数MOD(x,y) 获取整数的函数CEIL(x)、CEILING(x)和 FLOOR(x) 获取随机数的函数RAND()和RAND(x) 四舍五入函数ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y) 符号函数SIGN(x)
UTC_DATE() UTD日期,CURDATE() 当前日期,UTC_TIME() UTC时间 ,CURTIME() 当前时间
获取月份的函数
MONTH('2012-02-12'),MONTHNAME('2012-02-12')
6.4 日期和时间函数2
获取星期的函数
DAYNAME('2012-02-23')
str)
匹配子串开始位置的函数 Locate(str1,str)、position(str1 in
6.4日期和时间函数1
取当前日期和时间
curdate(),CURRENT_DATE()
获取当前日期和时间的函数 获取UTC(世界标准时间)
CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE()
获取日期 指定值的函数
EXTRACT(YEAR from NOW()),EXTRACT(YEAR_MONTH from NOW()),EXTRACT(DAY_MINUTE from NOW())
6.4日期和时间函数4
计算日期和时间的函数
select DATE_ADD('2011-12-31 23:59:59',interval 1 second) as 加 1秒, DATE_ADD('2011-12-2 21:05:23',INTERVAL 2 day) as 加2天, DATE_ADD('2011-12-2 21:05:23',interval -2 DAY) as 减2天, DATE_ADD('2011-12-2 21:05:23',interval -2 YEAR) as 2年前, DATE_ADD('2011-12-2 21:05:23',interval 2 MONTH) as 2月后
绝对值函数ABS(x)和返回圆周率的函 数PI()
绝对值函数:ABS(x) 圆周率函数:PI()
平方根函数SQRT(x)和求余函数 MOD(x,y)
平方根函数:SQRT(x) 求余函数:MOD(x,y)
获取整数的函数CEIL(x)、 CEILING(x)和FLOOR(x)
获取整数的函数CEIL(x)、CEILING(x)和 FLOOR(x)