目录
MySQL 9 快速入门教程:从零开始掌握核心操作
MySQL 9作为最新的版本,引入了一些新特性,不过对于初学者来说,核心的SQL操作和数据库设计思想依然是一脉相承的。这篇教程旨在帮你快速建立对MySQL 9的整体认识,并掌握最基本的操作。
MySQL 9 快速入门教程:从零开始掌握核心操作
MySQL 是目前世界上最受欢迎的开源关系型数据库之一。因其体积小、速度快、总体拥有成本低,被大量中小型企业和互联网公司采用 。2024年,MySQL 9 正式推出,带来了性能优化和细微的功能增强 。本教程将基于最新的 MySQL 9 版本,带你从零开始,完成安装、连接、建库、建表以及基本的增删改查操作。
1. MySQL 9 的安装与连接
在开始学习 SQL 语句之前,我们需要先在电脑上安装 MySQL 并成功连接上它。
1.1 快速安装指南
你可以根据你的操作系统选择不同的安装方式:
- Windows / macOS / Linux:最推荐的方式是前往 MySQL 官方网站下载针对你操作系统的安装包(MSI / DMG / RPM)。对于初学者,使用图形化安装向导可以省去很多配置的麻烦 。
- 通过 Docker 安装(推荐尝鲜):如果你想保持电脑环境的整洁,或者想快速体验 MySQL 9 而避免复杂的安装步骤,Docker 是最佳选择。
- 拉取 MySQL 9 镜像(以 9.4 为例):
bash
docker pull mysql:9.4.0 - 运行容器并设置 root 用户的密码:
这样,一个 MySQL 9 服务就在后台启动,并映射在本机的 3306 端口了 。bash
docker run -d --name mysql9-demo -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的密码 mysql:9.4.0
- 拉取 MySQL 9 镜像(以 9.4 为例):
1.2 登录 MySQL
安装完成后,我们需要使用 MySQL 自带的命令行客户端连接服务器。
打开终端(或 Windows 的命令提示符),输入以下命令:
bash
mysql -u root -p
按回车后,系统会提示你输入密码。输入安装时设置的 root 密码,即可看到欢迎界面,进入 mysql> 命令行模式 。
2. 数据库和数据表的基本操作
进入 MySQL 客户端后,我们就可以开始操作数据库了。如果把数据库比作一个仓库,那么数据表就是仓库里一个个货架。
2.1 数据库操作
-
查看现有数据库:
sqlSHOW DATABASES;初始化后,通常会看到
information_schema、mysql、performance_schema和sys这几个系统库 。 -
创建新数据库:
我们来创建一个名为shop(商城)的数据库。sqlCREATE DATABASE shop; -
选择使用数据库:
接下来的所有操作都会在shop数据库中进行。sqlUSE shop;
2.2 数据类型简介
在创建表之前,需要了解几个最常用的数据类型,这决定了“货架”上可以放什么类型的“商品” :
- 数值类型:
INT整数,DECIMAL(10,2)小数(如价格)。 - 字符串类型:
VARCHAR(255)可变长度字符串(如用户名、地址),TEXT长文本(如商品详情)。 - 日期类型:
DATE(日期),DATETIME(日期和时间,如订单创建时间)。
2.3 创建数据表
我们创建一个简单的 users (用户表)和 orders (订单表)来演示。
-
创建用户表 (users):
sqlCREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, -- 用户ID,自动增长,并设为主键 username VARCHAR(50) NOT NULL UNIQUE, -- 用户名,非空,且唯一 email VARCHAR(100) NOT NULL, -- 邮箱,非空 created_at DATETIME DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认为当前时间 );AUTO_INCREMENT可以让id字段在插入新记录时自动加1,PRIMARY KEY则保证了每条记录的唯一性 。 -
查看表结构:
sqlDESCRIBE users;或者
sqlSHOW CREATE TABLE users \G前者显示简要结构,后者显示建表的详细 SQL 语句 。
3. 数据的增删改查(CRUD)
有了表和字段,接下来就是最核心的数据操作:增(Create)、删(Delete)、改(Update)、查(Retrieve)。
3.1 插入数据 (INSERT)
向 users 表中添加几条用户记录。
sql
-- 插入一条数据,id 会自动生成,created_at 会自动填充当前时间
INSERT INTO users (username, email) VALUES ('张三', 'zhangsan@email.com');
-- 插入多条数据
INSERT INTO users (username, email) VALUES
('李四', 'lisi@email.com'),
('王五', 'wangwu@email.com');
3.2 查询数据 (SELECT)
查询是数据库中使用最频繁的操作。
-
查询所有数据:
sqlSELECT * FROM users;*代表所有字段,但在实际生产环境中,建议只列出需要查询的字段名。 -
查询特定字段并添加条件:
查询用户名为“张三”的邮箱和注册时间。sqlSELECT email, created_at FROM users WHERE username='张三';WHERE关键字用于过滤数据,类似编程中的if条件 。
3.3 更新数据 (UPDATE)
如果用户信息发生变化,需要修改数据。
- 修改数据:
把用户 “李四” 的邮箱更新为新地址。⚠️ 警告:sqlUPDATE users SET email = 'lisi_new@email.com' WHERE username = '李四';UPDATE语句中一定要加WHERE条件,否则会修改表中所有行的数据!
3.4 删除数据 (DELETE)
删除不再需要的用户记录。
- 删除数据:
删除用户名为 “王五” 的用户。⚠️ 警告:同样,sqlDELETE FROM users WHERE username = '王五';DELETE语句也必须加WHERE条件,否则会清空整个表!
4. 高级查询初步
掌握基础增删改查后,我们来了解一下稍微复杂一点的查询,为后续深入学习做准备。
4.1 条件与排序
-
查询并排序:
查询所有用户,并按照注册时间倒序排列(最新的在前)。sqlSELECT * FROM users ORDER BY created_at DESC;DESC表示降序,ASC表示升序(默认)。 -
限制结果数量:
只查询前2条数据。sqlSELECT * FROM users LIMIT 2;
4.2 简单的表连接 (JOIN)
假设我们创建了订单表 orders,里面包含 user_id 字段指向 users 表的 id。如果我们想查看每个订单对应的用户名,就需要将两张表连接起来查询。
这是一个**内连接(INNER JOIN)**的例子:
sql
SELECT orders.id AS order_id, users.username, orders.amount
FROM orders
INNER JOIN users ON orders.user_id = users.id;
这个查询会返回订单表中的订单ID、金额,以及通过 user_id 匹配到的用户表中的用户名 。
4.3 使用聚合函数
如果想统计用户总数或订单总金额,就需要使用聚合函数。
sql
-- 统计用户总数
SELECT COUNT(*) FROM users;
-- 计算所有订单的总金额
SELECT SUM(amount) FROM orders;
5. 总结与下一步
至此,你已经完成了 MySQL 9 的快速入门。回顾一下,我们学习了:
- 如何安装和连接 MySQL 9。
- 数据库和数据表的新建与查看。
- 最核心的增删改查(CRUD)操作。
- 初步了解了排序、连接和聚合等进阶查询技巧。
这些基础知识是你操作 MySQL 的基石。在后续的学习中,你可以继续探索 :
- 索引的设计和使用:用于提升海量数据下的查询速度。
- 视图与存储过程:封装复杂的 SQL 逻辑。
- 事务控制:保证数据的一致性和完整性(如银行转账)。
- 权限与安全管理:控制不同用户的访问权限。
希望这篇教程能帮你快速开启 MySQL 9 的学习之旅!