广东工业大学广东数据库原理实验报告_第1页
广东工业大学广东数据库原理实验报告_第2页
广东工业大学广东数据库原理实验报告_第3页
广东工业大学广东数据库原理实验报告_第4页
广东工业大学广东数据库原理实验报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..数据库原理实验报告学院计算机专业_____计算机科学与技术班级______7班学号3110006131姓名陈日燊指导教师明俊峰〔20XX11月计算机学院计科专业07班学号:3110006131姓名:陈日燊协作者:________教师评定:实验__一__题目__数据库及基本表的建立实验__二__题目__设计数据完整性__实验_三__题目__查询数据库_实验_四_题目__创建和使用视图、索引、存储过程实验平台:实验一数据库及基本表的建立一、实验目的1、掌握SQLSERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器〔EnterpriseManager创建数据库;2、使用SQL语句、企业管理器〔EnterpriseManager创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows2000/xp;2.数据库管理系统:SQLsever2000/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。创建:student表<学生信息表>、course表〔课程信息表>、teacher表〔教师信息表>、student_course表〔学生选课成绩表>、teacher_course表〔教师上课课表等。题目1、创建数据库:实现代码及截图:查询分析器执行情况:SQL语句及执行结果显示CREATEDATABASESCON<NAME=SC_DAT,FILENAME='E:\SC.mdf',SIZE=30MB,FILEGROWTH=20%>LOGON<NAME=SC_LOG,FILENAME='E:\SC.ldf',SIZE=2MB,FILEGROWTH=1MB>实验结果截图显示题目2、创建基本表创建各表的实现代码及截图:创建student表字段名代码类型约束学号s_nochar<8>主键姓名snamechar<8>非空性别sexchar<2>出生日期sbirthdaySmalldatetime学生所在院系编号dnochar<6>外键专业代码spnochar<8>外键班级编码class_nochar<4><2>创建Course表字段名代码类型约束课程编号cnochar<10>主键课程名称cnamechar<20>非空专业代码spnochar<8>外键课程类型编号ctnotinyint理论学时lecturetinyint实验学时experimenttinyint开课学期semestertinyint课程学分credittinyint〔3创建student_course表字段名代码类型约束学号s_nochar<8>主键,与student表中s_no外键关联,级联删除上课编号tcidsmallint主键学生成绩scoretinyint<4>创建teacher表字段名代码类型约束教师编号t_nochar<8>主键教师姓名t_namechar<8>非空性别t_sexchar<2>出生日期t_birthdaysmalldatetime教师所在院系编号dnochar<6>外键职称tech_titlechar<10><5>创建系部表<department>字段名代码类型约束院系编号dnochar<6>主键院系名称dept_namechar<20>非空院系负责人headerchar<8><6>创建专业信息表<speciality>字段名代码类型约束专业代码spnochar<8>主键院系编号dnochar<6>外键,非空专业名称spnamechar<20>非空<7>创建teacher_course表字段名代码类型约束上课编号tcidsmallint主键教师编号t_nochar<8>外键专业代码spnochar<8>外键班级编码class_nochar<4>课程编号cnochar<10>非空,外键学期semesterChar<6>学年schoolyearChar<10><8>创建班级表<class>字段名代码类型约束专业代码spnochar<8>主键,与speciality表中spno外键关联,班级编码class_nochar<4>主键,班负责人headerchar<8>查询分析器执行情况:SQL语句及执行结果显示CREATETABLEdepartment<dnoCHAR<6>PRIMARYKEY,dept_nameCHAR<20>NOTNULL,headerCHAR<8>>;执行结果:命令已成功完成。CREATETABLEspeciality<spnoCHAR<8>PRIMARYKEY,dnoCHAR<6>NOTNULL,FOREIGNKEY<dno>REFERENCESdepartment<dno>,spnameCHAR<20>NOTNULL>;执行结果:命令已成功完成。CREATETABLEstudent<s_noCHAR<8>PRIMARYKEY,snameCHAR<8>NOTNULL,sexCHAR<2>,sbirthdaySmallint,dnoCHAR<6>,FOREIGNKEY<dno>REFERENCESdepartment<dno>,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>>;执行结果:命令已成功完成。CREATETABLEcourse<cnoCHAR<10>PRIMARYKEY,cnameCHAR<20>NOTNULL,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint>;执行结果:命令已成功完成。CREATETABLEstudent_course<s_noCHAR<8>,CONSTRAINTHLMFOREIGNKEY<s_no>REFERENCESstudent<s_no>,tcidsmallint,PRIMARYKEY<s_no,tcid>,scoretinyint>;执行结果:命令已成功完成。CREATETABLEteacher<t_noCHAR<8>PRIMARYKEY,t_nameCHAR<8>NOTNULL,t_sexCHAR<2>,t_birthdaySmallint,dnoCHAR<6>,FOREIGNKEY<dno>REFERENCESdepartment<dno>,tech_titleCHAR<10>>;执行结果:命令已成功完成。CREATETABLEteacher_course<tcidsmallintPRIMARYKEY,t_noCHAR<8>,FOREIGNKEY<t_no>REFERENCESteacher<t_no>,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>,cnoCHAR<10>NOTNULL,FOREIGNKEY<cno>REFERENCEScourse<cno>,semesterCHAR<6>,schoolyearCHAR<10>>;执行结果:命令已成功完成。CREATETABLEclass<spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>,PRIMARYKEY<spno,class_no>,headerCHAR<8>>;实验结果截图显示Department表:Speciality表:Student表:Course表:student_course表:Teacher表:teacher_course表:Class表:题目3、查看各数据表之间的关系,生成数据库关系图。生成数据库关系图截图显示题目4、利用查询分析器修改上述各表。<1>、用INSERT语句向各个表中插入数据录入5条记录。录入时注意体会外键约束。实现代码及截图:查询分析器执行情况:SQL语句及执行结果显示向DEPARTMENT表添加5条记录USESCGOINSERTINTODEPARTMENTVALUES<'01','计算机学院','小明'>INSERTINTODEPARTMENTVALUES<'02','信息工程学院','小智'>INSERTINTODEPARTMENTVALUES<'03','外国语学院','小天'>INSERTINTODEPARTMENTVALUES<'04','艺术学院','小唯'>INSERTINTODEPARTMENTVALUES<'05','数学学院','小野'>向TEACHER表添加5条记录INSERTINTOTEACHERVALUES<'js01','刘德华','男','1978-02-25','01',NULL>;INSERTINTOTEACHERVALUES<'js02','黎明','男','1982-05-15','02',NULL>;INSERTINTOTEACHERVALUES<'js03','梅艳芳','女','1987-04-07','03',NULL>;INSERTINTOTEACHERVALUES<'js04','邓丽君','女','1985-07-08','04',NULL>;INSERTINTOTEACHERVALUES<'js05','张学友','男','1984-11-23','05',NULL>;向SPECIALITY表添加5条记录USESCGOINSERTINTOSPECIALITYVALUES<'zy01','01','计算机科学与技术'>;INSERTINTOSPECIALITYVALUES<'zy02','01','软件工程'>;INSERTINTOSPECIALITYVALUES<'zy03','01','网络工程'>;INSERTINTOSPECIALITYVALUES<'zy04','02','操作系统'>;INSERTINTOSPECIALITYVALUES<'zy05','03','大学英语'>;INSERTINTOSPECIALITYVALUES<'zy06','04','大学物理'>;INSERTINTOSPECIALITYVALUES<'zy07','05','离散数学'>;INSERTINTO向STUDENT表添加5条记录USESCGOINSERTINTOSTUDENTVALUES<'xh01','林俊杰','男','1991-05-01','01','zy01','0902'>;INSERTINTOSTUDENTVALUES<'xh02','陈奕迅','女','1991-07-10','04','zy06',NULL>;INSERTINTOSTUDENTVALUES<'xh03','柯南','男','1991-04-08','01','zy03','0901'>;INSERTINTOSTUDENTVALUES<'xh04','小纯一郎','男','1991-07-15','02','zy04',NULL>;INSERTINTOSTUDENTVALUES<'xh05','娜美','女','1994-03-26','04','zy06',NULL>;INSERTINTOSTUDENTVALUES<'xh06','周杰伦','男','1991-07-03','03','zy05','0905'>;INSERTINTOSTUDENTVALUES<'xh07','周迅','女','1986-03-11','05','zy07',NULL>;INSERTINTOSTUDENTVALUES<'xh08','小嶋阳菜','女','1988-04-19','03','zy05','0902'>;向COURSE表添加5条记录USESCGOINSERTINTOCOURSEVALUES<'kc01','数据库','zy01',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc02','图形学','zy01',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc03','C++编程','zy02',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc04','计算机网络','zy03',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc05','工程绘图','zy04',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc06','日语基础','zy05',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc07','绘图要领','zy06',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc08','离散数学','zy07',NULL,NULL,NULL,NULL,NULL>向CLASS表添加5条记录USESCGOINSERTINTOCLASSVALUES<'zy01','0902','小东'>;INSERTINTOCLASSVALUES<'zy02','0901','小莉'>;INSERTINTOCLASSVALUES<'zy03','0901','小红'>;INSERTINTOCLASSVALUES<'zy04','1003','小周'>;INSERTINTOCLASSVALUES<'zy05','0905','小陈'>;INSERTINTOCLASSVALUES<'zy06','0804','小天'>;INSERTINTOCLASSVALUES<'zy07','0904','小伟'>;向TEACHER_COURSE表添加5条记录USESCGOINSERTINTOTEACHER_COURSEVALUES<01,'js01','zy01','0902','kc01',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<02,'js02','zy04','1003','kc05',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<03,'js03','zy05','0905','kc06',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<04,'js04','zy06','0804','kc07',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<05,'js05','zy07','0904','kc08',NULL,NULL>向STUDENT_COURSE表添加5条记录USESCGOINSERTINTOSTUDENT_COURSEVALUES<'xh01',1,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh02',4,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh03',6,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh04',2,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh05',4,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh06',3,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh07',5,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh08',3,NULL>实验结果截图显示〔插入数据的表格共8组〔共8个表<2>、用UPDATE语句更改student表中数据;实现代码:查询分析器执行情况:SQL语句及执行结果显示USESCGOUPDATESTUDENTSETclass_no='0804'WHEREs_no='xh02'UPDATESTUDENTSETclass_no='1003'WHEREs_no='xh04'UPDATESTUDENTSETclass_no='0804'WHEREs_no='xh05'UPDATESTUDENTSETclass_no='0904'WHEREs_no='xh07'UPDATESTUDENTSETclass_no='0905'WHEREs_no='xh08'student表更改前后的内容截图显示执行前:执行后:<3>、用DELETE语句删除student表中数据;实现代码:查询分析器执行情况:SQL语句及执行结果显示事先插入了一条记录如右图所示删除记录代码:DELETEFROMSTUDENTWHEREs_no='xh09'student表更改前后的内容截图显示删除后五.实验中出现的问题及解决方案插入数据的时候各种约束条件要很仔细的看清楚然后才可以进行数据的插入六、思考题说明数据库中的表和数据文件的关系。答:表〔table为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。数据文件存放着在数据库中存储的数据,且一个数据库只有一个数据文件。表作为数据库中的数据存储单位,存储在数据文件中。数据库中的日志文件能否单独修改?答:可以。把对数据的修改写到数据库中和把表示这个修改的日子记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生某种故障,即这两个操作只完成了其中一个。所以,可以单独修改数据库中的日志文件而不一定会修改数据。实验二、设计数据完整性一、实验目的1、掌握使用约束实现数据完整性的方法;2、掌握使用触发器实现数据完整性的方法;二、实验内容和要求1、设置主键约束、设置唯一约束、设置外键约束、设置检查约束、设置默认值约束;2、使用企业管理器创建触发器、使用SQL语音创建触发器;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows2000/xp;2.数据库管理系统:SQLsever2000/2003/2005;四、实验方法、步骤及结果测试〔一、使用约束实现数据的完整性〔针对实验一中的所建的基本表定义:student表、course表、student_course表、teacher表、department表、speciality表、teacher_course表、class表的主键。写出相应的SQL语句。student表createtablestudent<s_nochar<8>,snamechar<8>notnull,sexchar<2>,sbirthdaysmalldatetime,dnochar<6>,spnochar<8>,class_nochar<4>,primarykey<s_no>>course表createtablecourse<cnochar<10>,cnamechar<20>notnull,spnochar<8>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint,primarykey<cno>>teacher表createtableteacher<t_nochar<8>,t_namechar<8>notnull,t_sexchar<2>,t_birthdaysmalldatetime,dnochar<6>,tech_titlechar<10>,primarykey<t_no>>teacher_course表createtableteacher_course<tcidsmallint,t_nochar<8>,spnochar<8>,class_nochar<4>,cnochar<10>,semesterchar<6>notnull,shcoolyearchar<10>,primarykey<tcid>>Student_course表createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyint,primarykey<s_no,tcid>,>Department表createtabledepartment<dnochar<6>,dept_namechar<20>notnull,headerchar<8>primarykey<dno>>Speciality表createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,primarykey<spno>>Class表createtableclass<spnochar<8>,class_nochar<4>,headerchar<8>,primarykey<spno,class_no>>定义以上各表的外键约束,并通过插入新的数据记录来检查外键约束。写出相应的SQL语句,并将检查执行的结果截图显示。外键定义的SQL语句:检查外键违约处理的结果截图:student表createtablestudent<s_nochar<8>,snamechar<8>notnull,sexchar<2>,sbirthdaysmalldatetime,dnochar<6>,spnochar<8>,class_nochar<4>,foreignkey<dno>referencesdepartment<dno>,foreignkey<spno>referencesspeciality<spno>>student表course表createtablecourse<cnochar<10>,cnamechar<20>notnull,spnochar<8>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint,constraintfk_course_spnoforeignkey<spno>referencesspeciality<spno>>course表teacher表createtableteacher<t_nochar<8>,t_namechar<8>notnull,t_sexchar<2>,t_birthdaysmalldatetime,dnochar<6>,tech_titlechar<10>,constraintfk_teacher_dnoforeignkey<dno>referencesdepartment<dno>>teacher表Speciality表createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,constraintfk_speciality_dnoforeignkey<dno>referencesdepartment<dno>>Speciality表Student_course表createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyint,constraintfk_student_course_s_noforeignkey<s_no>referencesstudent<s_no>ondeletecascade>Student_course表3、定义唯一约束为专业表Speciality的spname列建立唯一约束,并通过插入新的数据记录对新建的唯一约束进行检查,写出相应的SQL语句,并将检查的执行结果截图显示。定义的SQL语句:createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,unique,constraintfk_speciality_dnoforeignkey<dno>referencesdepartment<dno>>检查违约处理的结果截图:4、定义检查约束为student_course表的Score列设置检查约束条件,并通过插入新的数据记录来检查约束。写出相应的SQL语句,并将检查执行结果截图显示。定义的SQL语句:createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyintcheck<scorebetween0and100>,constraintfk_student_course_s_noforeignkey<s_no>referencesstudent<s_no>ondeletecascade>检查违约处理的结果截图:5、查看各表之间的关系,生成数据库关系图。〔二、利用企业管理器,使用约束实现数据的完整性方法1、启动企业管理器,利用表设计器分别定义:student表、course表、student_course表、teacher表、department表、speciality表、teacher_course表、class表的主键。2、表设计器中,单击工具栏中的"表和索引属性"按钮,打开"属性"对话框,在"关系"选项卡中定义外键约束。〔实验截图3、在表设计器中,单击工具栏中的"表和索引属性"按钮,打开"属性"对话框,在"索引/键"选项中定义专业信息表speciality的spname字段唯一约束。〔实验截图4、在表设计器中,单击工具栏中的"表和索引属性"按钮,打开"属性"对话框,在"CHECK约束"选项中,为student_course表中的score列设置检查约束。例如:输入表达式:score>=0andscore<=100。〔实验截图〔三、使用触发器实现数据的完整性1、使用企业管理器创建触发器在student表中创建触发器,实现student和student_course表的级联删除。步骤:打开企业管理器,展开SC数据库;在SC数据库的列表中选择"表"并展开;右击想要创建触发器的表,执行"所有任务"/"管理触发器"命令;在打开的"触发器属性"对话框中,在"名称"下拉列表框中选择"新建";在"文本"编辑框中,输入创建触发器的代码;单击"检查语法"按钮,检查代码的语法是否正确;单击"确定"按钮,则完成触发器创建。检查触发器;在查询分析器中,输入相应的语句,并执行,查看定义的触发器是否起作用。定义触发器的SQL语句:CREATETRIGGERdelete_stuON[dbo].[student]FORDELETEASDELETEFROMstudent_courseWHEREs_no=<SELECTs_noFROMDELETED>执行结果截图:实验三、查询数据库一、实验目的熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询二、实验内容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法。三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows2000/xp;2.数据库管理系统:SQLsever2000/2005;四、实验方法、步骤及结果测试实验题目:1、对实验一建立的数据库表进行查询简单查询:题目〔1、查询全部学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:格式如下查询分析器执行情况:SQL语句及执行结果显示USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudent查询结果截图显示题目〔2、查询全体学生的学号、姓名和年龄实现代码及查询结果截图:SQL语句:USESCGOSELECTs_no,sname,'sage:',year<getdate<>>-Year<sbirthday>FROMstudent查询结果截图显示:题目〔3、查询院系编号为‘01’〔计算机学院的全部学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:SQL语句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREdno='01'查询结果截图显示:题目〔4、查询"计算机科学与技术"专业〔专业代码为‘zy01’并且班级代码为‘0902’的学生的学号、姓名和出生日期。实现代码及查询结果截图:SQL语句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREspno='zy01'ANDclass_no='0902'查询结果截图显示:题目〔5、查询在‘1983/01/10’以后出生的计算机学院〔院系编号为‘01’学生的学号、姓名、性别和出身年月日。实现代码及查询结果截图:SQL语句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREstudent.dno='01'ANDstudent.sbirthday>='1983-01-10'查询结果截图显示:题目〔6、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。实现代码及查询结果截图:SQL语句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentORDERBYsbirthdayASC查询结果截图显示:连接查询:题目〔1、查询全部学生的学号、姓名、性别、所在院系名称和专业名称实现代码及查询结果截图:SQL语句:USESCGOSelectstudent.s_no,student.sname,student.sex,department.dept_name,speciality.spnamefromstudent,department,specialitywherestudent.dno=department.dnoandstudent.spno=speciality.spno查询结果截图显示:题目〔2、查询选修了课程1〔上课编号的学生的学号、姓名、专业名称和这门课的成绩实现代码及查询结果截图:SQL语句:USESCGOSelectstudent.s_no,sname,class_no,tcid,scorefromstudent,student_coursewherestudent.s_no=student_course.s_noANDstudent_course.tcid='1'查询结果截图显示:题目〔3、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。实现代码及查询结果截图:SQL语句:USESCGOselectstudent.s_no,sname,cname,scorefromstudentjoinstudent_courseon<student.s_no=student_course.s_no>joincourseon<student.spno=course.spno>selectstudent.s_no,sname,cnamefromstudentjoinstudent_courseon<student.s_no=student_course.s_no>joincourseon<student.spno=course.spno>wherescore<60查询结果截图显示:嵌套查询:题目〔1、查询没有选修了课程1的学生,列出学生的学号和姓名。实现代码及查询结果截图:SQL语句:USESCGOselectstudent.s_no,snamefromstudentwherestudent.s_noin<selects_nofromstudent_coursewheretcid!=01>查询结果截图显示:题目〔2、查询每门课都是80分以上的学生的学号与姓名。实现代码及查询结果截图:SQL语句:USESCGOselectstudent.s_no,snamefromstudentwherestudent.s_noin<selects_nofromstudent_coursewherescore>80>查询结果截图显示:2、选用Northwind数据库进行查询题目〔1、对NothWind.Products表进行简单查询;在查询分析器在窗口下用SELECT语句完成单表查询:查询所有Products的详细记录;实现代码及查询结果截图:SQL语句:USENorthwindGOSELECT*FROMProducts查询结果截图显示:查询单价〔UnitPrice小于20的Products;实现代码及查询结果截图:SQL语句:USENorthwindGOSELECT*FROMProductsWHEREUnitPrice<20查询结果截图显示:查询结果均小于20查询Products中最高单价〔UnitPrice是多少;实现代码及查询结果截图:SQL语句:USENorthwindGOselectmax<unitprice>fromproducts查询结果截图显示:题目〔2、在查询分析器在窗口下用SELECT语句完成连接〔嵌套查询:查询所有被订购过得Products的ProductsID和ProductName;实现代码及查询结果截图:SQL语句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProductsWHEREProducts.ProductIDin<SELECTProductIDFROM[OrderDetails]>查询结果截图显示:查询所有被CustomerID为AROUT客和订购过的ProductsID和ProductName;实现代码及查询结果截图:SQL语句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProducts,[OrderDetails],OrdersWHEREOrders.CustomerID='AROUT'AND[OrderDetails].OrderID=Orders.OrderIDAND[OrderDetails].ProductID=Products.ProductID查询结果截图显示:查询所有被CustomerID为AROUT客和订购过,且单价在20以上的ProductsID和ProductName;实现代码及查询结果截图:SQL语句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProducts,[OrderDetails],OrdersWHEREOrders.CustomerID='AROUT'AND[OrderDetails].OrderID=Orders.OrderIDAND[OrderDetails].ProductID=Products.ProductIDANDProducts.UnitPrice>20查询结果截图显示:查询Products中单价〔UnitPrice最高的Products的资料;实现代码及查询结果截图:SQL语句:USENorthwindGOselect*fromProductswhereUnitPrice=<selectmax<UnitPrice>fromProducts>查询结果截图显示:五、实验中出现的问题及解决方案答:在本次实验中,由于只知道出生日期,但其格式是smalldatetime,不知道如何来计算年龄〔通过问同学解决了。一般的查询、连接查询和嵌套查询因为知道其的代码书写格式,没遇到多少问题就解决了。还有,因为实验一已经编了一个数据库,本次实验的内容都是查看实验一插入的数据,一些要求被我做了适当的修改,不过,只是改了相应的一些字段的代码,不影响实验。六、思考题进行连接查询时应注意哪些问题?答:连接多个表时,可以认为它们被连成了一个表。尽管没有创建一个物理表,SQL引擎创建了很多虚拟表,当连接表时,可以在每个表中选择任何一列。关于连接表的数量问题。连接表的数量取决于具体的数据库管理系统,有的规定为最多25个,有的则没有限制。使用时,需要查看具体的数据库运行环境。但要注意,连接的表越多,响应的时间就越长。进行多表连接时,特别注意不要忘记查询条件,特别是连接多个表且记录数目较多时。因为如果不指明连接条件,系统将对多表进行笛卡尔连接,会产生巨大的记录。根据不同的应用需求,要注意连接方式的选择。实验四、创建和使用视图、索引、存储过程一、实验目的1、掌握视图、索引、存储过程的定义、索引、存储过程的工作原理;2、掌握创建视图、索引、存储过程的SQL语句的用法;并能够熟练利用视图向表中插入、删除和修改数据。3、掌握使用视图来查询数据。二、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows;2.数据库管理系统:SQLsever2000/2005;三、实验方法、步骤及结果测试〔一、视图实验题目:〔写出实验题目1-81、建立"计算机学院"的学生基本情况视图ies_student_view,该视图包括计算机学院所有学生的学号、姓名、性别、出身年月、专业名称。2、执行ies_student_view视图并观察结果。3、建立课程1〔上课编号的学生名册的视图,该名册包括学生的学号、姓名、专业名称和这门课的成绩;并查询结果。4、建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码;5、执行视图并观察结果。6、修改视图ies_student_view,使该视图包括所有学生的学号、姓名、性别、出身年月、学院名称、专业名称。7、执行ies_student_view视图并观察结果。8、删除视图ies_student_view。并查询结果。记录上述实验过程并截图说明。1、建立"计算机学院"的学生基本情况视图USESCGOCREATEVIEWies_student_viewASSELECTs_no,sname,sex,sbirthday,spnoFROMstudentWHEREstudent.spno='zy01'执行ies_student_view视图USESCGOSELECT*FROMies_student_view建立课程1的学生名册的视图USESCGOCREATEVIEWtcid1_student_viewASSELECTstudent.s_no,sname,sex,sbirthday,dno,spno,tcidFROMstudent,student_courseWHEREstudent_course.tcid='1'ANDstudent.s_no=student_course.s_no查看:SELECT*FROMtcid1_student_view建立统计不及格情况的视图USESCGOCREATEVIEWfail_student_viewASSELECTstudent.s_no,sname,tcidFROMstudent,student_courseWHEREstudent.s_no=student_course.s_noANDstudent_course.score<60查看:SELECT*FROMfail_student_view修改视图ies_student_viewUSESCGOALTERVIEWies_student_viewASSELECTs_no,sname,sex,sbirthday,spnoFROMstudent查看:7、执行ies_student_view视图并观察结果。SELECT*FROMies_student_view删除视图ies_student_viewUSESCGODROPVIEWies_student_view查询视图SQL语句及执行结果截图查询视图SQL语句及执行结果截图查询视图SQL语句及执行结果截图查询视图SQL语句及执行结果截图查询视图SQL语句及执行结果截图〔二、索引〔1、在student_course表〔学生选课表的学生学号〔s_no列上创建索引sc_sno_index<2>通过SQL语句查看运行结果创建索引的SQL语句:USESCGOCREATEUNIQUEINDEXsc_sno_indexONstudent_course<s_no>;查询视图SQL语句及执行结果截图〔三、存储过程〔1、创建存储过程list_student_department,,该存储过程接收学院代码作为输入参数,列出数据库sc中某个院系学生的全部信息。实验过程:启动查询分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论