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

MySQL零基础教程增删改查实战

MySQL零基础教程

本教程为零基础教程,零基础小白也可以直接学习,有基础的可以跳到后面的原理篇学习。
基础概念和SQL已经更新完成。

接下来是应用篇,应用篇的内容大致如下图所示。

应用学习

增删改查实战

MySQL是最常用的关系型数据库之一,掌握基本的增、删、改、查(CRUD)操作是学习MySQL的基础。本篇文章将通过详细示例,帮助零基础的读者快速上手MySQL的增、删、改、查操作。无论是新手还是有一定数据库基础的开发者,都能从中受益。

1. MySQL环境准备

在进行任何操作之前,首先需要确保你已经成功安装了MySQL数据库,并能顺利连接到数据库。如果没有安装MySQL,请参考MySQL官方网站或相关教程进行安装。

连接到MySQL

在终端中使用以下命令登录MySQL:

mysql -u root -p

输入密码后,成功登录后会进入MySQL命令行界面。

创建数据库

在MySQL中,所有的操作都发生在数据库中,因此我们首先需要创建一个数据库:

CREATE DATABASE mydb;

然后进入到mydb数据库:

USE mydb;

创建表

在进行增删改查操作之前,先创建一个简单的表。假设我们要管理一个学生信息表,表结构如下:

CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,grade VARCHAR(10)
);

表结构说明:

  • id:学生的唯一标识,使用AUTO_INCREMENT自增。
  • name:学生的姓名,VARCHAR(50)表示最多存储50个字符。
  • age:学生的年龄,使用INT表示整数类型。
  • grade:学生的年级,VARCHAR(10)表示最多存储10个字符。

2. 增:插入数据(INSERT)

在MySQL中,使用INSERT INTO语句来插入数据。我们可以插入一条或多条记录。

插入一条记录

插入一条记录到students表:

INSERT INTO students (name, age, grade) 
VALUES ('John Doe', 20, 'Sophomore');
  • INSERT INTO students (name, age, grade):指定插入的数据列。
  • VALUES ('John Doe', 20, 'Sophomore'):插入的数据值,注意顺序要和列名匹配。

插入多条记录

我们也可以一次性插入多条记录:

INSERT INTO students (name, age, grade) 
VALUES ('Alice', 19, 'Freshman'),('Bob', 21, 'Junior'),('Charlie', 22, 'Senior');
  • 通过多个VALUES列表插入多条记录,减少了插入的语句数量,提升了效率。

插入数据并返回自动生成的ID

如果表中有AUTO_INCREMENT字段(如id),可以使用LAST_INSERT_ID()函数获取插入后生成的ID:

INSERT INTO students (name, age, grade) 
VALUES ('David', 23, 'Graduate');
SELECT LAST_INSERT_ID();

3. 查:查询数据(SELECT)

MySQL使用SELECT语句从表中查询数据。可以查询全部列,也可以选择特定列,还可以进行条件过滤、排序等。

查询所有记录

查询students表中所有的数据:

SELECT * FROM students;
  • *表示查询所有列的数据。

查询特定列

查询nameage列的数据:

SELECT name, age FROM students;

使用WHERE条件筛选数据

查询年纪大于20的学生:

SELECT * FROM students WHERE age > 20;
  • WHERE用于添加条件,过滤符合条件的记录。

排序查询结果

按年龄升序排列学生:

SELECT * FROM students ORDER BY age ASC;
  • ASC表示升序(默认),如果要降序排列,可以使用DESC
SELECT * FROM students ORDER BY age DESC;

使用LIMIT限制返回结果数量

如果只想查看前两条记录:

SELECT * FROM students LIMIT 2;

模糊查询(LIKE)

使用LIKE进行模糊查询,查找名字中包含“a”的学生:

SELECT * FROM students WHERE name LIKE '%a%';
  • %是通配符,表示任意字符。

聚合函数

MySQL提供了多种聚合函数,如COUNT()AVG()SUM()等。

查询学生人数:

SELECT COUNT(*) FROM students;

查询平均年龄:

SELECT AVG(age) FROM students;

4. 改:更新数据(UPDATE)

使用UPDATE语句修改表中已有的数据。可以根据条件更新特定记录,也可以批量更新。

更新单条记录

更新id=1的学生姓名为“John Smith”:

UPDATE students 
SET name = 'John Smith' 
WHERE id = 1;
  • SET用于指定需要更新的列和新的值。
  • WHERE用于指定要更新的记录,确保不修改所有记录。

更新多条记录

更新所有年龄大于20的学生年级为“Graduate”:

UPDATE students 
SET grade = 'Graduate' 
WHERE age > 20;

更新多个字段

同时更新多个字段:

UPDATE students 
SET age = 23, grade = 'Postgraduate' 
WHERE id = 2;

5. 删:删除数据(DELETE)

使用DELETE语句删除表中的记录,可以删除特定记录或删除所有记录。

删除单条记录

删除id=1的学生:

DELETE FROM students WHERE id = 1;
  • WHERE子句用于指定删除条件,确保只删除满足条件的记录。

删除多条记录

删除所有年龄大于20的学生:

DELETE FROM students WHERE age > 20;

删除所有记录

删除students表中的所有记录(注意:表结构不变):

DELETE FROM students;

删除表中的记录(TRUNCATE)

TRUNCATE语句与DELETE类似,但其删除的是所有数据并且不记录日志,因此效率更高:

TRUNCATE TABLE students;
  • TRUNCATE会立即清空表中的所有数据,并且不能恢复。

删除表(DROP)

如果需要删除整个表,包括表结构:

DROP TABLE students;
  • DROP会删除表以及表中所有的数据,无法恢复,因此要小心使用。

总结

在MySQL中,增、删、改、查(CRUD)操作是数据库管理的基础。通过上述操作,我们能够对数据库表中的数据进行增删改查,并且可以通过各种条件、排序和聚合功能来灵活查询数据。

这里,要特别注意更新删除操作。一定要加条件,不然就会更新全表数据,或者删除全表数据。大家有没有误操作过呢?一起分享下。

http://www.dtcms.com/a/296805.html

相关文章:

  • java后端
  • mujoco playground
  • DBA常用数据库查询语句
  • DevOps 完整实现指南:从理论到实践
  • 论文阅读:《Many-Objective Evolutionary Algorithms: A Survey. 》多目标优化问题的优化目标评估的相关内容介绍
  • Android LiveData 全面解析:原理、使用与最佳实践
  • Rust生态中的LLM实践全解析
  • 【C# 找最大值、最小值和平均值及大于个数和值】2022-9-23
  • 项目质量如何提升?
  • 教育培训系统源码如何赋能企业培训学习?功能设计与私有化部署实战
  • 使用 Vue 实现移动端视频录制与自动截图功能
  • MySQL---索引、事务
  • Docker 打包Vue3项目镜像
  • 互联网广告中的Header Bidding与瀑布流的解析与比较
  • 性能测试-groovy语言1
  • 使用 LLaMA 3 8B 微调一个 Reward Model:从入门到实践
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-19,(知识点:PCB布局布线的设计要点)
  • 类和包的可见性
  • 勾芡 3 步诀:家庭挂汁不翻车
  • Spring Data JPA 中的一个注解NoRepositoryBean
  • Edwards爱德华干泵报警信息表适用于iXH, iXL, iXS, iHand pXH
  • 机器学习的基础知识
  • istio tcp连接超时测试
  • android 小bug :文件冲突的问题
  • Linux 磁盘挂载,查看uuid
  • vlm MiniCPM 学习部署实战
  • 上证50ETF期权的交易时间是什么时候?
  • 洛谷 P2572 [SCOI2010] 序列操作 题解(线段树)
  • 高可用架构模式——如何应对接口级的故障
  • R拟合 | 一个分布能看到三个峰,怎么拟合出这三个正态分布的参数? | 高斯混合模型 与 EM算法