news 2026/5/6 14:26:46

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/30 21:00:11

USB转485驱动程序下载:零基础接入工控设备教程

从零开始玩转工控通信:USB转485驱动安装与实战调试全记录 你有没有遇到过这样的场景?手头有一台PLC、一个温控仪,或者一套电力仪表,它们都支持RS-485接口,但你的笔记本电脑却连个串口都没有。想读点数据吧&#xff0c…

作者头像 李华
网站建设 2026/5/4 19:18:44

清华镜像源加速下载:PyTorch-CUDA-v2.6环境部署最佳实践

清华镜像源加速下载:PyTorch-CUDA-v2.6环境部署最佳实践 在深度学习项目启动的前48小时里,有多少开发者真正把时间花在了模型设计上?更多时候,我们正卡在“pip install torch”命令行前,眼睁睁看着进度条以每秒几十KB的…

作者头像 李华
网站建设 2026/5/1 3:25:59

Elasticsearch设置密码最佳实践建议总结

Elasticsearch 密码安全实战:从零构建高可用、防泄露的生产级集群你有没有遇到过这样的场景?凌晨两点,运维告警突然炸响——Elasticsearch 集群 CPU 满载,日志索引被清空,屏幕上赫然写着:“Your data is en…

作者头像 李华
网站建设 2026/5/1 11:32:36

百度文心快码最新评测:功能、应用与实战全攻略-AI产品库

在智能化浪潮席卷各行各业的今天,编程作为数字世界的基石,也迎来了革命性变革。百度文心快码(Baidu Comate)作为国内领先的智能代码助手,正通过AI技术重塑开发工作流。本文将全面解析文心快码的功能特点、使用方法、竞…

作者头像 李华
网站建设 2026/5/1 6:04:26

PyTorch-CUDA-v2.6镜像中使用Fairscale进行模型并行训练

PyTorch-CUDA-v2.6镜像中使用Fairscale进行模型并行训练 在现代深度学习实践中,一个再熟悉不过的场景是:你刚写完一个结构复杂的Transformer模型,信心满满地启动训练,结果几秒后显存直接爆掉——CUDA out of memory。更糟的是&…

作者头像 李华
网站建设 2026/5/2 14:15:51

一文说清Keil中文注释乱码的字符集处理机制

深入理解Keil中文注释乱码:字符编码的“隐形战场”你有没有遇到过这样的场景?刚从同事那里拉下一份STM32驱动代码,满怀期待地在Keil里打开,结果满屏都是:// ģʼUART // ʹĬ一脸懵——这哪是注释,简直是加…

作者头像 李华