文章目录
- 前言
- 前置环境
- 数据库的增删改查
- 查询数据
- 查询所有
- 条件查询
- 多条件查询
- 模糊查询
- 分页查询
- 排序查询
- 分组查询
- ⭐️⭐️关联查询
- 关联分页查询
- 添加数据insert
- 插入多条记录
- 不指定列名(适用于所有列都有值的情况)
- 更新数据
- 更新多条记录
- 更新多个列
- 更新不满足条件的记录
- 删除
- 统计数据函数(sum 、count)
前言
本篇文章旨在为初学者提供一个快速入门Mysql的指南,帮助读者在短时间内了解MySQL的核心语法和基本功能。逐步深入到表的操作、数据的增删改查(CRUD)以及常见的查询技巧。
前置环境
安装Mysql5.7或8.0mysql官网
安装数据库可视化软件navicatnavicat官网
进入navicat
点击链接 新建链接
新建数据库并且相同操作在建表
设计表并新建几条数据
数据库的增删改查
查询数据
查询所有
这条语句从 hellosql
表中查询所有列的所有记录。使用 *
表示选择所有列。
SELECT * from hellosql; // 查询某个表所有的数据 返回的是一个列表
条件查询
仅查询 id
列值为 1 的记录。
SELECT * from hellosql WHERE id = 1
多条件查询
查询同时满足 id
为 1 和 no
为 11 的记录。
SELECT * from hellosql WHERE id = 1 AND no = 11
模糊查询
使用 LIKE
进行字符串匹配,%
代表任意字符
SELECT * from hellosql WHERE NAME like '%mou'; 前缀模糊查询
SELECT * from hellosql WHERE NAME like 'zhai%'; 后缀模糊查询
SELECT * from hellosql WHERE NAME like '%ai%';全模糊查询
分页查询
从第二条记录开始,返回两条记录。LIMIT
的第一个参数是起始索引(从 0 开始),第二个参数是返回的记录数
SELECT * from hellosql LIMIT 1,2
排序查询
根据 id
列的值对结果进行升序或降序排列
hellosql
表中选取所有列的数据,并按 id
列降序/升序排列
SELECT * from hellosql order by id DESC
SELECT * from hellosql order by id ASC
分组查询
按 description
列进行分组,并统计每组的记录数,HAVING
用于筛选符合条件的分组结果。
SELECT count(*) from hellosql GROUP BY description HAVING description = 'wuhuman'
⭐️⭐️关联查询
进行左连接查询,返回 hellosql
表和 role
表中匹配的记录
常用的左连接(LEFT JOIN 或 LEFT OUTER JOIN)的 SQL 语法格式如下:
SELECT columns FROM table_a AS a LEFT JOIN table_b AS b ON a.join_column = b.join_column;
语法详解:
- SELECT columns:指定要选择的列,可以是表中的所有列(
*
)或特定列(如a.column_name, b.column_name
)。 - FROM table_a AS a:指定左表(
table_a
)并给它一个别名(a
),便于后续引用。 - LEFT JOIN table_b AS b:指定右表(
table_b
)并给它一个别名(b
),表示进行左连接。 - ON a.join_column = b.join_column:定义连接条件,说明两个表中哪些列用于匹配记录。
SELECT hellosql.*,role.role FROM hellosql left JOIN role ON role.h_id = hellosql.id
关联分页查询
在关联查询的基础上加上返回前两条记录 也就是可以分页
SELECT hellosql.*,role.role as role FROM hellosql left JOIN role ON role.h_id = hellosql.id limit 0,2
添加数据insert
语句向 hellosql
表中插入一条新记录。指定了 name
、description
和 no
列的值。
INSERT INTO `hellosql` ( `name`, `description`, `no` )
VALUES( 'wuhuman3333', 'zhaimou', 999 )
插入多条记录
INSERT INTO hellosql (name, description, no) VALUES ('wuhuman1', 'description 1', 1), ('wuhuman2', 'description 2', 2), ('wuhuman3', 'description 3', 3);
不指定列名(适用于所有列都有值的情况)
INSERT INTO hellosql
VALUES (NULL, 'wuhuman4', 'description 4', 4);
如果插入的值为所有列,并且表中有自增的主键(通常是 NULL
),可以省略列名,直接插入值
更新数据
这条语句将 id
为 1 的记录的 name
列更新为 zhaimou666
UPDATE hellosql
SET NAME = 'zhaimou666'
WHEREid = 1
更新多条记录
语句将所有 description
为 'example description'
的记录的 no
列的值加 1。
UPDATE hellosql SET no = no + 1 WHERE description = 'example description';
更新多个列
这条语句将 id
为 2 的记录的 name
和 description
列同时更新为新的值。
UPDATE hellosql SET name = 'new_name', description = 'new description' WHERE id = 2;
更新不满足条件的记录
这条语句将所有 description
列值为 NULL
的记录更新为 'default description'
UPDATE hellosql SET description = 'default description' WHERE description IS NULL;
删除
这条语句将删除 id
为 2 的记录。
DELETE from hellosql where id = 2;
或根据条件删除
DELETE FROM hellosql WHERE no < 5;
删除全部
truncate table yourtablename
统计数据函数(sum 、count)
select count(*) from hellosql;select sum(goods) from hellosql;
文章到这里就结束了 会持续更新技术文章