MySQL视图与窗口函数入门:一步步安装与第一次使用
本文带你从零开始安装MySQL,学会创建视图和使用窗口函数,适合完全没接触过数据库的读者。
准备环境:下载与安装MySQL
首先,你需要安装MySQL。访问MySQL官方下载页面,选择适合你操作系统的版本(Windows、macOS或Linux)。推荐下载MySQL Community Server(免费版)。安装时,记住你设置的root密码,后面登录要用。常见坑:安装过程中如果提示缺少Visual C++ Redistributable,先去微软官网下载安装。
第一步:连接MySQL并创建数据库
安装完成后,打开MySQL命令行客户端(或任何终端工具,如MySQL Workbench)。输入以下命令登录(密码是你刚设的root密码):
mysql -u root -p
登录成功后,创建一个新数据库:
CREATE DATABASE mydb;USE mydb;
然后创建一张表并插入一些数据,方便后面练习:
CREATE TABLE sales (id INT, product VARCHAR(50), amount DECIMAL(10,2));INSERT INTO sales VALUES (1, 'A', 100), (2, 'B', 200), (3, 'A', 150);
第二步:创建并使用视图
视图可以理解为一个“虚拟表”,它不存储数据,而是保存了一个查询。以后你可以像查普通表一样查它。创建视图的语法:
CREATE VIEW high_sales AS SELECT * FROM sales WHERE amount > 150;
现在你可以查询这个视图:
SELECT * FROM high_sales;
你会看到只有金额大于150的记录。如果不再需要,可以用 DROP VIEW high_sales; 删除。
第三步:体验窗口函数
窗口函数让你在不合并行的情况下,对每一行进行跨行计算。比如,你想知道每条销售记录在全部记录中的排名。试试这个:
SELECT id, product, amount, ROW_NUMBER() OVER (ORDER BY amount DESC) AS rank FROM sales;
ROW_NUMBER() 给每一行分配一个唯一编号,按金额降序排列。如果你想按产品分组排名,用 PARTITION BY:
SELECT id, product, amount, ROW_NUMBER() OVER (PARTITION BY product ORDER BY amount DESC) AS rank FROM sales;
你还可以用 SUM() OVER 计算累计总和:
SELECT id, product, amount, SUM(amount) OVER (ORDER BY id) AS cumulative FROM sales;
常见坑:窗口函数只能在SELECT子句中使用,且OVER后面必须有括号。
下一步可以做什么
现在你已经成功安装MySQL,并亲手创建了视图、使用了窗口函数。接下来可以尝试:
- 用更多窗口函数,如LAG(获取前一行的值)、LEAD(获取后一行的值)。
- 在真实项目中练习,比如分析销售数据。
- 学习如何优化查询性能,但那是进阶内容了。
记住,多动手写SQL是进步最快的方法。祝你学习愉快!
内容来源
DEV Tutorial
发布时间
2026-05-31 01:34