文章目录

目录

文章目录

前言

4.3、MySQL函数

数学函数

字符串函数

日期和时间函数

条件判断函数

系统信息函数

加密函数

其他函数

4.4、MySQL数据操作

数据管理

数据添加

插入单行或多行记录

利用子查询插入数据

简单数据查询

数据更新

数据删除

数据删除(TRUNCATE)


前言

本文主要讲了关于数据库中的MySQL函数以及MySQL数据操作,其实一些操作在前边也有写过,大家可以去专栏找对应的文章。另外,走过路过的小伙伴们点个赞和关注再走吧,欢迎评论区交流,大家一起努力一起成长吧!

笔芯


4.3、MySQL函数

MySQL函数按功能不同主要分为以下几类:

数学函数

数学函数主要用于处理数字,包括整型、浮点数等。

数学函数包括绝对值函数、正弦函数、余弦函数、获取随机数的函数等。如下:

abs:返回表达式的绝对值

acos:反余弦函数,返回以弧度表示的角度值

asin:反正弦函数,返回以弧度表示的角度值

atan:反正切函数,返回以弧度表示的角度值

ceil:返回大于或等于指定数值表达式的最小整数

cos:返回余弦值

degree:弧度值转换为角度值

exp:返回给定表达式为指数的e值

floor:返回小于或等于指定数值表达式的最大整数

greatest:获得一组数中的最大值

Least:获得一组数中的最小值

log:返回给定表达式的自然对数

log10:返回给定表达式的以10 为底的对数

PI:常量,圆周率

pow:返回给定表达式的指定次方的值

radians:角度值转换为弧度值

rand:返回0~1之间的随机noat数

round:返回指定小数的位数的表达式的值

sign:返回某个数的符号

sin:返回正弦值

sqrt:返回给定表达式的平方根

tan:返回正切值

例:

SELECT mod(31,8), floor(3.67), ceil(4.71), log(2.7);

例:用随机数rand()和四舍五入round()输出10~50和15~55之间的任意整数。随机函数rand()返回的随机数大于等于0小于1。 round(x,y)返回x保留到小数点后y位的值,在截取时进行四舍五入处理。

SELECT RAND(),ROUND(40*RAND(),0), 10+round(40*rand(),0),15+round(40*rand(),0);

字符串函数

主要用于处理字符串数据和表达式。MySQL中的字符串函数包括计算字符串长度函数、合并函数、替换函数、比较函数和查找字符串位置函数等。如下:

char_length:返回字符串中字符的个数。

concat:返回连接参数产生的字符串

left:返回从字符串左边开始指定个数的字符

length:返回给定字符串字节长度

lower:将大写字符数据转换为小写字符数据后返回字符表达式

trim:删除起始和结束空格后返回字符表达式

replace:用第3个表达式替换第一个字符串表达式中出现的所有第2个给定字符串表达式

repeat:以指定的次数重复字符表达式

reverse:返回字符表达式的反转

right:返回从字符串右边开始指定个数的字符

ltrim/rtrim:删除起始/尾随空格后返回一个字符串

space:返回由重复的空格组成的字符串

substring:求子串函数

upper:返回将小写字符数据转换为大写的字符表达式

例:用concat()函数连接字符串,lower()函数转变为小写字母。concat()函数返回来自于参数连接的字符串,如果任一参数是null,则返回null。可以有超过2个的参数。数字参数会被变换为等价的字符串形式。

SELECT lower(concat("MY","SQL","8.0")),concat("ABC",null,"DEF"),

concat("ABC","DEF");

例:用trim()函数可删除字符串两侧的空格。再用concat()函数连接起来。

SELECT '(  qwe  )', concat('(',trim(' qwe '),')');

例:用substring()函数返回指定字符串(如下为第二位到第四位,如果只有一个数字,则表示从那一位到最后),再用reverse()逆序输出

SELECT substring('ABCDEF',2,4), reverse(substring('ABCDEF',2));

日期和时间函数

主要用于处理表中的日期和时间数据。日期和时间函数包括获取当前日期的函数、获取当前时间的函数、计算日期的函数和计算时间的函数等。

curdate:获取当前系统的日期

curtime:获取当前系统的时间

date_add:可以对日期和时间进行加法运算

date_sub:可以对日期和时间进行减法运算

datediff:计算两个日期相隔的天数

date_format:用来格式化日期值

day:获取指定日期的日期整数

dayname:以英文名方式显示,返回指定日期是星期几,如Tuesday等

dayofmonth:返回指定日期在一个月中的序数

dayofweek:返回指定日期在一个星期中的序数

dayofyear:返回指定日期在一年中的序数

hour:返回指定时间的小时数

minute:返回指定时间的分钟数

month:获取指定日期的月份整数

now/sysdayte:返回当前日期和时间

quarter:获取指定日期的季度整数

second:返回指定时间的秒钟数

time_format:用来格式化时间值

例:利用curdate()返回当前日期,curtime()返回当前时间

SELECT curdate(),curtime();

例:返回的指定日期是在一年中第几天、一个月中的第几天、一星期中的第几天(一个星期中第一天是周天来算)。

SELECT dayofyear(20200130),dayofmonth('2022-09-18'),dayofweek(now());

date_add()和date_sub()函数可以分别用来对日期和时间进行增加和减少日期值。

格式:date_add | date_sub(date, interval int keyword);

其中: date表示日期和时间,interval关键字表示一个时间间隔。以下为关键字

以及对应的间隔值的格式

day:日期

minute:分钟

day_hour:日期∶小时

minute_second:分钟∶秒

day_minute:日期∶小时∶分钟

month:月

day_second:日期∶小时∶分钟∶秒

second:秒

hour:小时

year:年

hour_minute:小时∶分钟

year_month:年-月

hour_ second:小时∶分钟∶秒

例:计算指定时间的15分钟前是什么时间(在指定时间上减15分钟)。计算指定时间的15分钟后是什么时间(在指定时间上加15分钟)

SELECT date_sub('2020-09-30 10:10:10' , interval 15 minute),DATE_ADD('2020-09-30 10:10:10',INTERVAL 15 minute);

例:距离9月18日还有多少天。用datediff计算两个日期相隔的天数(嘿嘿嘿,还有168天过生日)

SELECT datediff('2020-12-31',now());

date_format()和time_format()函数可以用来格式化日期和时间值。

格式:date_format/ time_format(date | time, fmt)

date和time是需要格式化的日期和时间值;fmt是日期和时间值格式化的形式。

关键字和间隔值的格式如下:

%oa:缩写的星期名(Sun,Mon...>

%p:AM或PM

%b:缩写的月份名(Jan,Feb...)

%r:时间,12小时的格式

%d:月份中的天数

%S:秒(00,01)

%H %h:小时,分别为24小时和12小时格式

%T:时间,24小时的格式

%i:分钟(00,01..>

%ow :一周中的天数(0,1)

%j:一年中的天数((001,002..)

%w:长型星期的名字(Sunday,Monday...)

%m:月份,2位(00,01...)

%Y:年份,4位

例:按照指定格式码输出日期和输出时间。

SELECT date_format(now(), '%W,%d,%m, %Y ,%T,%p'),

time_format('16:20:10' ,' %H %i %S');

条件判断函数

条件判断函数也称为控制流程函数,根据满足的不同条件,执行相应的流程。

if(expr,v1,v2):如果表达式expr是true(expr<>0 and expr<>NULL),则返回v1,否则返回v2。

ifnull(v1,v2):假如v1不为NULL,则返回v1,否则返回v2。

case expr when v1 then r1 ...[else rn] end

如果expr值等于某个vn,则返回对应then后面的结果,如果所有值都不相等,则返回else后面的rn。

例:使用if()函数进行条件判断

SELECT if(1>2,1,2),if(1>2,'yes' ,'no');

例:用ifnull()函数进行条件判断

SELECT ifnull(1,2),ifnull(null,10),ifnull(1/0,'error');

例:用case when语句执行分支操作

SELECT case 2 when 1 then 'one' when 2 then 'two' else 'more' end;

系统信息函数

系统信息函数用来查询MySQL数据库的系统信息。

函数和对应的功能如下:

Database():返回当前数据库名

benchmark(n,expr):将表达式expr重复运行n次

charset(str):返回字符串str的字符集

connection_id():返回当前客户连接服务器的次数

found_rows():将最后一个MySQL>select查询(没有以limit语句进行限制)返回的记录行数返回

get_lock(str,dur):获得一个由字符串str命名的并且有dur秒延时的锁定

is_free_lock(str):检查以str命名的锁定是否释放

last_insert_id():返回由系统自动产生的最后一个autoincrement id的值

master pos_wait(log,pos,dur):锁定主服务器dur秒直到从服务器与主服务器的日志log指定的位置pos同步

release_lock(str):释放由字符串str命名的锁定

user()或system_user():返回当前登录用户名

version():返回MySQL服务器的版本

例:返回MySQL服务器的版本、当前数据库名和当前用户名信息,并查看当前用户连接MySQL服务器的次数。

SELECT version(), database(), user(), connection_id();

加密函数

加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被人获取,从而保证数据库安全。函数如下:

MD5(str):为字符串算出一个md5 12s比特校验和。该值以32位十六进制数字的二进制字符串形式返回。

SHA(str):从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时返回NULL。比md5更加安全。

SHA(str,hash_length):使用hash_length作为长度,加密str。 hash_length支持的值为224、256、384、512和0。其中0等同于256

例:用password(str)函数加密

SELECT md5('ice'), sha('ice'), sha2('ice',256);

其他函数

格式化函数:FORMAT(x,n)把数值x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回。若n为0,则返回结果函数不含小数部分。

例:SELECT format(12345.123456,4), format(12345.1,4), format(12345.1,0);

改变字符集的函数:CONVERT(..USING...)用于在不同的字符集之间转换数据

例:将给定字符串字符集转为utf8

SELECT charset('asd'),charset(convert('asd' using utf8));

4.4、MySQL数据操作

数据管理

使用数据操纵语言(DML操作包括对表数据的添加、更新、删除操作。)和数据查询语言(DQL操作包括对表数据的查询操作)可以对表中数据进行管理。

数据添加

使用INSERT INTO语句添加数据

插入单行或多行记录

INSERT INTO 表名 [(列名1,列名2...)] VALUES(列名1的数据1,列名2的数据1...),(列名1的数据2,列名2的数据2)..;

其中:

如果INTO子句中没有指明任何列名,则VALUES子句中列值的个数、顺序、类型必须与表中列的个数、顺序、类型相匹配

如果在INTO子句中指明了列名,则VALUES子句中提供的列值的个数、顺序、类型必须与指定列的个数、顺序、类型按位置对应

【示例】向部门表插入一行记录

INSERT INTO department(deptno,dname,loc)VALUES(50,'name50','loc50');

例:向员工表插入多条记录

INSERT INTO employee VALUES

(1001,'zs ','PROGRAMMER',1002,'2015-10-20',1000,null,50),

(1002,'ls','MANAGER',null,'2010-01-01',3000,500,50),

(1003, 'ww','PROGRAMMER',1002,'2012-12-30',2000,200,50);

例:向员工表的指定字段插入数据

INSERT INTO employee(empno,ename,job,hiredate,sal,deptno)

VALUES(1004,'test ,'CLERK' ,2016-10-20',2000,50);

利用子查询插入数据

INSERT INTO 表名1 SELECT *|[列名1...] FROM 表名2;

向表中插入其他表的数据,这也是成批插入数据的一种方式。但注意要求要有相同的结构。

例:将DEPT表的记录插入DEPARTMENT表中(要注意自己数据库中是否有这两个表,以及DEPT表中有没有数据哦。)

INSERT INTO department SELECT*FROM dept;

例:将EMP表的记录插入EMPLOYEE表中

INSERT INTO user(id,name,age,email)

SELECT id,name,age,email FROM user1;

简单数据查询

SELECT * | 列名1 ,列名2...]FROM 表名 WHERE condition;其中:

“*表示查询该表中的所有列

WHERE用于指定查询条件。如果不省略,则在执行SELECT语句时,系统会

首先根据WHERE子句的条件表达式condition从FROM子句指定的基本表中查找满足条件的记录,再按SELECT子句中的目标列或目标表达式形成结果表。

例:查询员工表中所有列的记录

SELECT * FROM employee;

例:查询符合条件的员工的部分列的信息

SELECT empno,ename,job,sal,comm

FROM employee

WHERE comm IS NULL;

数据更新

UPDATE 表名

SET col_name1=expr1 [,col_name2=expr2 ...][WHERE子句]

说明:

set子句:根据where子句中指定的条件,对符合条件的数据行进行修改。若语句中不设定where子句,则更新所有行。

expr1、expr2……可以是常量、变量或表达式。可以同时修改所在数据行的多个列值,中间用逗号隔开。

例:更新表中所有数据

UPDATE employee SET deptno=50;

将员工表中有奖金的员工的奖金增加200元

UPDATE employee SET comm=comm+200 WHERE comm IS NOT NULL;

数据删除

DELETE FROM 表名 [WHERE condition];

其中WHERE指定被删除记录符合的条件,若省略则删除所有记录。

例:

删除所有员工数据

DELETE FROM employee;

删除1004号员工数据

DELETE FROM employee WHERE empno=1004;

注意:删除的数据与其他表有外键联系时,会提示提示删除失败。应该先删除外键约束子表中所有记录,然后再删除主表相应记录

数据删除(TRUNCATE)

清空数据表

TRUNCATE TABLE 表名;

注意:不仅清空表的全部内容,同时自增长ID也会从0开始。

主流数据库之MySQL函数和MySQL数据操作基础知识及示例相关推荐

  1. datagrid出现相同两组数据_stata 数据操作基础知识:以一篇论文数据操作为例

    stata 数据操作基础知识:以一篇论文数据操作为例 上节回顾及问题 统计学学习大图景 数据描述 分位数回归 存在的问题: 1.学了就要多使用,哪怕生搬硬套也要多用 2.时间序列的方法,大家可以操作, ...

  2. 【MySQL】对JSON数据操作(全网最全)

    [MySQL]对JSON数据操作(全网最全) 总所周知,mysql5.7以上提供了一种新的字段格式-json,大概是mysql想把非关系型和关系型数据库一口通吃,所以推出了这种非常好用的格式,这样,我 ...

  3. 大数据入门培训之大数据开发基础知识学习

    在目前相信大多数IT开发人员对于人工智能+大数据并不陌生,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求.因此对大数据知识也有必要进行一些学习理解,带大家来学习了解一下 ...

  4. 微信小程序开发数据缓存基础知识辨析以及运用实例

    微信小程序开发数据缓存基础知识辨析以及运用实例 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的 ...

  5. 【阿里云天池大赛赛题解析】 刷书笔记 Lesson 1 数据探索基础知识

    文章目录 数据探索基础知识 1. 双变量分析 1.1 计算相关性 1.2 卡方检验 1.3 小提琴图 2. 缺失值 2.1 处理方法 3. 异常值 3.1 检测方法 3.1.1 箱线图检测法 3.1. ...

  6. 4. 数据统计分析基础知识

    数据统计分析基础知识 数据统计分析基础知识 什么是数据分析 数据分析六步曲 明确分析目的和内容 数据收集 数据处理 数据分析 数据展现 报告撰写 Reference 什么是数据分析 专业 有针对性的收 ...

  7. sqlite mysql_两款主流数据库对比,SQLite和MySQL哪款是你的菜?

    数据库是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式 ...

  8. phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...

    Mysql入门基础 数据库创建篇 1.创建数据表---基础(高手跳过) 正统方法:create [TEMPORARY] table 表名 [if not exists] (创建的列项定义) [表的选项 ...

  9. MySQL数据库(17):高级数据操作-删除数据

    高级数据操作-删除数据 1.删除数据应该使用where进行条件控制 delete from 表名 where 条件; 2.删除数据可以使用limit来限制删除数量 delete from 表名 whe ...

  10. mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为"参数",输出值称 ...

最新文章

  1. Hibernate里自定义UserType时取不到值的问题
  2. 程序员法律考试笔记(2)-依法治国
  3. 抑郁症的前期体现有哪些
  4. windows 的 wsl 命令
  5. Response.Redirect 产生的“正在中止线程”错误
  6. Linux系统管理(5)——使用yum快速搭建LAMP环境【方便快捷版】
  7. 从此,我就踏入IT行业拉
  8. C#中对 API函数的调用
  9. UML设计中的箭头详解
  10. 在MATLAB中快速画圆(给出圆心坐标和半径就能直接画的那种)
  11. MATLAB读取nc文件
  12. 牛客网在线编程Javascript输入输出
  13. linux yum apr,CentOS安装、配置APR和tomcat
  14. Windows 2016 服务器安全配置和加固
  15. Bat 脚本学习 (基础篇)
  16. 无线点菜服务器英文怎么拼,无线点菜系统(客户端和服务器端交互)
  17. 课程表的实现(基于强智科技教务系统)
  18. Java程序员,面试必读
  19. 华为手机上html怎么打开,华为手机root权限怎么开启?详细的步骤以及图文教程...
  20. 新电脑安装win10正版系统(家庭、专业等)

热门文章

  1. 水泥电阻,常用电阻 阻值表
  2. Zigbee和wifi信道设置避免同频干扰
  3. 基于JavaEE的公共自行车租赁管理系统_JSP网站设计_SqlServer数据库设计
  4. 地理信息数据 中国市级行政区划 SHP
  5. 阿里巴巴JAVA开发手册最新版pdf
  6. C语言三剑客:C陷阱与缺陷、C和指针、C专家编程
  7. 教你给视频画面打马赛克
  8. hlws如何修改服务器密码,线切割hl控制系统输入法操作说明
  9. Xshell入门使用教程
  10. 下载vc_redist运行库