当前位置: 首页 > 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.lryc.cn/news/598376.html

相关文章:

  • [语言模型训练]基于 PyTorch 的双向 LSTM 文本分类器实现:基于旅店的评论分类语言模型
  • 与deepseek的问答:dot net与Borland VCL的关系
  • OSPF多区域介绍
  • 【Spring Cloud Gateway 实战系列】高级篇:服务网格集成、安全增强与全链路压测
  • 开源链动2+1模式AI智能名片S2B2C商城小程序的场景体验分析
  • 从零用java实现 小红书 springboot vue uniapp(15) 集成minio存储 支持本地和minio切换
  • 开源中国:以国产开源生态筑基,赋能智能研发全栈升级
  • 谈谈ArrayList与Vector的理解?
  • DiffServ服务模型与DS码点详解
  • 数据库第三章练习题(大雪圣期末复习参考)
  • [硬件电路-81]:学习和分析一个电子元器件的思维框架
  • 2.7 PNIO-AL
  • MySQL---索引、事务
  • 借助 Amazon Redshift 为具有强大抗风险能力的使用案例提供支持
  • Concert Tickets 二分+并查集
  • Visual Studio 2010-.Net Framework 4.0-DevExpress安装
  • 使用adb 发送广播 动态改变app内的值
  • Lua(文件I/O)
  • VB解除excel保护工作表
  • 【docker】将已有mysql脚本导入镜像内使用
  • API安全监测工具:数字经济的免疫哨兵
  • Linux服务器安全自动化审计实战:一键扫描账户/网络/进程/计划任务风险(附开源脚本)
  • 项目——在线五子棋对战
  • pyarmor加密源代码
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十三课——车牌识别的FPGA实现(5)车牌字符的识别
  • OpenCV —— contours_matrix_()_[]
  • 删除排序数组中的重复项
  • 微服务的编程测评系统6-管理员登录前端-前端路由优化
  • 一文说清楚Hive中常用的聚合函数[collect_list]
  • 亿级流量短剧平台架构演进:高并发场景下的微服务设计与性能调优