目录

数据库造神计划第九天-增删改查CRUD5

数据库造神计划第九天—增删改查(CRUD)(5)

https://i-blog.csdnimg.cn/direct/7d591b544f874d8a8495f2f641c7d7a5.jpeg

🔥个人主页:

🎬作者简介:Java研发方向学习者

📖个人专栏: 、《 ****

⭐️人生格言:没有人生来就会编程,但我生来倔强!!!


https://i-blog.csdnimg.cn/direct/7bc50643513c4841ab37a6a5e97eb4b5.gif


 续接上一话:

一、内置函数

1、日期函数

https://i-blog.csdnimg.cn/direct/afac3ced1d5a4c7d8b33a9b79b558e7d.png

1.1示例

(1)获取当前日期

select CURDATE();

https://i-blog.csdnimg.cn/direct/dfceeb3bdfc0407bb73281cf0f7d8d5e.png

(2)获取当前时间

select CURTIME();

https://i-blog.csdnimg.cn/direct/5527996c77214431837e46c72ddb979c.png

(3)获取当前日期和时间

select NOW();

https://i-blog.csdnimg.cn/direct/4af3f4b23b0643c69868a1184bfd2a02.png

(4)提取指定datatime的日期部分

select date('2025-09-13 21:57:19');

https://i-blog.csdnimg.cn/direct/008f01611cfb42c6813b4fd683561774.png

(5)在给定日期的基础上加31天

select ADDDATE('2025-09-13', INTERVAL 31 DAY);

https://i-blog.csdnimg.cn/direct/8004fc874f2a428bbd8bd599d3a4bfdc.png

(6)在给定日期的基础上减去1月

 select SUBDATE('2025-09-13', INTERVAL 1 MONTH);

https://i-blog.csdnimg.cn/direct/71fb59ef37dd4317b82f639d4c78be07.png

(7)计算两个日期之间相差多少天

# 在计算时只使⽤⽇期部分
SELECT DATEDIFF('2024-12-31 23:59:59','2024-12-30');

https://i-blog.csdnimg.cn/direct/5271d74120b5468d85f85203ba09e6da.png

# 表达式1表⽰的⽇期早于表达式2表⽰的⽇期时返回负数
SELECT DATEDIFF('2024-11-30 23:59:59','2024-12-31');

https://i-blog.csdnimg.cn/direct/edb6daa329f549ecb5c65eea930619d8.png

2、字符串处理函数

https://i-blog.csdnimg.cn/direct/098c7dbe61d344bba46c78030c1a1a34.png

2.1示例 (1)显示所有参加考试的学生姓名、姓名字符数和字节长度

select name, char_length(name), length(name) from exam;

https://i-blog.csdnimg.cn/direct/0e92240fc71c4c6991478ac8eb5cb056.png

(2)显示学生的考试成绩,格式为"XXX的语文成绩:XXX分,数学成绩:XXX分,英语成绩:XXX分"

select concat(name, '的语⽂成绩:', chinese, '分,数学成绩:', math, '分,英语成绩:', english, '分') as 分数 from exam;

https://i-blog.csdnimg.cn/direct/1860686deca44f46844ac927603d7e74.png

(3)拼接后的字符串用逗号隔开

select CONCAT_WS(',',name,chinese,math,english) 分数 from exam;

https://i-blog.csdnimg.cn/direct/2bddcfac85fb4c998cafd8741d8f7d1b.png

(4)将给定字符串转换成小写

select lcase('ABC');

https://i-blog.csdnimg.cn/direct/a185926d64fa41afb150df0e2a5bf2c2.png

(5)将给定字符串转换成大写

select ucase('abc');

https://i-blog.csdnimg.cn/direct/b5d3c202432e4dba8fe4d765029a6293.png

(6)转换为十六进制

# 字符串
select HEX('Hello MySQL');

https://i-blog.csdnimg.cn/direct/ba58e52426194a6c94ad3ac28022c43d.png

# 数字
select HEX(15);

https://i-blog.csdnimg.cn/direct/fdda901505d4487ab37ee15ee112a94e.png

(7)子字符串第⼀次出现的索引

 select instr('Hello MySQL', 'sql');

https://i-blog.csdnimg.cn/direct/b0ed57a85df14eb78a6598ac0f66e49d.png

(8)指定位置插入子字符串

# 在指定位置插⼊
select insert('Hello, Database', 8, 0, 'MySQL ');

https://i-blog.csdnimg.cn/direct/39e8c41c8c7846c7a8d59edea4e8065b.png

# 覆盖20位,如果从写⼊点往后不⾜20位相当于删除后⾯所有字符
select insert('Hello, Database', 8, 20, 'MySQL');

https://i-blog.csdnimg.cn/direct/1a8f8684afef4d598b25ba30519cde18.png

(9)返回指定的子字符串

# 从'Hello, MySQL'的第⼋个字符开始截取
select SUBSTR('Hello, MySQL', 8);

https://i-blog.csdnimg.cn/direct/0b85b0ab147a4012b6fd5c84b43cc86d.png

# 从'Hello, MySQL'的第⼋个字符开始截取1个字符
select SUBSTR('Hello, MySQL' FROM 8 FOR 1);
# 从'Hello, MySQL'的第⼋个字符开始截取10个字符,不⾜10个读到整个字符串结尾
select SUBSTR('Hello, MySQL' FROM 8 FOR 10);

https://i-blog.csdnimg.cn/direct/bb9d85d07b274fd6abc8c3f16f1f0fea.png

(10)替换字符串

# 把Database替换成MySQL, 区分⼤⼩写
select REPLACE('Hello Database', 'Database', 'MySQL');

https://i-blog.csdnimg.cn/direct/2f723a779c464af9ad45329a2f7e2431.png

(11)比较两个字符串

 # 观察返回的结果
select STRCMP('text', 'text1');

https://i-blog.csdnimg.cn/direct/8089e2d9d8db4a3585e066356e884313.png

select STRCMP('text', 'text');

https://i-blog.csdnimg.cn/direct/fc661af2f23f413792edc9cdfdd8ba93.png

select STRCMP('text1', 'text');

https://i-blog.csdnimg.cn/direct/be887faad69c46aab074b348931b239e.png

(12)返回字符串str中最左/最右边的len个字符

# 最左边的5个字符
select LEFT('Hello MySQL', 5);

https://i-blog.csdnimg.cn/direct/aa5075dd4df3418a86da8f08a1ef24a3.png

 # 最右边的5个字符
 select RIGHT('Hello MySQL', 5);

https://i-blog.csdnimg.cn/direct/9a08e120854046559c9d622e0807fd87.png

(13)删除给定字符串的前导、末尾、前导和末尾的空格

select '   ABC', LTRIM('   ABC'), 'ABC   ', RTRIM('ABC   '), '   ABC   ', TRIM('   ABC   ');

https://i-blog.csdnimg.cn/direct/ad5534e3decf43a59ecc665c9c059ea1.png

(14)删除给定符串的前导、末尾或前导和末尾的指定字符串

# 删除前后指定的字符串,BOTH可以省略
select TRIM(BOTH 'xxx' FROM 'xxxABCxxx');

https://i-blog.csdnimg.cn/direct/6fe08f84564e4ccbbe2917ccb5cbcb60.png

# 删除前导的指定字符串
select TRIM(LEADING 'xxx' FROM 'xxxABCxxx');

https://i-blog.csdnimg.cn/direct/0305035e805949988d55a32114fcb21f.png

# 删除末尾的指定字符串
select TRIM(TRAILING 'xxx' FROM 'xxxABCxxx');

https://i-blog.csdnimg.cn/direct/e1f16092b81245b3a85d596e951a6835.png

3、数学函数

https://i-blog.csdnimg.cn/direct/2ebee9063d364f74a70dc549c3b12ef1.png

3.1示例

(1)返回-3.14的绝对值

select ABS(-3.14);

https://i-blog.csdnimg.cn/direct/5498ab85ab3b4809a4cc0fe60c9e1bb0.png

(2)返回不小于20.36的最小整数值

select CEIL(20.36);

https://i-blog.csdnimg.cn/direct/524cafb20a504f7793ddd8b9a6a686e2.png

(3)返回不大于11.32的最小整数值

select FLOOR(11.32);

https://i-blog.csdnimg.cn/direct/c8a7da4ae61f4d2dbb952eb6438b1e58.png

(4)10进制转为16进制

select CONV(15, 10, 16);

https://i-blog.csdnimg.cn/direct/ed40d6f30cde42dea8d1a95baa5a759c.png

(5)格式化1234567.654321

select FORMAT(1234567.654321, 5);

https://i-blog.csdnimg.cn/direct/8ca595551d5d41f8a5902302583d4d13.png

(6)返回⼀个随机浮点值

select RAND();

https://i-blog.csdnimg.cn/direct/444cfba171b6415d9d61d4bd4cf9606d.png

(7)舍弃到小数点后6位

select ROUND(RAND(), 6);

https://i-blog.csdnimg.cn/direct/08de66e862e146ef8783825bc644ef22.png

# ⽣成⼀个6位数的随机数
select ROUND(RAND(), 6) * 1000000;

https://i-blog.csdnimg.cn/direct/99fe9c581c1f463486b942ad0e7817e8.png

(8)字符串的循环冗余校验

select CRC32('Hello MySQL');

https://i-blog.csdnimg.cn/direct/62f427f9f5ec41c7b09fecb7c510f883.png

4、其他常用函数

https://i-blog.csdnimg.cn/direct/00e8c6c30cc542faa4d75c4a93db2628.png

4.1示例

(1)显示当前数据库版本

select version();

https://i-blog.csdnimg.cn/direct/30399c8d2ab246d6a546a5d9918255e5.png

(2)显示当前正在使用的数据库

# 没有选择数据库时
select database();

https://i-blog.csdnimg.cn/direct/1cc4c26383344ca585e51a0f5f78c93e.png

# 选择数据库
use java01
# 选择数据库后
select database();

https://i-blog.csdnimg.cn/direct/6c2d2d9c751840838cb0a244be945cb5.png

(3)显示当前用户

select user();

https://i-blog.csdnimg.cn/direct/5819402bd77443d8ba0e8b126600d134.png

(4)对⼀个字符串进行md5加密

# 对hello world进⾏md5加密
select md5('hello world');

https://i-blog.csdnimg.cn/direct/59f0937a69b74db4a3e381c7be5cfcef.png

(5)ifnull函数

# 第⼀个参数不为NULL,返回第⼀个参数的值
select ifnull('database', 'MySQL');

https://i-blog.csdnimg.cn/direct/63bc39a309204dad8658147c29fb68b4.png

# 第⼀个参数为NULL, 返回第⼆个参数的值
select ifnull(NULL, 'MySQL');

https://i-blog.csdnimg.cn/direct/486f0cbb3b8a4a8caec11992b5fbc8b7.png

二、CRUD总结

1、新增

insert into 表名 values (值,值..);
insert into 表名 (列名, 列名...) values (值,值....);
insert into 表名 values (值,值..),(值,值..),….

2、查询

1)全列查询

select *from 表名;

2)指定列查询

select 列名 from 表名;

3)表达式查询

select 表达式 from 表名;

4)查询指定别名

select 表达式 as 别名 from 表名;

5)查询去重

select distinct 列名 from 表名;

6)条件查询 [重要]

select 列名 from 表名 where 条件;

7)查询的时候排序

select 列名 from 表名 order by 列名;

8)分页查询

select 列名 from 表名 limit 条件;

3、修改

update 表名 set 列名 = 值 where 条件 order by 列名 limit...

4、删除

delete from 表名 where 条件 order by 列名 limit...