前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mysql CRUD操作

mysql CRUD操作

作者头像
友儿
发布2022-09-28 13:26:08
发布2022-09-28 13:26:08
46700
代码可运行
举报
文章被收录于专栏:友儿友儿
运行总次数:0
代码可运行

创建表的时候尽量加上create_time字段, 为create_time设置默认值CURRENT_TIMESTAMP

CRUD操作

Create(增)

单条插入

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 表名(字段1, 字段2..) VALUES(值1, 值2)

INSERT INTO class_1(name) VALUES('name_1')

多条插入

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 表名(字段1, 字段2..) VALUES(值1, 值2), (值1, 值2)

Retrieve(查)

获取所有记录

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 字段1, 字段2 FROM 表名

SELECT name FROM class_1
SELECT * FROM class_1

条件查询(WHERE, AND , OR)

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 字段1, 字段2 FROM 表名 WHERE 表达式

SELECT * FROM class_1 WHERE name="name_1" AND id=8

模糊匹配(LIKE, %)

模糊匹配有性能问题, 表记录如果比较多, 查询速度很慢

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 字段1, 字段2 FROM 表名 WHERE 表达式

SELECT * FROM class_1 WHERE name LIKE "%m%" 

限制返回条数(LIMIT)

代码语言:javascript
代码运行次数:0
运行
复制
查询表达式 LIMIT 数量

过滤重复值(DISTINCT)

对查询的结果进行过滤.

如果指定多个字段, 会对多个字段联合进行过滤

代码语言:javascript
代码运行次数:0
运行
复制
SELECT DISTINCT 字段1, 字段2 FROM 表名 [条件语句]

SELECT distinct name, create_time  FROM class_1 WHERE name like '%m%'

排序问题

对查询的结果进行排序

升序(ASC)

数据库默认是升序的

代码语言:javascript
代码运行次数:0
运行
复制
查询表达式 ORDER BY 字段 ASC

降序(DESC)

代码语言:javascript
代码运行次数:0
运行
复制
查询表达式 ORDER BY 字段 DESC

获取查询结果的条数(COUNT)

代码语言:javascript
代码运行次数:0
运行
复制
SELECT COUNT(*) FROM 表名 [条件语句]

Update(更新)

代码语言:javascript
代码运行次数:0
运行
复制
UPDATE 表名 SET 字段1=新值, 字段2=新值 WHERE 表达式

UPDATE class_1 SET name='name_0' WHERE id=8

Delete(删除)

代码语言:javascript
代码运行次数:0
运行
复制
DELETE FROM 表名 WHERE 表达式

DELETE FROM class_1 WHERE name='name_0'

集合操作

并集UNION

子语句SELECT 必须拥有相同数量的列(字段), 且列的数据类型也相同

代码语言:javascript
代码运行次数:0
运行
复制
SELECT name from class_1 WHERE name is not NULL
UNION
SELECT name from class_2 WHERE name is not NULL

交集(JOIN, INNER JOIN)

代码语言:javascript
代码运行次数:0
运行
复制
SELECT s1.name FROM
(SELECT name from class_1 WHERE name is not NULL) as s1
JOIN
(SELECT name from class_2 WHERE name is not NULL) as s2
ON s1.name=s2.name

差集(LEFT JOIN, RIGHT JOIN)

A对B的差集(LEFT JOIN)

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM // s1对s2的差集, select就可以使用s1.name
(SELECT name from class_1 WHERE name is not NULL) as s1
LEFT JOIN
(SELECT name from class_2 WHERE name is not NULL) as s2
ON s1.name=s2.name
WHERE s2.name is NULL   // 限定s1有, s2没有的记录

B对A的差集(RIGHT JOIN)

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM
(SELECT name from class_1 WHERE name is not NULL) as s1
RIGHT JOIN
(SELECT name from class_2 WHERE name is not NULL) as s2
ON s1.name=s2.name
WHERE s1.name is NULL

补集

A与B的补集 = A与B的并集 - A与B的交集 A与B的补集 = A对B的差集 + B对A的差集 √

代码语言:javascript
代码运行次数:0
运行
复制
SELECT s1.name FROM
(SELECT name from class_1 WHERE name is not NULL) as s1
LEFT JOIN
(SELECT name from class_2 WHERE name is not NULL) as s2
ON s1.name=s2.name
WHERE s2.name is NULL

UNION

SELECT s2.name FROM
(SELECT name from class_1 WHERE name is not NULL) as s1
RIGHT JOIN
(SELECT name from class_2 WHERE name is not NULL) as s2
ON s1.name=s2.name
WHERE s1.name is NULL
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CRUD操作
  • 集合操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档