简介:本资源是面向高校数据库课程学习者与头歌(Educoder)平台MySQL实训初学者的配套答案解析文档,聚焦数据库定义、表操作、约束应用及数据增删改查等核心实践环节,有效解决实验卡点、命令不熟、语法报错等常见问题。文件为单页PDF格式,共1个433KB的结构化答案集,内含完整目录导航,按头歌平台实训关卡顺序组织,覆盖创建数据库与表、主键/外键/唯一/默认约束设置、ALTER TABLE修改表结构(重命名、改字段名与类型、增删字段、调整列序)、INSERT/UPDATE基础数据操作等全部实操题型,并附带可直接粘贴执行的标准SQL语句及关键注释。已有18382人学习下载,内容经实际验证,适合作为课后自查、考前速查与教学参考,帮助学习者快速建立MySQL命令级实操能力与工程化思维。
1. MySQL数据库实训到底是什么?——别被“头歌”俩字吓住,它其实就是你学做菜时的“菜谱+练习题本”
你有没有过这种经历:刚买回一本《零基础学Python》,翻开第一页就看到“解释器”“字节码”“GIL锁”,瞬间合上书,默默点开短视频刷了两小时?
MySQL数据库实训,对很多新手来说,就是这么一本“还没开始就劝退”的书——尤其当它顶着“头歌”这个平台名,再配上“实训”“答案”“目录”一堆词,很容易让人脑补出:要装虚拟机、配环境、连服务器、写几十行代码、还要被系统自动判分……仿佛下一秒就要去考计算机二级。
其实完全不是。
这份《头歌MySQL数据库实训答案有目录.pdf》,本质上是一本带标准答案的厨房实操手册:你不需要自己发明菜系,也不用从种水稻开始;它已经把每道菜(每个实训关卡)的食材清单(数据库名/表名)、火候要求(SQL语句格式)、摆盘标准(查询结果样式)全列好了,你只需要按步骤切菜、下锅、尝咸淡——错了?翻到答案页对照一下,哪步盐放多了、哪步火候小了,一目了然。
它解决的,是“知道概念但不敢敲第一行命令”的卡点:比如你背熟了“主键是唯一且非空的”,但真让你建一张带主键的表,手会悬在键盘上三分钟——“PRIMARY KEY写在字段后面还是单独一行?”“int后面要不要加括号?”“分号到底放不放?”
这份资源,就是帮你把“理论上懂”变成“手上敢敲”的那块垫脚石。适合谁?三类人最需要:
- 正在头歌平台做数据库课设、但被“第3关外键约束报错1005”卡住一整天的大一同学;
- 想转行做数据分析/后端开发,但SQL只会
SELECT * FROM table,想系统练手又找不到闭环练习路径的转行者; - 已经工作但要用SQL查业务数据,却总在
JOIN和WHERE顺序、GROUP BY漏字段上反复翻车的职场新人。
它不教你怎么设计高并发架构,也不讲InnoDB底层B+树——它只管一件事:让你从输入第一个mysql -u root -p开始,稳稳当当,一关一关,把MySQL最常用、面试必考、工作中天天写的那80%操作,亲手敲出来、跑通、看懂结果。现在,我们这就拆开这本“菜谱”,看看第一道菜怎么炒。
2. 先搞懂一个前提:为什么必须用“头歌环境”跑这些SQL?——不是平台绑架,而是给你配好无菌厨房
很多人拿到这份PDF,第一反应是:“我本地有MySQL,能不能直接粘贴代码跑?”
答案是:能跑,但大概率报错,而且你根本不知道为什么。这就像给你一份米其林餐厅的牛排配方(“海盐现磨,高温铸铁锅,静置3分钟”),你回家用不粘锅+超市盐+电磁炉照做,发现肉柴了——问题不在配方,而在你没意识到:头歌环境是一套预设好的“标准厨房”,而你的本地环境是“自家灶台”,锅碗瓢盆尺寸、火候标定、甚至盐的颗粒度都不同。这一章,我们就把这套“标准厨房”的关键参数说透,让你明白:为什么照着PDF敲,必须进头歌,而不是盲目本地化。
2.1 头歌MySQL环境的三个硬性特征:用户名、密码、连接地址全固定
你看PDF里所有命令开头都是:
mysql -uroot -p123123 -h127.0.0.1这串字符不是示例,是头歌为你预装的“钥匙”。拆开看:
-u root:用户名强制为root,不是你本地可能设的admin或myuser;-p123123:密码强制为123123,不是你设的复杂密码,也不是空密码;-h127.0.0.1:主机地址强制为本机回环地址,头歌后台已将MySQL服务绑定在此,你本地如果改了bind-address或开了远程访问,反而连不上。
提示:如果你在本地MySQL执行
CREATE DATABASE MyDb;成功了,但在头歌里执行同一句却提示“Access denied”,99%是因为你没先运行这行登录命令,或者输错了密码(注意是数字123123,不是字母l23l23)。
2.2 数据库名和表名大小写敏感性:头歌环境默认区分,但PDF代码全小写是故意的
PDF里所有数据库名如MyDb、TestDb,表名如t_emp、tb_student,全部使用小写字母。这不是疏忽,而是头歌Linux服务器的默认配置:lower_case_table_names=1(表名存储为小写,查询时不区分),但数据库名在创建时若含大写,后续USE时必须严格匹配。
所以PDF统一用小写,是为了让你零思考——复制粘贴过去,USE Company;就能进库,不用纠结Company还是company。但如果你本地Windows环境lower_case_table_names=2(不区分),你建了个MyDB,再USE mydb也能进,可一旦换到头歌,USE mydb就会报错“No database selected”。
2.3 SQL语法的“最小可用集”:头歌只认标准ANSI SQL,不支持方言扩展
PDF里所有CREATE TABLE语句,都没有ENGINE=InnoDB DEFAULT CHARSET=utf8mb4这类声明。为什么?因为头歌后台MySQL已全局配置:
- 默认存储引擎为InnoDB(保证事务支持);
- 默认字符集为utf8mb4(兼容emoji);
- 所有
CREATE DATABASE隐式指定CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci。
所以你写CREATE DATABASE MyDb;,头歌自动给你建好utf8mb4库;但如果你本地MySQL 5.7未升级,默认字符集是latin1,建库后插入中文会变问号,而PDF答案里所有INSERT都含中文姓名(如"Nancy"、"Tracy"),一执行就乱码——这不是你代码错,是环境底座不一致。
2.4 实训平台的“沙箱隔离机制”:每个关卡都是独立容器,关掉就清空
这是新手最容易忽略、也最影响学习心态的一点。头歌的每个实训关卡(比如“第3关:使用主键约束”),背后是一个全新的Docker容器:
- 你
CREATE DATABASE MyDb;,这个库只存在于当前关卡容器内; - 你
INSERT INTO tb_emp VALUES (1,"Nancy",301,2300.00);,数据只存于此容器内存+磁盘; - 关卡提交后,容器销毁,所有数据、库、表彻底消失。
所以PDF里每个关卡的代码,都是“从零开始”的完整流程:先CREATE DATABASE,再USE,再CREATE TABLE……没有“接着上一关继续”的逻辑。这恰恰是优势——你永远在干净环境练习,不会因上一关建错表导致本关CREATE TABLE报“Table exists”错误。但这也意味着:不要试图在关卡间共享数据,也不要幻想“我上一关建的t_user表,这关能直接用”。
2.5 答案代码里的“隐藏注释”:那些########## Begin ##########不是装饰,是头歌的代码注入锚点
PDF中所有代码块都被########## Begin ##########和########## End ##########包裹,例如:
########## Begin #################### modify the table name ########## ALTER TABLE tb_emp RENAME jd_emp; ########## show tables in this database ########## show tables; ########## describe the table ########## describe jd_emp; ########## End ##########这串##########不是随便写的。它是头歌平台的代码识别标记:系统只提取Begin和End之间的内容进行自动判分。你如果多复制了一个空行、少了一个分号、或者把describe jd_emp;写在了End外面,系统就认为“未提交有效代码”,直接判0分。更关键的是:Begin和End之间的注释(如modify the table name)会被系统忽略,但你写在里面的SQL必须严格符合头歌语法。比如DESCRIBE在某些MySQL版本可简写为DESC,但头歌只认全拼DESCRIBE,写DESC jd_emp;会报错。
3. 第一步怎么迈?——从“登录MySQL”到“看到第一条查询结果”的完整手把手
现在,我们抛开所有概念,只做一件事:用最笨的办法,把PDF里第一个关卡的代码,从头到尾敲一遍,直到屏幕上出现Query OK和查询结果。不讲原理,不分析,就当是跟着老师做实验——你负责动手,我负责告诉你每一步鼠标点哪、键盘敲什么、眼睛盯哪里。记住:新手最大的障碍不是不会,而是不确定“下一步该干什么”。
3.1 准备工作:打开头歌,找到那个蓝色按钮,别点错入口
- 打开浏览器,访问头歌平台(网址略,按学校发的链接即可);
- 登录你的学生账号(不是邮箱,是学号);
- 在课程列表里找到《MySQL数据库实训》——注意名称必须完全一致,有些课程叫《数据库原理实训》或《SQL实战》,那是另一套题;
- 进入课程后,点击左侧导航栏的“实验实训” → “MySQL数据定义与操作实战” → 展开后找到“第1关:创建数据库”;
- 关键动作:页面右上角有一个蓝色按钮,文字是“开始实训”或“进入实验环境”。点击它!
注意:不要点“查看答案”“下载PDF”或“讨论区”,那些按钮会带你离开实操界面。你必须点这个蓝色按钮,才会弹出一个黑色背景的终端窗口(Terminal),这才是你的“厨房操作台”。
3.2 第一击:输入登录命令,按下回车,听“咔哒”声确认
终端窗口打开后,光标在左上角闪烁,像一块等待书写的黑板。此时,一字不差地输入以下内容(注意空格和短横线):
mysql -uroot -p123123 -h127.0.0.1然后,郑重按下回车键。
你会听到一声清脆的“咔哒”(如果电脑有音效),紧接着屏幕变化:
- 第一行出现
mysql>,表示MySQL客户端已启动; - 如果出现
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),说明密码输错了,请检查是不是123123(数字,不是字母l); - 如果出现
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1',说明实训环境还没加载好,等10秒再点右上角“刷新环境”按钮。
提示:这个登录过程,你每天第一次进头歌都要做一次。就像进厨房先开抽油烟机——它不参与做菜,但不做,后面全白搭。
3.3 第二击:创建数据库,看“Query OK”出现才算成功
光标现在在mysql>后面。输入PDF第1关的第一行代码:
create database MyDb;注意三点:
create必须小写(头歌不认CREATE大写);MyDb是数据库名,必须和PDF完全一致(大小写、下划线、字母数);- 结尾必须有英文分号
;,这是SQL的“句号”,没有它,MySQL会一直等你继续输入。
按下回车。如果一切顺利,屏幕会立刻返回:
Query OK, 1 row affected (0.01 sec)这就是你要找的“成功信号”。Query OK是核心,1 row affected表示影响了一行(其实是新建了一个库),(0.01 sec)是耗时。
如果返回ERROR 1007 (HY000): Can't create database 'MyDb'; database exists,别慌——这是好事,说明库已存在,你只需输入下一句use MyDb;即可。头歌环境有时会缓存上一次的库。
3.4 第三击:切换数据库并验证,用show databases;照镜子
输入:
use MyDb;回车。如果返回Database changed,说明切换成功。
但新手常犯的错是:以为use完就完了,其实要验证。输入:
show databases;回车。你会看到一个表格,其中有一行是MyDb(可能还有information_schema等系统库)。这就是你的库出现在“数据库全家福”里了。如果MyDb没出现,说明create database没执行成功,或者use时名字写错了(比如写成mydb)。
3.5 第四击:执行第一个查询,让数据“活”起来
PDF第1关到这里就结束了,但作为练习,我们加一步:让这个空库“动”一下。输入:
show tables;回车。返回结果是Empty set (0.00 sec)——这正是你想要的!说明MyDb库里确实没表,干净如新。
再输入:
select version();回车。你会看到类似8.0.33的数字,这是头歌MySQL的版本号。记下来,以后遇到函数不支持(比如JSON_EXTRACT),就知道是不是版本太低。
提示:这四步(登录→建库→切库→验证)就是所有MySQL操作的“起手式”。以后每关开头,你都要机械重复这四步,形成肌肉记忆。就像学骑车,先蹬三下再起步,比每次都琢磨“怎么启动”快十倍。
4. 新手最常踩的5个坑:不是你笨,是没人告诉你“坑”长什么样
我带过几十个零基础同学走完头歌全部MySQL实训,发现有5个坑,90%的人至少掉进去一次,而且都在同一个位置。它们不是技术难点,而是“文档没写、老师没提、百度搜不到”的细节陷阱。我把它们按“现象→原因→解决”列出来,你照着自查,省下三小时debug时间。
4.1 现象:ERROR 1064 (42000): You have an error in your SQL syntax
原因:SQL语句末尾少了分号;,或用了中文标点(,。!)
解决:头歌MySQL严格要求英文分号作为语句结束符。PDF里所有代码结尾都有;,但你复制时可能漏掉,或从网页复制带了不可见空格。最稳妥办法:每写完一句,手动在末尾敲一个英文分号,再回车。如果报这个错,立刻检查最后一句的结尾——99%是;的问题。
4.2 现象:ERROR 1046 (3D000): No database selected
原因:忘了执行USE database_name;,就直接写CREATE TABLE或SELECT
解决:头歌环境不会默认进入某个库。你CREATE DATABASE MyDb;后,必须USE MyDb;才能在此库建表。PDF里所有关卡的代码都包含USE,但新手常以为“建库=自动进库”,结果CREATE TABLE t_emp ...报错。口诀:建库不等于进库,USE是必经之路。
4.3 现象:ERROR 1050 (42S01): Table 't_emp' already exists
原因:同一关卡内多次执行CREATE TABLE,而头歌不支持CREATE OR REPLACE TABLE
解决:头歌MySQL不支持覆盖建表。如果第一次CREATE TABLE成功了,第二次再执行就会报此错。正确做法:每次执行前,先删表再重建。例如,在CREATE TABLE t_emp ...前加一句:
DROP TABLE IF EXISTS t_emp;PDF答案没写这句,是因为它假设你从零开始;但你在练习时,反复提交,就必须加。这是血泪经验——我第一次教A同学时,他卡在这儿两小时,就因为没加DROP。
4.4 现象:ERROR 1054 (42S22): Unknown column 'Name' in 'field list'
原因:字段名大小写不一致,或用了保留字(如order、group)当字段名
解决:头歌MySQL对字段名大小写敏感。PDF里表结构是id int,name varchar(32),deptId int,salary float,那么INSERT时必须写name(小写),不能写Name。更隐蔽的是:如果字段名是order(如order int),MySQL会把它当关键字,必须用反引号包裹:`order`。PDF里没用保留字,所以你照抄即可,但以后自己建表要警惕。
4.5 现象:ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
原因:向主键字段插入了重复值,或AUTO_INCREMENT没生效
解决:这是主键约束在“尽职工作”。比如CREATE TABLE t_user(id INT PRIMARY KEY AUTO_INCREMENT,...),你INSERT INTO t_user(id,name) VALUES (1,"Tom");后,再插(1,"Jack")就会报此错。新手常误以为AUTO_INCREMENT会自动跳过已用ID,其实它只在id字段为空时才生效。所以要么不指定id(让MySQL自增),要么确保每次插入的id唯一。PDF答案里INSERT都指定了id,是因为题目要求精确数据,你照抄就行。
5. 从“照着抄”到“自己写”:用三步法把PDF答案变成你的肌肉记忆
现在你已经能跑通第一关,甚至避开了五个高频坑。但真正的门槛不在这里——而在于:当你离开PDF,面对一个新需求(比如“查出工资前三的员工姓名和部门”),你脑子里能不能立刻跳出SELECT name,deptId FROM tb_emp ORDER BY salary DESC LIMIT 3;,而不是打开百度搜“mysql取前三条”。这中间的差距,就是“照着抄”和“自己写”的鸿沟。我用带某高校实训班时总结的“三步消化法”,帮你把PDF里的每一行代码,真正吃进脑子里。
5.1 第一步:解构每一行SQL,像拆乐高积木一样标出“零件名”
拿PDF里最典型的一句UPDATE为例:
UPDATE tb_emp SET Name="Tracy",DeptId=302,Salary=4300.00 WHERE id=3;不要把它当一整句话读。把它拆成四个不可再分的“原子零件”:
UPDATE:动词,表示“修改”;tb_emp:名词,表示“要修改哪张表”;SET ...:宾语,表示“改成什么样子”,其中Name="Tracy"是一个赋值对(字段=新值),逗号分隔多个赋值;WHERE ...:状语,表示“改哪些行”,id=3是筛选条件,没有它,整张表所有行的Name都会变成Tracy。
操作:拿出一张纸,把PDF里任意10句SQL,按这四部分拆开,手写标注。你会发现:所有UPDATE都逃不出这四个零件,只是SET和WHERE的内容在变。这就是SQL的骨架。
5.2 第二步:给每个零件配一个生活场景比喻,让抽象变具体
UPDATE→ “给花浇水”:你不是在创造花,只是改变它的状态(干→湿);tb_emp→ “花盆编号”:你得知道给几号花盆浇,不能对着空气洒水;SET Name="Tracy"→ “给花换名字标签”:原来标签是Nancy,现在撕下来,贴上Tracy;WHERE id=3→ “只浇第三盆”:其他盆(id=1,2,4...)不管,哪怕它们也渴。
操作:选一句INSERT或DELETE,自己编一个比喻。比如DELETE FROM tb_emp WHERE Salary>3000;可以比喻为“公司裁员,只裁掉月薪超3000的员工,其他人不动”。比喻越生活化,记忆越牢。
5.3 第三步:做“填空变形题”,强迫大脑主动调用知识
PDF答案是完整的,但考试和工作只给你半句。所以你要主动给自己出题:
- 原句:
SELECT Name,Salary FROM tb_emp WHERE Id NOT IN (1); - 变形1(改条件):查出
Id为2或4的员工姓名和工资 →WHERE Id IN (2,4); - 变形2(改字段):只查姓名 →
SELECT Name FROM tb_emp ...; - 变形3(加排序):按工资升序 →
ORDER BY Salary ASC; - 变形4(加限制):只查前2条 →
LIMIT 2。
操作:从PDF里挑5个SELECT语句,每个写3个变形题,不查资料,纯靠脑子想。想不出来?回到第一步,重新拆解原句零件。这个过程,就是在训练你的SQL直觉。
从那以后我每次教新人,都强制他们做完这三步才允许看下一关答案。不是为了多练,而是为了让“
SELECT是查东西”“WHERE是筛东西”“ORDER BY是排东西”这些概念,从纸面文字,变成手指敲键盘时的自然反应。希望帮到你。
本文还有配套的精品资源,点击获取