北邮 大三下 数据库实验六 mysql版本
北京邮电大学计算机学与技术大三数据库第9次实验报告

北京邮电大学实验报告课程名称数据库系统概念实验名称数据库备份与恢复实验_计算机_系_302_班姓名华逸群_计算机_系_302_班姓名魏乐业教师_叶文吴起凡_ 成绩_________2013年6月6日实验目的1.理解SQL SERVER数据库的数据备份和恢复机制。
2.掌握SQL SERVER数据库的数据备份和恢复的基本概念,例如备份方式(增量备份和完全备份)、备份介质(文件或者设备)等等。
3.掌握备份和恢复的实际操作,能够备份和将备份恢复,特别是能够恢复到一个新的数据库中。
4.理解备份/维护策略或备份/维护计划的概念。
实验环境采用SQL SERVER数据库管理系统作为实验平台。
其中,SQL SERVER数据库可以采用SQL SERVER 2005、2008或2012的企业版。
备份(Backup)和恢复(Restore)为最强有力的恢复手段,它不仅仅应用于保护数据库,而是应用于保护一切信息:我们对于操作系统或者其它各种信息(诸如多媒体文件)等都可以进行备份,待事故时进行恢复。
由于硬件故障、用户错误、应用程序故障、软件故障、某用户拥有过多权限、局部灾难等可能导致数据库故障,所以DBA(数据库管理员)必须在平时做好备份工作,而且因为故障发生时刻是未知的,还必须做多个备份,从而可以恢复到故障前尽可能短时间的数据库状态以减少损失。
DBA必须做好备份/恢复计划,并实际验证之,以确保故障时能够恢复数据库。
实验内容与步骤一、校验数据库在执行数据库备份之前,首先必须保证数据库的一致性。
这里最重要的工具是:DBCC。
可以用两种方法运行DBCC:通过命令行窗口或查询分析器(Query Analyzer)窗口。
如果你认为必要,你还可以确定其操作的时间。
(我从未感到有必要这样做,因为在微软的所有产品中,我对SQL Server的稳定性最为自信。
我认为它是雷蒙德推出的最佳产品。
但是,感觉也可能出错。
)DBCC命令包括以下扩展:CheckDB:检测整个数据库的一致性,是检查数据库破坏的基本方法。
数据库原理实验报告(Mysql)

实验项目列表实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。
二、实验环境:硬件:PC机软件:Windows操作系统、 MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面;2、利用图形界面建立基础表:student表的信息:Sage smallint 6Sdept varchar 20course表的信息:字段名类型长度约束条件Cno varchar 4 非空、主键Cname varchar 40Cpno varchar 4 与course表中Cno关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar 9 非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4 非空、主键、与course表中Cno外键关联Grade smallint 6(1)、连接数据库,在localhost中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。
北邮大三下数据库实验五mysql版本

北邮⼤三下数据库实验五mysql版本实验报告学院:计算机学院课程名称:数据库系统实验名称:实验五数据库完整性与安全性实验班级:2009211311姓名:schnee学号:实验五数据库完整性与安全性实验1.实验⽬的通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现⽅法,加深对数据完整性的理解。
通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现⽅法,加深对数据库安全性的理解。
2.实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
硬件:容量⾜以满⾜MySQL 5.5安装及后续实验的使⽤。
软件:数据库版本:MySQL 5.53.实验内容及过程3.1.完整性实验3.1.1.分别定义学⽣数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;其实在导⼊txt数据时,我已经定义了各个基表的主键。
CREATE TABLE sc (sno varchar(6) NOT NULL,cno varchar(3) NOT NULL,grade int(11) DEFAULT NULL,PRIMARY KEY (sno,cno)) DEFAULT CHARSET=gbk;Create Table student (sno varchar(6) NOT NULL,sname varchar(6) DEFAULT NULL,sex varchar(2) DEFAULT NULL,bdate datetime DEFAULT NULL,dept varchar(8) DEFAULT NULL,classno varchar(3) DEFAULT NULL,PRIMARY KEY (sno)) DEFAULT CHARSET=gbk;Create Table course (cno varchar(3) NOT NULL,cname varchar(12) DEFAULT NULL,lhour int(11) DEFAULT NULL,credit int(11) DEFAULT NULL,semester varchar(2) DEFAULT NULL,PRIMARY KEY (cno)) DEFAULT CHARSET=gbk;不过为了进⼀步熟悉主键的操作。
北邮 大三下 数据库实验六 mysql版本

实验报告学院:计算机学院课程名称:数据库系统实验名称:实验六数据查询分析实验班级:2009211311姓名:schnee学号:实验六数据查询分析实验1.实验目的通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解MySQL Server 5.5中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。
2.实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
软件:数据库版本:MySQL 5.53.实验内容及过程3.1.索引对查询的影响3.1的四个小题,由于MySQL没有聚集索引与非聚集索引之分,所以无法验证,直接给出讨论结果。
3.1.1.对结果集只有一个元组的查询分三种情况进行执行(比如查询一个具体学生的信息),用查询分析器的执行步骤和结果对执行进行分析比较。
3.1.1.1.不建立索引,在student表中查询学号为“31427”的学生登录mysql后输入set profiling=1;然后执行语句,则show profiles就显示出来之前输入的命令的执行时间。
如果查询细节的话则show profile for query 2; 2即语句的顺序。
详见截图,则执行时间约为60毫秒:详细的select * from student where sno=’31427’;的执行细节则为:3.1.1.2.在学号上建立非聚集索引3.1.1.3.在学号上建立聚集索引先解释下索引。
索引用来快速地寻找那些具有特定值的记录,所有MySQL 索引都以B-树的形式保存。
如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。
表里面的记录数量越多,这个操作的代价就越高。
如果作为搜索条件的列上已经创建了索引,MySQL 无需扫描任何记录即可迅速得到目标记录所在的位置。
聚集索引又叫主索引,其索引的排序方式和正文的排序方式一致。
大学生数据库实验课实验六报告

《数据库技术及应用》实验六、SQL数据查询语言 DQL学生姓名学生班级学生学号指导老师一.实验内容本次实验用于了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。
实验步骤:执行以下内容1. 启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。
用Create Table建立Student表、Course表和Choose表:(建表语句并非本次重点略)2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:1中的截图就是已经运行这些语句后截图的结果。
3. 用SELECT语句,查询计算机学院学生的学号和姓名。
4.用between…and…表示查询条件,查询年龄在20~23岁的学生信息。
5. 用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
6.用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose 表中C1课程的最高分、最低分、总分、平均分。
7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
8. 查询学生的学号、姓名、选修的课程名及成绩。
9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号12. 用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。
二.遇到的问题&解决在步骤10的嵌套查询中因为多个表中存在同名列,而我的语句指代不明一直错误,在老师的帮助下发现了这个问题并解决。
北邮大三下第2次数据库实验报告--kingbase数据库的建立

1 实验二数据库表/视图的创建与维护实验一、实验内容1、数据库表实验:(1)创建数据库表创建学生选课数据库中所包含的数据库表,数据库表结构如下:学生(学号,姓名,性别,年龄,系别,班级)课程(课程编号,课程名称,学分)选修(学号,课程编号,学生成绩)要求为各数据库表属性选择合适的数据类型。
列名、数据类型(长度列、精度、小数位数项)、是否允许空值等。
(2)查看和修改表结构。
选择一个数据库表,练习对其表结构进行相应的修改。
(3)练习用交互式的SQL语句分别完成以上操作。
(4)对学生数据库中的三张表分别插入数据;(5)对表中的数据进行修改;(6)对表中的数据进行删除操作2、视图实验:视图的建立、修改、删除(1)建立如下视图:学生选修课程信息视图,包括以下内容:学生学号、姓名、所在系、选修的课程编号、课程名称、成绩(2)修改以上视图,增加学生所在班级信息。
(3)对以上视图删除。
二、实验要求(1)用交互式语句完成以上操作;(2)能够对整个的过程进行批命令操作;(3)要求学生独立完成以上内容。
(4)根据以上内容确定实验步骤。
(5)实验完成后完成要求的实验报告内容。
三、实验平台及环境Windows7 系统Kingbase ES V7软件平台四、实验步骤及结果分析1、数据库表实验:2 (1)创建数据库表创建学生选课数据库中所包含的数据库表,数据库表结构如下:学生(学号,姓名,性别,年龄,系别,班级)课程(课程编号,课程名称,学分)选修(学号,课程编号,学生成绩)创建“学生选课”数据库sql代码Create database “学生选课” withEncoding =’GBK’;创建“学生选课系统”模式:Create shema “学生选课系统”;在“学生选课系统”模式中建立表格“学生”:create table "学生选课系统"."学生”("学号" varchar(10) notnull,“姓名”varchar(10) notnull,“年龄”numeric(1,0) notnull,“系别”varchar(20) notnull,“班级” char (10) notnull,primary key ("学号"));(2)查看和修改表结构。
北邮 大三下 数据库实验七 mysql版本

实验报告学院:计算机学院课程名称:数据库系统实验名称:实验七数据库的事务创建与运行实验班级:2009211311姓名:schnee学号:实验七数据库的事务创建与运行实验1.实验目的通过实验,了解mysql数据库系统中各类数据库事务的定义机制和基于锁的并发控制机制,掌握mysql数据库系统的事务控制机制。
2.实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
软件:数据库版本:MySQL 5.53.实验内容及过程3.1.定义三种模式的数据库事务事务是由相关操作构成的一个完整的操作单元。
两次连续成功的COMMIT或ROLLBACK之间的操作,称为一个事务。
对数据库所做的一系列修改,在修改过程中,暂时不写入数据库,而是缓存起来,用户在自己的终端可以预览变化,直到全部修改完成,并经过检查确认无误后,一次性提交并写入数据库,在提交之前,必要的话所做的修改都可以取消。
提交之后,就不能撤销,提交成功后其他用户才可以通过查询浏览数据的变化。
事务的特点ACID:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
一个有效的事务处理系统必须满足相关标准。
●原子性:一个事务必须被视为一个单独的内部“不可分”的工作单元,以确保整个事务要么全部执行,要么全部回滚。
●一致性:数据库总是从一种一致性状态转换到另一种一致性状态。
●隔离性:某个事务的结果只有在完成之后才对其他事务可见。
在上述例子中,当数据库执行完insert语句,还未执行delete语句时,如果此时另一个客户端对数据库的访问也同时运行,它将仍视符合条件的记录在b表中。
●持久性:一旦一个事务提交,事务所做的数据改变将是永久的。
3.1.1.显式事务显式事务,由用户指定,允许用户决定哪批工作必须成功完成,否则所有部分都不完成。
操作包括start transaction, rollback, commit。
2023年北邮大三下第次数据库实验报告

试验三数据查询试验一、试验内容(1)数据库关系表查询:(2)简朴旳查询操作, 包括单表旳查询、选择条件、成果排序等旳练习;(3)多表旳连接查询, 包括等值连接、自然连接等;(4)复杂旳查询操作, 包括使用分组函数等库函数旳查询操作;(5)练习带有IN、比较符旳嵌套查询。
二、试验规定(1)用SQL语句完毕以上操作(2)规定学生独立完毕以上内容。
(3)试验完毕后完毕规定旳试验汇报内容。
三、试验环境Windows 7系统Kingbase数据库管理平台四、试验环节及成果分析1.在简朴查询试验中, 在sql语句完毕如下查询操作:(1)查询“数据库原理”课程旳学分;select creditfrom coursewhere cname='数据库原理'(2)查询选修了课程编号为“C01”旳学生旳学号和成绩, 并将成绩按降序输出;select sno,gradefrom scwhere cno='C01'order by grade desc(3)查询学号为“31401”旳学生选修旳课程编号和成绩;select cno,gradefrom scwhere sno='31401'(4)查询选修了课程编号为“C01”且成绩高于85分旳学生旳学号和成绩。
select sno,gradefrom scwhere cno='C01' and grade>852.在多表连接旳查询试验中, 在SQL SERVER提供旳交互式语言环境下用Transact SQL语句完毕如下查询操作:(1)查询选修了课程编号为“C01”且成绩高于85分旳学生旳学号、姓名和成绩;select sc.sno,student.sname,sc.gradefrom student,scwhere o='C01' and sc.grade>85 and student.sno=sc.sno(2)查询所有学生旳学号、姓名、选修旳课程名称和成绩;select student.sno,student.sname,ame,sc.gradefrom student,course,scwhere o=o and sc.sno=student.sno3.在复杂查询试验中, 用SQL语句完毕如下查询操作: (1)查询至少选修了三门课程旳学生旳学号和姓名;select student.sno,student.snamefrom student,scwhere student.sno=sc.snogroup by student.sno,student.snamehaving count(*)>2(2)查询所有学生旳学号和他选修课程旳最高成绩, 规定他旳选修课程中没有成绩为空旳。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告学院:计算机学院课程名称:数据库系统实验名称:实验六数据查询分析实验班级:2009211311姓名:schnee学号:实验六数据查询分析实验1.实验目的通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解MySQL Server 5.5中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。
2.实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
软件:数据库版本:MySQL 5.53.实验内容及过程3.1.索引对查询的影响3.1的四个小题,由于MySQL没有聚集索引与非聚集索引之分,所以无法验证,直接给出讨论结果。
3.1.1.对结果集只有一个元组的查询分三种情况进行执行(比如查询一个具体学生的信息),用查询分析器的执行步骤和结果对执行进行分析比较。
3.1.1.1.不建立索引,在student表中查询学号为“31427”的学生登录mysql后输入set profiling=1;然后执行语句,则show profiles就显示出来之前输入的命令的执行时间。
如果查询细节的话则show profile for query 2; 2即语句的顺序。
详见截图,则执行时间约为60毫秒:详细的select * from student where sno=’31427’;的执行细节则为:3.1.1.2.在学号上建立非聚集索引3.1.1.3.在学号上建立聚集索引先解释下索引。
索引用来快速地寻找那些具有特定值的记录,所有MySQL 索引都以B-树的形式保存。
如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。
表里面的记录数量越多,这个操作的代价就越高。
如果作为搜索条件的列上已经创建了索引,MySQL 无需扫描任何记录即可迅速得到目标记录所在的位置。
聚集索引又叫主索引,其索引的排序方式和正文的排序方式一致。
每个表只能有一个聚集索引,因为目录只能按照一种方法进行排序。
用聚合索引比用不是聚合索引的主键速度快;用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下。
相对应的,非聚集索引也叫辅助索引。
当数据量很小的时候,用聚集索引作为排序列要比使用非聚集索引速度快得明显的多;而数据量如果很大的话,如10万以上,则二者的速度差别不明显。
此外,聚集索引插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入)。
但是查询数据比非聚集数据的速度快。
由于学号是student的主键,所以根据以上分析,我们可以知道,当只有一个查询结果时,这三种方法的快慢排序为:非聚集索引快于聚集索引快于无索引。
(附:同学在SQL Server下测试的执行时间结果为1ms : 2ms : 21ms)3.1.2.对结果集中有多个元组的查询(例如查看某门成绩的成绩表,在此,以查看sc表的“C01”成绩为例)分类似3.1.1的三种情况进行执行比较。
对于有多个元组的查询情况,差别不如3.1.1那么明显。
三种情况差别都不大。
不过,还是聚集索引快于非聚集索引快于无索引。
(附:同学在SQL Server下测试的执行时间结果为26ms : 29ms : 32ms)3.1.3.对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况,在此以查询sc表中学号在’31404’和’31420’之间的学生的学号和课程号为例)分类似3.1.1.的三种情况进行执行比较,注意系统处理的选择。
对于查询条件为一个连续的范围的查询的情况,非聚集索引与无索引差别不是很大,不过聚集索引明显会快很多。
总体上,还是聚集索引快于非聚集索引快于无索引。
(附:同学在SQL Server下测试的执行时间结果为11ms : 26ms : 29ms)3.1.4.索引代价。
在有索引和无索引的情况下插入数据(例如在选课情况表SC上插入数据),比较插入的执行效率。
并非所有的情况索引都是会使速度变快的,比如我们往sc表里插入一条记录(‘001’,’C01’,’100’),同学在SQL Server下测试的执行时间结果为无索引用时2ms ,但是有索引38ms!!!慢了非常多!3.2.对相同查询功能不同查询语句的执行比较分析3.2.1.比较有和没有group by的查询效率并分析。
(1)select avg(grade)from scgroup by cnohaving cno=’C01’;(2)select avg(grade)from scwhere cno=’C01’;运行时间如下图,我们看到有group by的用时(即查询2)为0.00014225s,而没有group by(即查询3)的用时为0.00012725s,也就是在此例子里没有group by会稍快一点。
我们查看具体执行情况,发现差别最大的是checking permissions 0.00036 : 0.00011。
3.2.2.比较以下两个查询,重写后的查询一定比原始查询更优吗,通过执行分析结果。
(1)select sno, sname, bdatefrom student s1where bdate=(select max(bdate)from student s2where s1.dept=s2.dept);(2)create table tmp as(select dept, max(bdate) as maxBdatefrom studentgroup by dept);select sno, sname, bdatefrom student, tmpwhere student.bdate=tmp.maxBdate and tmp.dept=student.dept;drop table tmp;如下面的截图所示,我们可以看到没有重写时用时为0.02123850s。
而重写用时为0.00326500s,如果加上创建table用时0.19003250和删除tmp 用时0.08236775,则总共用时为0.27566525s。
可见重写后,单纯的查询会比没重写的查询用时要少很多。
甚至差了一个数量级。
但是,如果没有对这个新的表进行多次相关的查询的话,那么建表时间会使得这个优化得不偿失。
3.2.3.比较以下两个语句的效率,并分析(1)select sname, bdate from studentwhere dept!=’计算机’ and bdate>all(select bdate from student where dept=’计算机’);(2)select sname, bdate from studentwhere dept!=’计算机’ and bdate>(select max(bdate) from student where dept=’计算机’);当查询结果为空集时运行时间比较为0.06770325 : 0.00056675很明显的第二个语句要快于第一个语句。
甚至差别两个数量级!!现在我们插入一行使查询结果不为空,然后再次执行比较。
这次的查询结果为执行时间比较如下图,可见这次的执行时间虽然还是第二个语句快于第一个语句,但是相差不大。
3.3.查询优化除了建立适当索引,对SQL 语句重写外,还有其他手段来进行查询调优,例如调整缓冲区大小,事先建立视图等。
设计实现下列查询,使之运行效率最高。
写出你的查询形式,以及调优过程;并说明最优情况下的运行时间。
下面先列出各种查询形式,最后再列表比较分析。
3.3.1.查找选修了每一门课的学生,其成绩等于该课程的平均分。
先按照课程升序排序,再按照学号升序排序。
3.3.1.1.事先建立table的方法(1)事先建立表格create table tmp as(select avg(grade) as Avggrade, cno from scgroup by cno);这样得出的平均分是浮点数,查询时结果为空集。
(2)按照课程号排序查询select sc.sno, o, sc.gradefrom sc, tmpwhere sc.grade=tmp.Avggrade and o=oorder by cno;(3)按照学号排序查询select sc.sno, o, sc.gradefrom sc, tmpwhere sc.grade=tmp.Avggrade and o=oorder by sno;(4)建立四舍五入的平均分表的情况由于上面的查询结果是空集,所以我们重新建一个tmp,看看结果非空集的情况。
create table tmp as(select round(avg(grade)) as Avggrade, cno from scgroup by cno);建表用时为:这次的查询结果为:再次执行上面两种查询,这次的执行时间为:3.3.1.2.嵌套子查询(1)有查询结果且按课程号排序(2)有查询结果且按学号排序(3)查询结果为空集且按课程号排序(4)查询结果为空集且按学号排序详细SQL语言见截图。
具体执行时间也见截图。
3.3.1.3.列表比较,分析说明从上表可以看出,在有查询结果时,事先建表的方法会比嵌套子查询的方法快很多,查询结果为空集时则不是很明显。
而在几种情况下,按照sno排序都会比cno排序快。
无论查询结果为不为空,最快的方法都是:按照sno排序并事先建表查询。
3.3.2.查找至少选修了课程数据库原理和操作系统的学生的学号3.3.2.1.事先创建table总用时0.17416900 。
3.3.2.2.事先创建view总用时0.2110865009211311班3.3.2.3.清空缓存后事先创建table总用时0.087030003.3.2.4.清空缓存后事先创建view总用时0.07798475table和view的差别不大,但是清空缓存会比不清空缓存快得多。
注:在此,只是用重启mysql的方式清空缓存。
用dbcc清空缓存的方法虽然在SQL Server使用顺利,但是在mysql中却出错了。
4.实验小结实验中遇到的问题:实验中,由于MySQL本身的问题导致纠结了很久。
比如MySQL不支持聚集索引和非聚集索引,导致第一题没法完成,而只能通过同学电脑上的SQL Server的运行结果来分析。
再比如,第三题查询优化部分,有不少语句(比如复杂查询的with语句)MySQL也不支持,导致只能通过建立视图或是新table来实现,实验的方案不是那么丰富,没能从更多的方案来优化效率。
实验心得:虽然实验过程中也遇到了不少问题,但是最终都得到了一定的解决或是解释。