MySQL 零基础怎么入门:建库建表到查询一次讲清

编程狮(w3cschool.cn) 2026-09-04 16:52:50 浏览数 (47)
反馈

MySQL 零基础入门,最稳的路线是先理解"数据库是什么",再依次学建库、建表、插入、查询、条件过滤、排序分页这六件事。本文用一条完整路径带你从打开数据库到写出第一条查询语句,每一步都配可直接运行的 SQL。跟着做,你就能在本地把一张表建起来、把数据存进去、再按自己的想法取出来。下面把零基础最容易迷糊的概念先用大白话讲清楚。不管你之后是做网站后台、做数据分析,还是单纯想存点结构化数据,这套基础都绕不开。把六件事吃透,你就能从"对着空数据库发呆"变成"随手写出一条查询拿到想要的结果"。

MySQL 零基础入门建库建表到查询封面图

一、数据库到底是什么:用仓库比喻先建立直觉

很多初学者一上来就被"数据库""表""字段"这些词劝退,其实它们的对应关系特别生活化。你可以把 MySQL 想象成一栋大仓库:整栋仓库叫"数据库实例",仓库里按用途隔出不同的"库房",每个库房就是一张"表";库房里一格一格的货架,就是"行";每一格上贴的标签(比如"品名""数量""入库时间"),就是"字段"或者说"列"。

为什么要单独用数据库,而不直接写进 Excel 或文本文件?因为数据库擅长两件事:一是数据多了也能快速查找,二是能保证多人同时改也不会乱。当你要存几千条、几万条订单,还要随时按条件筛选时,Excel 会卡,而 MySQL 一个查询瞬间就返回结果。理解了"仓库—库房—货架"这个层级,后面所有操作都是在往这套结构里放东西、取东西。

如果你还没装环境,可以先从 MySQL 教程 里把安装和登录部分过一遍。教程里会带你用命令行或可视化工具连上本地的 MySQL 服务,连上之后,我们下面所有的 SQL 才能在上面真正跑起来。先把这栋"仓库"的门打开,后面才好往里搬东西。

二、建库建表:先把货架和格子规划好

进到 MySQL 之后,第一件事是建一个"库房",也就是创建数据库。你可以把它理解成在仓库里划出一块专属区域,以后相关的表都放进去。创建语句很简单:CREATE DATABASE 后面跟一个库名,库名建议用英文、见名知意,比如 shop 表示电商、blog 表示博客。创建完用 USE 选中它,后续操作就都在这个库里进行。

建好库,接下来是建表,这是零基础最容易卡住的一步,因为你要提前想清楚"这张表存什么、每一列是什么类型"。表结构一旦定下来,后面插入和查询都围绕它转。建表语句里你要给每一列起名字、定类型,比如存名字用 VARCHAR(50) 表示最长 50 个字符的可变文本,存年龄用 INT 表示整数,存注册时间用 DATETIME 表示日期时间。还要给每行一个唯一标识,通常是 id 字段,设成自增主键,这样每行都不会重复。

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    age INT,
    created_at DATETIME
);

这段做了什么:创建了一张叫 users 的表,里面有四列。id 是主键且自动增长,username 是不能为空的文本,age 是整数可留空,created_at 存时间。表结构就像货架的格子规划——先规划好,后面放数据才不会乱塞。建表时把类型想清楚,比建完再改要省事得多。

三、插入数据:把第一条记录写进去

表建好之后,里面是空的,接下来用 INSERT 把数据写进去。INSERT 的写法是:指定要往哪张表插、插哪几列、对应的值是什么。注意值和列要一一对应,文本类型的值用单引号包起来,数字不用。初学者常犯的错误是列和值数量对不上,或者字符串忘了加引号,MySQL 会直接报错,对着报错信息核对顺序就能改好。

INSERT INTO users (username, age, created_at)
VALUES ('xiaoming', 18, '2026-09-03 10:00:00');


INSERT INTO users (username, age, created_at)
VALUES ('xiaohong', 22, NOW());

这段做了什么:往 users 表里插了两条记录。第一条手动写了时间,第二条用 NOW() 让数据库自动填当前时间。不需要每次都指定 id,因为它设了自增,MySQL 会自动补上 1、2、3。插入成功后,这两条"货架上的货物"就真正存进表里了。

插入时如果不确定某列该填什么类型,随时可以翻 MySQL 速查手册,里面把常用类型和建表语法按速查表排好了,写 SQL 时摆在旁边当字典很顺手。把这一节练熟,你就完成了"建库—建表—插数据"这三步,已经走完入门路线上的一大半。

四、查询与条件过滤:按需要把数据取出来

数据存进去之后,真正的价值在"取出来用",这一步靠 SELECT。最基础的查询是 SELECT 列名 FROM 表名,比如 SELECT username, age FROM users 会把所有用户的名字和年龄都列出来;想取全部列可以写 SELECT *,但正式项目里建议明确写出需要的列,既清晰又省资源。查询返回的结果,本质就是一张临时的小表。

光查全部往往不够,你通常只想看"符合某些条件"的数据,这就用到 WHERE 子句做条件过滤。比如只看年龄大于等于 18 岁的用户:WHERE age >= 18;想看名字是某个具体值:WHERE username = 'xiaoming'。条件可以组合,AND 表示"同时满足",OR 表示"满足其一",还能用 LIKE 做模糊匹配,比如 WHERE username LIKE 'xiao%' 会找出所有以 xiao 开头的名字。

SELECT username, age
FROM users
WHERE age >= 18 AND username LIKE 'xiao%';

这段做了什么:从 users 里挑出年龄满 18 岁、且用户名以 xiao 开头的用户,只返回名字和年龄两列。WHERE 就像在货架上按标签筛货,只把符合条件的搬出来。条件过滤是查询里最常用、也最该练熟的能力,建议多换几种条件自己跑几遍感受差异。

五、排序与分页:结果太多时怎么看

当表里数据变多,查询结果可能一下子冒出几百行,全屏刷下来既难看又难找。这时候用 ORDER BY 给结果排序:ORDER BY age DESC 表示按年龄从大到小排,ASC 则是从小到大;还可以按时间排,让最新的记录排在最前面。排序不改变表里的数据,只改变这一次的展示顺序。

比排序更实用的是分页,因为网页上不可能一次给用户看一千条。分页靠 LIMIT 实现,LIMIT 10 表示只取前 10 条;要翻页就再加上偏移量,LIMIT 10 OFFSET 20 表示跳过前 20 条、再取 10 条,也就是第 3 页的内容。把 LIMIT 和 ORDER BY 搭配,就是几乎所有列表页背后的逻辑:先排好序,再切一小块给用户。

SELECT username, age
FROM users
WHERE age >= 18
ORDER BY created_at DESC
LIMIT 10 OFFSET 0;

这段做了什么:筛出成年用户,按注册时间倒序,只取最新的 10 条。它把前面学的条件过滤、排序、分页串在了一条语句里。想看下一页,只要把 OFFSET 改成 10、20 依次往后挪即可。这些语法都属于标准 SQL,和具体数据库关系很小,想系统了解可以看 SQL 教程,把这套查询语言的整体脉络补全。

MySQL 零基础入门该先学哪个操作

总结

MySQL 零基础入门,本质是走通"建库—建表—插入—查询—过滤—排序分页"这条线。数据库像仓库,库是区域、表是库房、行是货物、列是标签;建表时把类型和主键想清楚,后面插入查询才顺;查询用 SELECT,过滤用 WHERE,排序用 ORDER BY,分页用 LIMIT,这四样组合起来就能应付绝大多数日常取数需求。把这几条 SQL 在本地真正跑一遍,比只看不动手记得牢得多。

下一步建议跟着配套课程系统练:MySQL零基础入门课程是图文微课形式,适合零基础一步步跟;想看清表结构细节时,可以参考那篇讲四种查看数据表结构方法的笔记;写复杂 SQL 拿不准格式,SQL格式化工具能帮你把语句理整齐。这些入口都列在文末「延伸学习」里。

延伸学习

想把这块知识系统补齐,可以按这个顺序来:

  1. 先跟着 MySQL零基础入门课程 这套图文微课从环境到实战走一遍,把基础打扎实;
  2. 遇到表结构看不清、不知道列类型时,参考 MySQL 数据表结构笔记 里的四种查看办法;
  3. 写长 SQL 拿不准缩进和格式,用 SQL格式化工具 一键整理,方便自己和他人阅读。

常见问题

Q:VARCHAR(50) 里的 50 到底是什么意思?

A:它表示这个文本列最多存 50 个字符,不是 50 个字节。存中文时一个字通常占多个字节,但 50 约束的是字符个数。定长度时按真实业务估算,过小会插不进、过大则浪费空间。

Q:SELECT * 和写出具体列名,该用哪个?

A:练习时可以写 SELECT * 图省事,但正式项目建议明确列出需要的列。既能减少不必要的数据传输,也让读代码的人一眼看清取了哪些字段,后期维护更省心。

Q:LIMIT 分页在大数据量下为什么会变慢?

A:OFFSET 越大,数据库要跳过的前面行越多,性能会下降。数据量很大时,更优的做法是用"上一页最后一条的 id"做条件过滤来翻页,而不是一味加大 OFFSET。

0 人点赞