当前位置: 首页 > news >正文

Mysql常用语法一篇文章速成

文章目录

      • 前言
      • 前置环境
      • 数据库的增删改查
        • 查询数据
          • 查询所有
          • 条件查询
          • 多条件查询
          • 模糊查询
          • 分页查询
          • 排序查询
          • 分组查询
          • ⭐️⭐️关联查询
          • 关联分页查询
        • 添加数据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 表中插入一条新记录。指定了 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' 
WHEREid = 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;

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

http://www.lryc.cn/news/475982.html

相关文章:

  • Intel nuc x15 重装系统步骤和注意事项(LAPKC71F、LAPKC71E、LAPKC51E)
  • Linux之实战命令59:iwlist应用实例(九十三)
  • 数据库_SQLite3
  • .Net Framework里演示怎么样使用StringBuilder、Math.Min和String.Format
  • Oracle创建存储过程,创建定时任务
  • <HarmonyOS第一课>应用/元服务上架的课后习题
  • 【Python】探索函数的奥秘:从基础到高级的深度解析(下)
  • ima.copilot:智慧因你而生
  • Vue-$el属性
  • LLC Power Switches and Resonant Tank 笔记
  • Python 如何在 Web 环境中使用 Matplotlib 进行数据可视化
  • C#-数组:一维数组、二维数组、交错数组
  • 动态规划应该如何学习?
  • 【力扣 + 牛客 | SQL题 | 每日4题】牛客SQL热题210,213,212,219
  • Qt 应用开发之 MVC 架构
  • python之字符串总结
  • Flutter鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
  • sql server复制一张表(表结构或表数据)SQL语句整理
  • c语言-进位计数制
  • 记本地第一次运行seatunnel示例项目
  • Threejs 实现 VR 看房完结
  • 找出目标值在数组中的开始和结束位置(二分查找)
  • VSCode进阶之路
  • leetcode-21-合并两个有序链表
  • SSM项目部署到服务器
  • 【Linux】网络编程:初识协议,序列化与反序列化——基于json串实现,网络通信计算器中简单协议的实现、手写序列化与反序列化
  • Educational Codeforces Round 171 (Rated for Div. 2)(A~D) 题解
  • 【教程】Git 标准工作流
  • Nico,从零开始干掉Appium,移动端自动化测试框架实现
  • PHP合成图片,生成海报图,poster-editor使用说明