数据库和表的创建与管理
一.实验内容、步骤以及结果
1.利用图形用户界面连接数据库。
例如:MySQL Workbench或者HeidiSQL
2.利用命令行连接数据库。
3.利用图形用户界面创建、备份、删除和还原数据库和数据表。
(1) 创建SPJ_MNG数据库。
(2) 在SPJ_MNG数据库中创建以上四张表(只输入一部分数据示意即可)。
(3) 导出数据库SPJ_MNG为一个SQL文件。
提示:MySQL WorkBench中左上方导航区,选择Administration → Data Export。选中需要导出的数据库,设置相关参数,进行导出。
(4) 删除已经创建的供应情况表(SPJ表)。
(5) 删除SPJ_MNG数据库。
(6) 利用(3)中备份过的SQL文件还原刚才删除的SPJ_MNG数据库。
提示:MySQL WorkBench中选择Administration →Data Import/Restore。首先新建数据库SPJ_MNG,然后选中备份文件所在的文件夹,开始导入。注意备份和还原需要使用相同的格式形式,即都使用文件夹或都是用文件格式。
(7)修改S表,增加一个联系电话的字段STEL,数据类型为字符串类型,并修改S表中SNO允许的字符串最大长度。
(8)了解MySQL 的物理存储文件,查看本机MySQL服务安装目录下(如默认安装C:\ProgramData\MySQL\MySQL Server 8.0\Data)的数据文件。尝试分别按照InnoDB和MyISAM不同的存储引擎创建表,观察并说明物理存储文件差异。
修改表j的存储引擎为MyISAM
差异:
InnoDB 支持事物,是事物安全的,提供行级锁和外键约束,有缓冲池,用于缓冲数据和索引。
MyiSAM不支持事物,不支持外键约束,不支持行级锁,操作时需要锁定整张表,不过会保存表的行数,执行较快。
4. 利用命令行创建、备份、删除和还原数据库和数据表。
(1)用SQL语句创建数据库Student。
(2)用SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要有主键约束即可,不要其他约束。不用输入数据。
实验过程中忘记添加主键约束,应改为SNO INT primary key,
其他同
Ps:建表前记得use student指定数据库
(3) 备份数据库Student,并比较不同参数下的不同的备份文件差异。
mysqldump -h localhost -u root -p student > d:\s1.sql备份了结构和数据
mysqldump -h localhost -u root -p
--no-data --databases student > d:\s2.sql只备份结构,不备份数据
(4) [endif]用SQL语句删除创建的表。
(5) [endif]用SQL语句删除创建的数据库。
(6) 用SQL语句利用(3)中的备份文件还原student数据库。
(7) 修改S表,增加一个联系电话的字段STEL,数据类型为字符串类型,并修改S表中SNO允许的字符串最大长度。
增加联系电话字段STEL
alter table sadd stel TINYTEXT;
(这个忘记截图了)
(8)查看mysqldump 生成的SQL文件中的定义数据库或表的SQL脚本,对比自动生成的脚本和自己写的SQL语句的异同点。
脚本自动生成:
自己写的SQL语句(命令行)
MySQL dump生成的SQL文件中的SQL脚本解释性语言较多,并且会在每一个建表语句之前删除同名表等,sql语句编写较为完整,逻辑缜密。
二.实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)
1. MySQL ERROR 1170错误:BLOB/TEXT column used in key specification without a key length
分析:MySQL 只能索引 BLOB 或 TEXT字段的前 N 个字符。因此这个错误主要发生在 TEXT或 BLOB 类型的字段或一些属于 TEXT或 BLOB 类型的字段中,比如TINYTEXT,MEDIUMTEXT,LONGTEXT,TINYBLOB,MEDIUMBLOB和 LONGBLOB 这些类型中。
该情况设JNO为TINYTEXT引发错误。
结果:改为VARCHAR(8)后运行成功
补充:
2.由于路径中有中文引起的报错,该问题需要修改用户名并重新配置注册表,由于疫情封校,担心自己弄坏了系统无法修复,所以该小结在同学电脑中完成
参考链接:
(41条消息) 8、MySQLWorkbench导入数据库提示Failedto open required defaults file:xxx.cnf_怎么追摩羯座的博客-CSDN博客
3.补充:之前有安装过MySQL,太久没使用忘记密码可以用如下方法解决
https://blog.csdn.net/qq_45890970/article/details/122944537?spm=1001.2014.3001.5502