news 2026/4/20 13:15:44

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/4/18 9:49:17

电源设计中PCB线宽与电流对照表的全面讲解

电源设计中PCB线宽与电流关系的深度解析:从原理到实战你有没有遇到过这样的情况?一块精心设计的电源板,在实验室测试时一切正常,可一到满载老化阶段,某段走线就开始发烫、变色,甚至冒烟烧毁。拆开一看&…

作者头像 李华
网站建设 2026/4/20 11:38:50

SMBus多主控竞争检测原理:核心要点图解说明

SMBus多主控竞争检测原理:从工程实战看总线仲裁的精妙设计你有没有遇到过这样的场景——系统里三个控制器同时想读温度传感器,结果通信莫名其妙失败?日志里只留下一个模糊的ARBLOST标志,却不知道谁赢了、谁输了、为什么输&#xf…

作者头像 李华
网站建设 2026/4/17 18:18:52

实现在探测主机中获取MAC地址

目录 为什么只有ARP可以探测局域网内的MAC地址 OSI模型和TCP/IP协议栈 各层协议的作用范围 TCP/UDP通讯先通过ARP获取MAC 再建立TCP连接,但ARP不是必须在同一个局域网内才能使用吗,那为什么TCP/UDP可以探测不在同一个局域网内的主机? 关键区别&…

作者头像 李华
网站建设 2026/4/18 20:20:10

PyTorch-CUDA-v2.6镜像中使用TorchRec处理推荐系统大数据

PyTorch-CUDA-v2.6 镜像中使用 TorchRec 处理推荐系统大数据 在当今互联网服务高度个性化的时代,推荐系统早已不再是“猜你喜欢”的简单算法,而是驱动电商成交、短视频留存、广告变现的核心引擎。无论是抖音的无限滑动,还是淘宝首页千人千面的…

作者头像 李华
网站建设 2026/4/18 12:46:52

OpenAMP实现CPU间数据共享:工业自动化完整示例

OpenAMP实现CPU间数据共享:工业自动化实战全解析在现代工业控制系统中,我们经常遇到一个棘手的问题——Linux系统无法满足硬实时控制需求。比如你写了一个PID控制器,跑在Cortex-A核心上,却发现电机响应总是“慢半拍”,…

作者头像 李华
网站建设 2026/4/19 2:42:30

PyTorch-CUDA-v2.6镜像中运行Deformable DETR目标检测模型

在 PyTorch-CUDA-v2.6 镜像中运行 Deformable DETR 目标检测模型 当我们在智能安防系统中部署一个行人检测模块,或是为工业质检流水线加入缺陷识别能力时,真正困扰开发者的往往不是模型本身的设计,而是“为什么代码跑不起来”——CUDA 版本不…

作者头像 李华