MySQL 表的CRUD与复合查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【9月更文挑战第26天】本文介绍了数据库操作中的 CRUD(创建、读取、更新、删除)基本操作及复合查询。创建操作使用 `INSERT INTO` 语句插入数据,支持单条和批量插入;读取操作使用 `SELECT` 语句查询数据,可进行基本查询、条件查询和排序查询;更新操作使用 `UPDATE` 语句修改数据;删除操作使用 `DELETE FROM` 语句删除数据。此外,还介绍了复合查询,包括连接查询(如内连接、左连接)和子查询,以及聚合函数与分组查询,并提供了示例代码。
  1. CRUD 操作
  • Create(插入数据)
  • 基本语法:使用INSERT INTO语句将数据插入到表中。例如,有一个名为students的表,包含id(整数类型,自动递增)、name(字符串类型)和age(整数类型)三个字段,插入一条记录的语句如下:


INSERT INTO students (name, age) VALUES ('John', 20);


  • 批量插入:可以一次插入多条记录。例如:


INSERT INTO students (name, age) VALUES ('Alice', 22), ('Bob', 21);


  • Read(查询数据)
  • 基本查询:使用SELECT语句查询表中的数据。例如,查询students表中的所有记录:


SELECT * FROM students;


  • 条件查询:通过WHERE子句筛选符合条件的记录。例如,查询年龄大于 20 岁的学生:


SELECT * FROM students WHERE age > 20;


  • 排序查询:使用ORDER BY子句对查询结果进行排序。例如,按照年龄升序查询学生记录:


SELECT * FROM students ORDER BY age;


  • Update(更新数据)
  • 基本语法:使用UPDATE语句更新表中的数据。例如,将名为John的学生年龄更新为 21 岁:


UPDATE students SET age = 21 WHERE name = 'John';


  • Delete(删除数据)
  • 基本语法:使用DELETE FROM语句删除表中的数据。例如,删除年龄小于 20 岁的学生记录:


DELETE FROM students WHERE age < 20;


  1. 复合查询
  • 连接查询(JOIN)
  • 内连接(INNER JOIN):返回两个表中满足连接条件的行。例如,有一个courses表(包含course_idcourse_name)和一个student_courses表(包含student_idcourse_id),要查询学生所选课程的信息,可以使用内连接:


SELECT students.name, courses.course_name
       FROM students
       INNER JOIN student_courses ON students.id = student_courses.student_id
       INNER JOIN courses ON student_courses.course_id = courses.course_id;


  • 左连接(LEFT JOIN):返回左表中的所有行以及右表中满足连接条件的行。如果右表中没有匹配的行,则用NULL填充。例如,查询所有学生及其所选课程(如果有):


SELECT students.name, courses.course_name
       FROM students
       LEFT JOIN student_courses ON students.id = student_courses.student_id
       LEFT JOIN courses ON student_courses.course_id = courses.course_id;


  • 子查询
  • 基本概念:子查询是嵌套在其他查询中的查询。例如,要查询年龄大于平均年龄的学生,可以先计算平均年龄作为子查询,然后在外部查询中使用这个结果:


SELECT * FROM students
       WHERE age > (SELECT AVG(age) FROM students);


  • 聚合函数与分组查询(GROUP BY)
  • 聚合函数:包括SUM(求和)、AVG(求平均值)、COUNT(计数)、MAX(求最大值)和MIN(求最小值)。例如,计算学生的平均年龄:


SELECT AVG(age) FROM students;


  • 分组查询:与聚合函数一起使用,用于对数据进行分组统计。例如,统计每个年龄段的学生人数:


SELECT age, COUNT(*) FROM students GROUP BY age;


  • Having 子句HAVING子句用于对分组后的结果进行筛选。例如,查询学生人数大于 1 的年龄段:


SELECT age, COUNT(*) FROM students GROUP BY age HAVING COUNT(*) > 1;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
|
4天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
21 6
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
59 9
|
1月前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
76 3
|
1月前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
218 1
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
86 0
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
71 15
|
2天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
9天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。