Mysql常用语法一篇文章速成

发布于:2024-11-03 ⋅ 阅读:(99) ⋅ 点赞:(0)

前言

本篇文章旨在为初学者提供一个快速入门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 表中插入一条新记录。指定了 namedescriptionno 列的值。

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' 
WHERE
	id = 1
更新多条记录

语句将所有 description'example description' 的记录的 no 列的值加 1。

UPDATE hellosql SET no = no + 1 WHERE description = 'example description';
更新多个列

这条语句将 id 为 2 的记录的 namedescription 列同时更新为新的值。

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;

文章到这里就结束了 会持续更新技术文章


网站公告

今日签到

点亮在社区的每一天
去签到