《mysql半马》增删改查

字符串

生成UUID

参考链接:https://www.cnblogs.com/codecat/p/10833523.html

select replace(uuid(),"-","") as uuid;

字符串截取

参考链接:https://blog.csdn.net/weixin_42184924/article/details/113170241

left(str,length) length>=0 从左边开始截取
image

right(str,length) length>=0 从右边开始截取
image

substring(str,index) =SUBSTRING(str FROM pos) 包括index这个位置的字符
image

substring(str,index,len) 截取str,从index开始,截取len长度
image

查询

只查询第一行

select * from table_name limit 第几行,行数

select * from general limit 0,1

第几行是从0开始的,即0代表第一行。
比如:你想取第二行

select * from table_name limit 1,1

注意报错:1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'。

出现场景:使用子查询时
这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询
意味着下列查询不能正确的执行

select * from my_table where id in (select id from my_table limit 10)

解决方案:

select * from my_table where id in (select t.id from (select * from my_table limit 10)as t)

再套一次查询就OK了

插入

插入的三种方式

参考链接:https://blog.csdn.net/weixin_44848356/article/details/119113174

insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错。

# 第一种方式
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);

# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert into  表名 values(值1,值2,...);

replace into:替换数据。插入时,如果表中已经存在相同的primary key或者unique索引,则用新数据替换;如果没有相同的primary key或者unique索引,则直接插入。

# 第一种方式
insert ignore into 表名(字段名1,字段名2,...) values(值1,值2,...);

# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert ignore into 表名 values(值1,值2,...);

insert ignore into:插入时,如果表中已经存在相同的primary key或unique索引,则不插入;如果没有相同的primary key或者unique索引,则直接插入。这样就不用校验是否已经存在了,有则忽略,无则添加
注:对于以上三种方法,如果表中没有设置主键或唯一索引;则效果都是一样的,即直接插入数据。

# 第一种方式
insert ignore into 表名(字段名1,字段名2,...) values(值1,值2,...);

# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert ignore into 表名 values(值1,值2,...);

删除

批量删除

参考链接:https://blog.csdn.net/weixin_40877388/article/details/112563317

法一:拼接可执行sql

# 查询数据库下所有相关表
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement
FROM information_schema.tables
WHERE table_schema = '数据库名称'
AND table_name LIKE 'test_%';

# 得到语句
DROP TABLE test_2021001,tmp_2021002,tmp_2021003,tmp_2021004;

# 新建命令窗口,将得到的语句执行
posted @ 2023-05-24 11:09  Fusio  阅读(6)  评论(0编辑  收藏  举报