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

MySQL从入门到熟练查询

MySQL 作为世界上最流行的开源关系型数据库,是我们每一位码农、数据分析师乃至产品经理都应掌握的核心工具。它以其高性能、高可靠性和易用性而闻名。掌握其基础知识,是通往后端开发、数据科学等领域的必经之路。

我将围绕以下几个核心要点,带你快速构建 MySQL 的知识体系。

一、 数据库与SQL:核心概念

  1. 数据库:一个存储和管理数据的仓库,可以看作一个电子化的文件柜。
  2. :数据库中实际存放数据的基本单位,由行和列组成。例如,一个 users 表用来存储所有用户信息。
  3. :表中的一个字段,定义了数据的类型和约束(如 id, name, email)。每一列都有特定的数据类型。
  4. :表中的一条记录(如一个用户的所有信息)。
  5. 主键:唯一标识表中每一行的一列或一组列(如 id)。主键的值必须唯一且不能为空。
  6. SQL:结构化查询语言,用于与数据库通信,进行数据定义、查询、操纵和控制。

二、 基础SQL语法:四大核心操作

SQL 语言主要分为四类,常被称为 CRUD

  • C - Create:使用 INSERT 语句向表中添加新记录。

    INSERT INTO users (name, email, age) VALUES ('张三', 'zhangsan@example.com', 25);
    
  • R - Read:使用 SELECT 语句从表中查询数据,这是最常用和最复杂的操作。

    -- 查询所有列
    SELECT * FROM users;-- 查询特定列
    SELECT name, email FROM users;-- 带条件的查询
    SELECT * FROM users WHERE age > 18;
    
  • U - Update:使用 UPDATE 语句修改表中已有的记录。

    UPDATE users SET age = 26 WHERE name = '张三';
    

    注意:务必使用 WHERE 子句,否则将更新表中所有行!

  • D - Delete:使用 DELETE 语句从表中删除记录。

    DELETE FROM users WHERE name = '李四';
    

    注意:务必使用 WHERE 子句,否则将清空整个表!

三、 关键查询技巧:让数据筛选更精准

  1. WHERE 子句:用于过滤记录,支持多种运算符。

    • 比较运算符:=, <>!=, >, <, >=, <=
    • 逻辑运算符:AND, OR, NOT
    • 范围匹配:BETWEEN ... AND ..., IN (...)
    • 模糊匹配:LIKE% 匹配多个字符,_ 匹配一个字符)
    SELECT * FROM users WHERE name LIKE '张%' AND age BETWEEN 20 AND 30;
    
  2. ORDER BY 子句:用于对结果集进行排序。

    • ASC:升序(默认)
    • DESC:降序
    SELECT * FROM users ORDER BY age DESC, id ASC; -- 先按年龄降序,再按id升序
    
  3. LIMIT 子句:限制返回的记录数量,常用于分页。

    SELECT * FROM users LIMIT 10; -- 返回前10条
    SELECT * FROM users LIMIT 5, 10; -- 从第6条开始(跳过5条),返回10条
    
  4. 聚合函数:对一组值执行计算并返回单个值。

    • COUNT():计数
    • SUM():求和
    • AVG():平均值
    • MAX() / MIN():最大/最小值
    SELECT COUNT(*) as total_users, AVG(age) as avg_age FROM users;
    
  5. GROUP BY 子句:将结果集按一列或多列分组,通常与聚合函数一起使用。

    -- 统计每个年龄段的用户数量
    SELECT age, COUNT(*) FROM users GROUP BY age;
    
  6. HAVING 子句:用于过滤分组后的结果集。WHERE 在分组前过滤行,而 HAVING 在分组后过滤组。

    -- 筛选出用户数量大于5的年龄段
    SELECT age, COUNT(*) as count FROM users GROUP BY age HAVING count > 5;
    

四、 表的设计与关系:数据类型与约束

  1. 常用数据类型

    • 整数INT, BIGINT, TINYINT
    • 小数DECIMAL(M, N)(精确小数),FLOAT, DOUBLE(近似小数)
    • 字符串VARCHAR(N)(可变长度),CHAR(N)(固定长度),TEXT(长文本)
    • 日期时间DATE, TIME, DATETIME, TIMESTAMP
  2. 重要约束

    • NOT NULL:确保列不能有 NULL 值。
    • UNIQUE:确保列中的所有值都不相同。
    • PRIMARY KEYNOT NULLUNIQUE 的结合。
    • FOREIGN KEY:保证一个表中的数据匹配另一个表中值的参照完整性。
    • DEFAULT:为列设置默认值。
    • AUTO_INCREMENT:自动为列生成唯一的、递增的数字(通常用于主键)。

五、 连接查询:多表关联的灵魂

当需要从多个表中获取关联数据时,就需要使用连接查询。

  • INNER JOIN:返回两个表中匹配的行。

    SELECT orders.order_id, users.name
    FROM orders
    INNER JOIN users ON orders.user_id = users.id;
    
  • LEFT JOIN:返回左表的所有行,以及右表中匹配的行。如果右表无匹配,则结果为 NULL。

    SELECT users.name, orders.order_id
    FROM users
    LEFT JOIN orders ON users.id = orders.user_id;
    
  • RIGHT JOIN:与 LEFT JOIN 相反,返回右表的所有行。

  • FULL OUTER JOIN:返回左右表中所有的行(MySQL 不直接支持,可用 UNION 模拟)。

总结

掌握以上 MySQL 基础知识要点,就能够完成日常工作中 80% 的数据库操作。从基本的 CRUD 到复杂的多表连接查询,这些是构建任何数据驱动应用的基石。

下一步建议

  • 索引:学习如何创建索引以优化查询速度。
  • 事务:了解 BEGIN, COMMIT, ROLLBACK,确保数据的一致性。
  • 视图:将复杂的查询保存为虚拟表,简化操作。
  • 存储过程和函数:在数据库服务器端执行复杂的逻辑。

实践是学习 MySQL 的最佳途径。尝试在自己的项目中创建表、插入数据并执行各种查询,你会迅速巩固这些知识,并发现其强大之处。

http://www.hskmm.com/?act=detail&tid=27794

相关文章:

  • 云之家提单反馈
  • Atcoder Beginner Contest 422
  • centos安装libgdiplus-6.1
  • RapidJSON 自定义内存分配器详解与实战 - 详解
  • 2025 最新推荐!云南旅游旅行社口碑排行榜,权威榜单助选靠谱服务商
  • 代码生成模型自我调试技术解析
  • 每日一题 ##1两数之和
  • python-Zipfile模块-常用代码
  • Elasticsearch 备份:方案篇
  • 307、出塞
  • 2025 年刑事辩护律师/看守所会见律师/取保候审律师推荐:徐义明律师的实务经验与南京华商律所服务体系解析
  • 详细介绍:C#的MVVM架构中的几种数据绑定方式
  • 质量检验知识专题讲座之八:过程检验
  • 质量检验知识专题讲座之六:抽样检验步骤
  • 羡慕线段树
  • 质量检验知识专题讲座之七:来料检验
  • windows 10分区教程,win10自带分区教程
  • # Python 类中方法类型详解
  • 决斗(模拟赛题目T3)分析
  • 大学C语言课摸鱼记
  • gitlen中,已经提交了内容,如何回退到修改前?
  • CF1989F
  • 2025.10.10——1绿
  • Vue3水波纹指令:2025年Material Design交互新标准 - 实践
  • 巨型飞机运输风力涡轮机叶片技术解析
  • CCPC2024女生专场 游记(VP)
  • 重磅福利,JetBrains 宣布 DataGrip 面向非商业用途免费!
  • 【GitHub每日速递 251010】Zen MCP:一键 orchestrate 多 AI 模型,代码开发协作新革命!
  • 22 LCA模拟赛2T1 奶龙与贝利亚 题解
  • 微软拼音输入法自定义短语批量导入导出工具(支持Windows 10/11)