《北邮数据库实验报告(3).doc》由会员分享,可在线阅读,更多相关《北邮数据库实验报告(3).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-/数据库实验报告(三)姓名: 学号: 班级: 1. 用Transact-SQL语句、数据导入、SQL Server Management Studio(企业管理器)输入的方法对所给定的8张表的数据输入到数据库中。自行决定每张表的数据导入办法,但每种方法各针对二或三张表。l Transact-SQL语句:导入department, student, student_course表。insert into departmentselect * fromopenrowset(microsoft.jep.oledb.4.0,excel 5.0;hdr=yes;database=D:课件数据库data
2、base2.xls,department$);insert into studentselect * fromopenrowset(microsoft.jep.oledb.4.0,excel 5.0;hdr=yes;database=D:课件数据库database2.xls,student$);insert into student_courseselect * fromopenrowset(microsoft.jep.oledb.4.0,excel 5.0;hdr=yes;database=D:课件数据库database2.xls,student_course$);l 数据导入:操作:选中数
3、据库studentsdb,右键-任务-导入数据。导入book, class, course表。l SQL Server Management Studio:操作:右键需要编辑的表,选择编辑前200行。Teacher:Teacher_course_class:导入结果:Book:Class:Course:Department:Student:Student_course:Teacher:Teacher_course_class:2. 用Transact-SQL向Course表中插入一条记录,course_name为空,看运行的结果。SQL语句:INSERT INTO courseVALUES(d
4、ep02_s002, null, dep02_s002, 72, 5, 4);运行结果:分析:course_name有not null的约束,因此这条语句不能执行。3. 用Transact-SQL修改Course表中credit为5的记录,将其credit改为7, credit小于4的改为2,看运行的结果。SQL语句:update courseset credit=7where credit=5;执行结果:分析:约束C1指定了credit的范围为1至6.SQL语句:update courseset credit=2where credit4;执行结果:4. 删除一条学生记录,看运行结果,对运行
5、结果进行分析。SQL语句:delete from studentwhere 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);
6、 insert into student_course2select * 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的课程被删除。本实验中遇到的问题和解决方法:本实验的顺利完成需要预先作很多准备工作
7、。以下就是我在遇到缺少组件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依然
8、报错,是因为microsoft office click to run阻碍sql server的一些功能,需要将其卸载。这是微软推出的用于减少office打开速度的应用程序,安装office2016时会自动安装上,原理是开机时将一部分内容放到内存中,因此打开文件时会更快一些。检测自己的office是通过click to run 还是MSI安装的,可以在word中点击文件-账户,查看产品信息,如果有下图中“office更新”这个选项,则说明安装过click to run。这个程序在控制面板-应用程序中找不到,因此用删除注册表的方式卸载。快捷键“win+R”输入“regedit”打开注册表编辑器,
9、左边HKEY_CLASSES_ROOT-Installer-Product-00006开头的选项,有四个。单击这几个选项,在右侧查看详细信息,可以看到ProductNam是Microsoft Access database engine 2007(我原来误安装的老版本)。删除之前先备份注册表。方法一:选中要删除的文件,右键-导出,保存。只保存了要删除的文件。方法二:注册表编辑器,文件-导出,保存。保存了注册表所有信息。这是因为如果误删了重要文件会导致严重后果,可能需要重装系统,留此备份是为了可以恢复系统。备份完之后,选中要删除的文件(00006开头的四个),右键-删除即可。回到Access database engine 32位的程序安装包,安装。我无法安装64位,可能是因为office是32位。安装成功之后就可以在sql server中导入excel文件了。