北邮数据库实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库实验报告(三)
:学号:班级:
1.用Transact-SQL语句、数据导入、SQL Server Management Studio(企业管
理器)输入的方法对所给定的8表的数据输入到数据库中。

自行决定每表的数据导入办法,但每种方法各针对二或三表。

●Transact-SQL语句:
导入department, student, student_course表。

insert into department
select*from
openrowset
('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:\课件\数据库
\database2.xls',department$);
insert into student
select*from
openrowset
('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:\课件\数据库
\database2.xls',student$);
insert into student_course
select*from
openrowset
('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:\课件\数据库
\database2.xls',student_course$);
●数据导入:
操作:选中数据库studentsdb,右键-任务-导入数据。

导入book, class, course表。

SQL Server Management Studio:
操作:右键需要编辑的表,选择编辑前200行。

T eacher:
T eacher_course_class:
导入结果:
Book:
Course:
Department:
Student_course:
T eacher:
T eacher_course_class:
2.用Transact-SQL向Course表中插入一条记录,course_name为空,看运行
的结果。

SQL语句:
INSERT INTO course
VALUES('dep02_s002',
null,
'dep02_s002',
'72',
'5',
'4');
运行结果:
分析:course_name有not null的约束,因此这条语句不能执行。

3.用Transact-SQL修改Course表中credit为5的记录,将其credit改为7,
credit小于4的改为2,看运行的结果。

SQL语句:
update course
set credit=7
where credit=5;
执行结果:
分析:约束C1指定了credit的围为1至6.
SQL语句:
update course
set credit=2
where credit<4;
执行结果:
4.删除一条学生记录,看运行结果,对运行结果进行分析。

SQL语句:
delete from student
where student_id='g9940201';
执行结果:
分析:因为有参照完整性约束,不能删除。

5.用Transact-SQL完成将编号为dep04_b001的课程的选修信息插入到一个新
的选课信息表中。

SQL语句:
Creat table student_course2(
course_id char(20),
student_id char(20)
grade int,
credit int,
semester int,
school_year char(20),
primary key(course_id,student_id));
insert into student_course2
select*from student_course
where course_id='dep04_b001';
执行结果:
6.用Transact-SQL完成删除单片机原理课程的选课信息,分析运行结果。

SQL语句:
delete from student_course
where course_id in(select course_id from course
where course_name='单片机原理')
执行结果:
分析:所有课程号为dep04_s003的课程被删除。

本实验中遇到的问题和解决方法:
本实验的顺利完成需要预先作很多准备工作。

以下就是我在遇到缺少组件access database engine时的解决过程的记录。

Access Database Engine 的安装
access database engine用于和office连接,导入导出数据,本实验中需要导入excel文件。

安装配合office的版本,我安装的是access database engine 2017(English)版本。

安装32位版本,因office2016是32位。

之前误操作安装了不能使用的老旧版本access database engine 2007,通过控制面板-应用程序卸载将其卸载了。

安装access database engine依然报错,是因为microsoft office click to run 阻碍sql server的一些功能,需要将其卸载。

这是微软推出的用于减少office打开速度的应用程序,安装office2016时会自动安装上,原理是开机时将一部分容放到存中,因此打开文件时会更快一些。

检测自己的office是通过click to run 还是MSI安装的,可以在word中点击文件-账户,查看产品信息,如果有下图中“office更新”这个选项,则说明安装
过click to run。

这个程序在控制面板-应用程序中找不到,因此用删除注册表的方式卸载。

快捷键“win+R”输入“regedit”打开注册表编辑器,左边HKEY_CLASSES_ROOT-Installer-Product-00006开头的选项,有四个。

单击这几个选项,在右侧查看详细信息,可以看到ProductNam是Microsoft Access database engine 2007(我原来误安装的老版本)。

删除之前先备份注册表。

方法一:选中要删除的文件,右键-导出,保存。

只保存了要删除的文件。

方法二:注册表编辑器,文件-导出,保存。

保存了注册表所有信息。

这是因为如果误删了重要文件会导致严重后果,可能需要重装系统,留此备份是为了可以恢复系统。

备份完之后,选中要删除的文件(00006开头的四个),右键-删除即可。

回到Access database engine 32位的程序安装包,安装。

我无法安装64位,可能是因为office是32位。

安装成功之后就可以在sql server中导入excel文件了。

相关文档
最新文档