news 2026/8/29 2:45:26

MySQL数据库练习 和 导入sakila数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL数据库练习 和 导入sakila数据库

mysql数据库的相关练习:

首先,我们需要创建创建练习所需要的database以及database中的各种表。

如下图,我们在MySQL中创建一个TEST database,然后再进入TEST中,创建四个表:

将四个表创建好之后,我们需要在表中插入适当数据,操作如下所示:

其中,第一次插入数据时,我们系统出现了报错,这个错误是MySQL的字符集编码不支持中文导致的,具体是数据库/表/字段的字符集不是UTF8(或UTF8mb4),无法存储中文字符,进而触发 ERROR 1366 报错。
具体原因是MySQL默认的字符集可能是 latin1 (不支持中文),而你插入了“赵雷”等中文字符,系统无法识别对应的编码值,因此抛出错误。
解决步骤是:
1. 先修改数据库字符集:
进入MySQL终端,执行命令将数据库 TEST 的字符集改为 utf8mb4 (兼容所有中文和特殊字符)。

ALTER DATABASE TEST CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 修改表的字符集

对 STUDENT 表执行字符集修改。

ALTER TABLE STUDENT CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. 重新执行插入语句:

修改完成后,再执行插入中文的SQL语句,即可正常存储。

然后我们继续插入数据:

这个报错和之前的问题完全一致,都是** COURSE 表的字符集不支持中文**导致的 ERROR 1366 ,只需把 COURSE 表的字符集也修改为 utf8mb4 就能解决。

操作如下:

同理,将剩余两个表也改变,操作如下:

ALTER TABLE TEACHER CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE SCORE CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

接下来我们来用该数据库中建立的表来进行相关练习。

练习题目如下:

练习具体操作过程已经结果如下:

第十题的SQL报错是字段 s_id 存在二义性,简单说就是MySQL分不清 NOT IN 子查询里的 s_id 是来自主查询的 STUDENT 表,还是子查询的 SCORE 表,同时你的语句还存在连接条件书写错误( a.s_id=a.s_id 是无效条件)。

具体错误点:

1. 字段二义性:子查询 SELECT s_id FROM SCORE WHERE c_id='02' 中的 s_id ,MySQL无法确定其归属表(虽然实际是 SCORE 表,但语法上需明确)。

2. 连接条件错误: s.s_id=a.s_id 写成了 a.s_id=a.s_id ,属于无效的自等条件,无法正确关联学生和成绩表。

修正后的第十题SQL语句如下:

继续练习:

其中第十九、二十题都是用子查询+变量的方法来实现各科成绩排名。

继续:

五十道练习已经全部完成。

接下来我们来做导入sakila的操作:

首先,将需要的zip文件下载并且保存到自己熟悉的电脑位置中,然后打开虚拟机,将文件直接拖入虚拟机文件中即可。(如果拖入不可以,可以用主机与虚拟机的共享文件夹,或者用xshell 8、xftp 8等软件进行共享传递文件。)

然后需要查看是否成功:

我直接将下载好的zip文件拖入我的根目录下:

进入文件夹,如图所示,在进入sakila-db文件中,出现了三个文件,分别是sakila-data.sql、sakila.mvb、sakila-schema.sql,这说明成功。

然后停留在sakila-db文件的目录下,来执行操作,用来创建数据库并且初始化数据。

创建成功后,退出该目录回到根目录,并且进入MySQL中执行以下操作,我们来进行验证:

如上图所示,操作均正常运行没有报错,说明我们已经成功导入sakila数据库。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 2:35:36

别再乱买电竞耳机了!职业选手都在用的“隐藏参数”曝光

花几百上千块买的电竞耳机,却总在决赛圈被敌人绕后偷袭?明明开着7.1环绕声,却连脚步声从左还是右来都分不清?团战沟通时,队友只听见你这边的键盘杂音,关键指令全错过?别再怪自己反应慢&#xff…

作者头像 李华
网站建设 2026/8/19 14:40:55

ModbusTCP报文格式说明:调试过程中典型问题汇总

深入理解 Modbus TCP 报文结构:从协议解析到调试实战在工业自动化现场,你是否遇到过这样的场景?PLC 和上位机明明连上了网,Ping 得通,端口也能 Telnet 通,但数据就是读不出来——要么返回异常码&#xff0c…

作者头像 李华
网站建设 2026/8/27 18:57:24

从零实现基于UDS诊断协议的诊断请求响应处理

手把手教你实现一个轻量级UDS诊断引擎 你有没有遇到过这样的场景:手握CAN分析仪,连上OBD接口,发了一串 22 F1 90 ,却迟迟等不来VIN码的回应?或者在刷写ECU时卡在“进入编程会话”这一步,看着诊断仪反复超…

作者头像 李华
网站建设 2026/8/26 12:46:01

系统学习Multisim元器件图标布局与调用技巧

玩转Multisim元器件:从“找不着”到“秒调用”的实战指南 你有没有过这样的经历? 打开 Multisim 准备搭个放大电路,想找个 LM358 运放,结果在“Analog ICs”里翻来翻去,点开十几个子类也没找到;或者设计数…

作者头像 李华
网站建设 2026/8/28 16:54:13

深入浅出JS事件:从基础原理到实战进阶全解析

📚 前言: 在JavaScript交互开发中,事件是连接用户操作与程序逻辑的核心桥梁。无论是点击按钮、输入文本,还是页面加载完成,本质上都是事件驱动的结果。但很多开发者在使用事件时,往往只停留在“会用”的层面…

作者头像 李华
网站建设 2026/8/28 3:30:55

PyTorch-CUDA-v2.6镜像是否支持A100/H100?答案在这里

PyTorch-CUDA-v2.6镜像是否支持A100/H100?答案在这里 在当今大模型训练如火如荼的背景下,硬件选型与软件环境的匹配成了决定项目成败的关键一环。你有没有遇到过这样的情况:好不容易申请到了搭载 H100 的计算资源,兴冲冲地拉下 P…

作者头像 李华