mysql常用函数实验报告_mysql常用函数总结(完整实用)

文章目录

字符串函数

1. length 获取参数值的字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)

2. concat 拼接字符串

3. UPPER、LOWER大小写转换

4. substr、substring字符串截取

5. instr 返回子串第一次出现的索引,如果找不到返回0

6. trim 删除指定首位字符或去空格

7. lpad 用指定的字符实现左填充指定长度

8. rpad 用指定的字符实现右填充指定长度

9. replace 替换指定字符串

数字函数

1. round 四舍五入

2. CEIL 向上取整

3. FLOOR 向下取整

4. TRUNCATE 保留几位小数点

5. mod 或 % 取余

日期函数

1. NOW() 返回当前系统日期+时间

2. curdate 返回当前系统日期,不包含时间

3. curtime 返回当前时间,不包含日期

4. 获取年、月、日

5. str_to_date 字符串转日期

6. date_format 日期转字符串

7. DATEDIFF 计算两个时间相差多少天

8. TIMESTAMPDIFF 就算两个时间相差多少天或小时月等

流程控制函数

1. if

2. case when

其他函数

1. 查看数据库版本

2. 查看当前使用数据库名

3. 查看某个表的表结构

4. 查看表的索引

5. 查看系统当前隔离级别

表结构

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (

`s_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`s_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',

`s_birth` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',

`s_sex` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',

PRIMARY KEY (`s_id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;

表数据

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('01', '赵雷', '1990-01-01', '男');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('02', '钱电', '1990-12-21', '男');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('03', '孙风', '1990-05-20', '男');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('04', '李云', '1990-08-06', '男');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('05', '周梅', '1991-12-01', '女');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('06', '吴兰', '1992-03-01', '女');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('07', '郑竹', '1989-07-01', '女');

INSERT INTO `student`(`s_id`, `s_name`, `s_birth`, `s_sex`) VALUES ('08', '王菊', '1990-01-20', '女');

字符串函数

1. length 获取参数值的字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)

select length(s_name) as 字节个数 from student t where s_id='01';

-- 返回键结果 6

a59023511721e3720691e218c11f2e2a.png

2. concat 拼接字符串

select concat(s_name,'_',s_birth) from student t where s_id='01';

bc34a5a18cc34d9d2c1c190f8a9a97b9.png

3. UPPER、LOWER大小写转换

SELECT UPPER('zou') 大写转换;

-- 返回结果 ZOU

SELECT LOWER('Zou') 小写转换;

-- 返回结果 zou

4. substr、substring字符串截取

-- 一个参数,索引从1开始,截取索引到索引后所有字符串

select substr(s_birth,2) from student t where s_id='01';

-- 两个参数 1.指定所谓,2截取长度

select substr(s_birth,2,3) from student t where s_id='01';

3b00fdbce937d50f2a526056f78283b7.png

1bdcaa90153778ab35ea9a7a31af639c.png

5. instr 返回子串第一次出现的索引,如果找不到返回0

select instr(s_name,'雷') from student where s_id='01';

-- 返回结果 2

select instr(s_name,'魏') 第一次出现的索引 from student where s_id='01';

-- 返回结果 0

6. trim 删除指定首位字符或去空格

--去除首尾空格

SELECT TRIM(' haha ');

-- 返回结果: haha

SELECT TRIM(LEADING 'z' FROM 'zzwhlovezz'); --删除指定的首字符 z

-- 返回结果 whlovezz

SELECT TRIM(BOTH 'z' FROM 'zzwhlovezz'); --删除指定的首尾字符 z

-- 返回结果 whlove

SELECT TRIM(TRAILING 'z' FROM 'zzwhlovezz'); --删除指定的尾字符 z

-- 返回结果 zzwhlove

7. lpad 用指定的字符实现左填充指定长度

SELECT LPAD(s_name,5,'*') from student t where s_id='01';

-- 返回结果 ***赵雷

8. rpad 用指定的字符实现右填充指定长度

SELECT RPAD(s_name,5,'*') from student t where s_id='01';

-- 返回结果 赵雷***

9. replace 替换指定字符串

select REPLACE(s_name,'赵雷','阿离') from student t where s_id='01';

--返回结果 阿离

数字函数

1. round 四舍五入

SELECT ROUND(-1.67);

-- 返回结果 -2

SELECT ROUND(1.675,2);

-- 返回结果 1.58

2. CEIL 向上取整

SELECT CEIL(-1.23);

-- 返回结果 -1

SELECT CEIL(1.23);

-- 返回结果 2

3. FLOOR 向下取整

SELECT FLOOR (-1.23);

-- 返回结果 -2

SELECT FLOOR (1.23);

-- 返回结果 1

4. TRUNCATE 保留几位小数点

SELECT TRUNCATE (1.23,1);

-- 返回结果 1.2

5. mod 或 % 取余

SELECT MOD(10,3);

SELECT 10%3;

-- 返回结果 1

日期函数

1. NOW() 返回当前系统日期+时间

SELECT NOW();

-- 返回结果 2019-09-28 22:48:59

2. curdate 返回当前系统日期,不包含时间

SELECT CURDATE();

-- 返回结果 2019-09-28

3. curtime 返回当前时间,不包含日期

SELECT CURTIME();

-- 返回结果 22:50:11

4. 获取年、月、日

SELECT YEAR(NOW()) 年;

-- -- 返回结果 2019

SELECT MONTH(NOW()) 月;

-- 返回结果 9

SELECT MONTHNAME(NOW()) 月;

-- 返回结果 September

SELECT DAY(NOW()) 日;

-- 返回结果 28

5. str_to_date 字符串转日期

SELECT STR_TO_DATE('2019-9-29','%Y-%m-%d') AS 日期;

-- 返回结果 2019-09-29

6. date_format 日期转字符串

SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS 字符串;

-- SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS 字符串;

-- 返回结果 2019年09月28日

7. DATEDIFF 计算两个时间相差多少天

SELECT DATEDIFF('2020-01-25','2019-09-28');

-- 返回结果 119

8. TIMESTAMPDIFF 就算两个时间相差多少天或小时月等

--

-- 第一个参数可以是FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR

SELECT TIMESTAMPDIFF(DAY,'2019-09-28','2020-01-25');

-- 返回结果 119

流程控制函数

1. if

格式 if(条件,满足显示,不满足显示)

select if(s_sex='男','男人好难','女人也难') 谁难 from student

3f906cb2747c25e26653fbb317ffe24b.png

2. case when

select s_name, case s_sex

when '男' then '男人好难'

when '女' then '女人好难'

else '不男不女肯定不难'

end as 谁难

from student

-- 两种写法大同小异

select s_name,case

when s_sex='男' then '男人好难'

when s_sex='女' then '女人好难'

else '不男不女肯定不难'

end as 谁难

from student

3d60e60f113710db9a9540e3c0342339.png

其他函数

1. 查看数据库版本

SELECT VERSION();

2. 查看当前使用数据库名

SELECT DATABASE();

3. 查看某个表的表结构

desc 表名;

4. 查看表的索引

show index from 表名

5. 查看系统当前隔离级别

select @@global.transaction_isolation;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值