《数据库实验报告2296.doc》由会员分享,可在线阅读,更多相关《数据库实验报告2296.doc(12页珍藏版)》请在课桌文档上搜索。
1、-课内实验报告实 验: 数据库及数据库中表的建立实验SQL Server 2000管理工具的使用和创立数据库一、实验目的1. 熟悉SQL Server 2000的环境。2. 掌握企业管理器的根本使用方法,对数据库及其对象有根本了解,了解对SQL Server 2000进展配置的方法。3. 掌握查询分析器的根本使用方法以及在查询分析器中执行T-SQL 语句的方法。4. 了解SQL Server 2000数据库的逻辑构造和物理构造。5. 学会在企业管理器中创立数据库及查看数据库属性。6. 学会使用T-SQL语句创立数据库。二、实验内容1. 学会使用企业管理器和查询分析器管理工具。2. 使用企业管理
2、器创立数据库。创立一个教务管理数据库,名称为JWGL,数据文件的初始大小为20MB,文件增长方式为自动增长,文件增长增量设为5MB,文件的增长上限为500MB。日志文件的初始大小为10MB,文件增长增量设为1MB,文件的增长限制设为100MB。数据文件的逻辑文件名和物理文件名均采用默认值,分别为JWGL_data和d:Microsoft SQL ServerMSSQLdataJWGL_data.mdf;事务日志文件的逻辑文件名和物理文件名也采用默认值,分别为JWGL_log和d:Microsoft SQL ServerMSSQLdataJWGL_log.ldf。3. 在查询分析器中使用T-SQ
3、L语句创立数据库。创立一个名为Market的数据库注意e盘下应存在sql_data目录。CREATE DATABASE MarketON (NAME=Market_Data, FILENAME=e:sql_dataMatket_Data.mdf, SIZE=10, MAA*SIZE=50, FILEGROWTH=10%)LOG ON (NAME=Market_Log, FILENAME=e:sql_dataMarket_Log.ldf, SIZE=5, MA*SIZE=15, FILEGROWTH=10%);4. 使用T_SQL语句或企业管理器创立一个图书借阅管理数据库,数据库名为TSGL,数
4、据文件和日志文件的初始大小、增长方式、文件的增长上限等均可采用默认值。5. 使用T-SQL语句或企业管理器创立第二章习题10的SPJ数据库,可以自行定义文件大小、增长方式。6. 查看物理磁盘目录,理解并分析SQL Server 2000数据库的存储构造。7. 使用企业管理器查看数据库属性。8. 使用T-SQL语句或企业管理器对于25中建立的数据库进展修改和删除操作,并进一步查看物理磁盘目录。三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及结果1. 使用企业管理器创立JWGL数据库2. 在查询分析器中使用T-SQL语句创立Market数据库3. 使用企业管
5、理器创立TSGL数据库4. 使用企业管理器创立SPJ数据库5. 使用企业管理器查看数据库属性6. 使用T-SQL语句对于25中建立的数据库进展修改和删除操作,并进一步查看物理磁盘目录六、评价分析及心得体会本次实验过程中,遇到了一些问题,但在教师的帮助指导下能顺利的完成试验任务,让我初步掌握SQL Server的多种实际操作。 通过这次实验,我能较好的掌握了SQL Server软件的根本用法。学会了多种创立数据库的方法,多种创立表的方法。并且学会了如何设置主键、约束条件等多种方法,也逐渐了解学习了对于创立数据库时,对数据类型设计的方法。SQL Server数据库的实验学习使我对数据库的有了新的基
6、于事实的认识进步,让我有时机又学习到了一门新的技能。定义表和数据库完整性一、 实验目的(1) 了解SQL Server 2000的根本数据类型、空值的概念,以及表的构造特点。(2) 学会使用T-SQL语句和企业管理器创立表构造和修改表构造。(3) 学会使用SQL Server 2000提供的数据完整性功能,并在创立表时定义表的数据完整性。通过实验进一步理解数据完整性的概念及分类。二、实验内容1用企业管理器在教务管理数据库JWGL中创立学生表Student、课程表Course、学生选课表SC、它们的表构造如表B.1所示。表B.1 教务管理数据库的表构造学生表Student列名数据类型长度允许空值
7、默认值说明Snochar8主键Snamevarchar10Se*char2男只能男或女Agetinyint20只能1530Phonenumberchar12取值唯一Sdeptvarchar20课程表Course列名数据类型长度允许空值默认值说明Cnochar10主键Cnamevarchar20取值唯一Total_periortinyint64只能为32108Week_periortinyint4只能为27Credittinyint4只能是17Pcnochar10学生选课表SC列名数据类型长度允许空值默认值说明Snochar8主键,外键Cnochar10主键,外键Gradetinyint只能为0
8、1002用T-SQL语句在Market数据库中创立客户根本信息表Customers、货品信息表Goods、订单信息表Orders,它们的定义如下CREATE TABLE Customers ( CustomerID int IDENTITY (1.1) PRIMARY KEY, Cname varchar (8) NOT NULL, Address varchar (50),City varchar (10), Tel varchar (20) unique, Company varchar (50), Birthday datetime, Type tinyint DEFAULT 1); C
9、REATE TABLE GOODS ( GoodID int constraint c1 primary key, Goodsname varchar (20) not null,Price money, Description varchar (200), Storage int, Provide varchar (50), Status tinyint default (0)CREATE TABLE Orders ( OrderID int identity (1, 1) constrainy c2 primary key, Goodsid int not null references
10、goods (goodsid) on delete cascade, Customerid int not null foreign key (customerid) REFERENCES Customers (customerid) on delete no action, Quantity int not null constaraint c3 check (quantity0), Ordersum money not null, Orderdate datetime DEFAULT (getdate ();3使用T-SQL语句在SPJ数据库中创立第二章习题10中的4张表:供给商表S、零件
11、表P、工程工程表J和供给情况表SPJ,数据类型和长度自行设计,注意要同时定义主键、外键和其他的数据完整性。4使用T-SQL语句在图书借阅管理数据库TSGL中建立图书、读者和借阅3个表,其构造为 图书书号,书名,类别,作者,定价,出版时间 读者借书证号,单位,性别,地址, 号码 借阅书号,借书证号,借阅日期要求为属性选择适宜的数据类型,定义每个主键、外键,是否允许空值等数据完整性约束。三、实验环境SQL Server 2008版本四、实验前准备仔细预习实验内容,理解实验步骤,学习并熟悉内容。五、实验步骤及结果截图1使用企业管理器创立表 创立学生表Student 创立课程表Course 创立学生选
12、课表SC2用T-SQL语句在Market数据库中创立客户根本信息表Customers、货品信息表Goods、订单信息表Orders:(4) 使用T-SQL语句在SPJ数据库中创立表:供给商表S、零件表P、工程项使用T-SQL语句在SPJ数据库中创立第二章习题10中的4张表:表S、零件表P、工程工程表J和供给情况表SPJ: (5) 使用T-SQL语句在TSGL中建立图书、读者和借阅3个表:六、评价分析及心得体会第一次接触SQL 这种工具,做实验时,遇到了好多问题,比方不知道如何查看物理磁盘目录、不会在一个表里设置两个主键、约束条件填写不全等等,通过这次试验,我觉得自己所了解的还是太少,如果深入的
13、了解了SQL,则也就不会出现诸如此类的问题了,而要想深入的了解,就应该勤加练习,只有熟能生巧,才可以解决问题。表数据的插入、修改和删除一、实验目的掌握使用T-SQL语句和企业管理器对数据表进展插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。二、实验内容1. 分别使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market、数据库SPJ、数据库TSGL中的各张表输入一些如10条记录。2. 使用T-SQL语句进展插入、修改和删除记录的操作。(1) 插入数据时既要插入一
14、些不违背数据完整性约束的记录,也要插入一些违背数据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。(2) 修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整性约束的数据,观察系统执行后的结果。另外进一步观察在涉及参照完整性约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性则观察结果。(3) 删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除数据时也存在破坏完整性的情况。观察删除记录时系统的执行结果。三、实验环境SQL Server 2008版本四、实验前准备
15、首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在对象资源管理器中进展,也可以由T-SQL 语句实现。其次,要掌握T-SQL 中用于对表数据进展插入、修改和删除的命令分别是INSERT 、UPDATE 和DELETE 。五、实验步骤及结果截屏1.使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market、数据库SPJ、数据库TSGL中的各张表输入记录。2.使用T-SQL语句进展插入、修改和删除记录七、评价分析及心得体会这次试验总体来说有些难度,有很屡次新建查询时都没有执行成功,通过种种检查终于改正错误,执行成功。通过这次试验,掌握了数据的表数据的插入、修
16、改和删除操作。数据库的简单查询和连接查询一、实验目的数据查询是数据库中最根本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句( SELECT语句)的使用方法。本实验要求掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。二、实验内容(1)简单查询操作。该实验包括投影、选择条件表达、数据排序等。在数据库JWGL中的学生表 Student、课程表 Course、学生选课表SC中完成第3章例3.10例3.28中例题的查询操作。在数据库 Market的客户表 Customers、货品表 Goods、订单表 Orders中完成第3章习题6中(1)(4)的查询。在数据库SPJ中的供
17、给商表S、零件表P、工程工程表J、供给情况表SPJ中,用 SELECT语句完成第2章习题10中(1)(2)的查询。在数据库TSGL的图书、读者和借阅3个表中,用 SELECT语句完成以下查询:查询类别为计算机的所有图书信息;查询数据库方面的图书信息;查询2008-05-10到2008-07-10之间的借阅资料。(2)连接查询操作。该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。在数据库JWGL中的学生表 Student、课程表 Course、学生选课表SC中完成第3章例3.35例3.39中例题的查询操作。在数据库 Market的客户表 Customer
18、s、货品表 Goods、订单表 Orders中完成第3章习题6中(5)的查询。在数据库SPJ的供给商表S、零件表P、工程工程表J、供给情况表SPJ中,用 SELECT查询语句完成第2章习题10中(3)的查询。在数据库TSGL的图书、读者和借阅3个表中,用 SELECT语句完成以下查询:查询借书者的借书证号、单位、所借书号、书名和借阅日期。三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤1. 查询全体学生的*,姓名和所在系的有关信息。SELECT Sno, Sname, SdeptFROM Student;2. 查询全体学生的所有信息SELECT*FROM
19、Student;3. 对于上例中,在 SELECT语句中可以指定一个字符常量,在查询结果中的年龄前显示 Year of Birth。SELECT Sname, Year of Birth , 2008-ageFROM Student;4. 对于例3.12,可以为出生年份指定一个别名 Birthday。SELECT Sname, 2008-age BirthdayFrom Student;5. 查询学生的*,姓名和所在系SELECT Sno, Sname, LOWER(Sdept)FROM Student6. 在SC表中查询所有选了课程的学生的*,并消除重复的*。SELECT DISTINCT
20、SnoFROM SC;7. 查询算机系的所有学生的*和姓名。SELECT Sno, SnameFROM StudentWHERE Sdept=CS;8. 查询考试成绩不及格的学生的*。SELECT SnoFROM SCWHERE Grade609. 查询年龄在2023岁之间的学生的姓名,所在系和性别。SELECT Sname, Sdept, Se*FROM StudentWHERE Sage BETWEEN 20 AND 2310. 查询计算机系、数学系和信息系的学生姓名和年龄。SELECT Sname, SageFROM StudentWHERE Sdept IN (CS, MA,IS);1
21、1. 查询既不是数学系也不是计算机系的学生姓名和性别。SELECT Sname, sageFROM StudentWHERE Sdept NOT IN ( MA,CS);12. 查询信息系所有学生的情况。SELECT*FROM StudentWHERE Sdept LIKE IS;13. 查询所有姓张的、第3个字为伟的学生的姓名,*和性别SELECT Sname, Sno, Se*FROM StudentWHERE Sname LIKE_伟% ;14. 查询 DB_Design课程的课程号及学分。SELECT Cno, CreditFROM CourseWHERE Cname LIKE DB
22、design ESCAPE ;15. 查询没有考试成绩的学生的*及相应的课程号。SELECT Sno, CnoFROM SCWHERE Grade IS NULL;16. 查询计算机系年龄在20岁以下的学生的*、性别SELECT Sno, Sname, Se*FROM StudentWHERE Sdept=CS AND Sage20;17. 查询选修了1号课程的学生的*及成绩,查询结果按成绩的降序排序。SELECT Sno, GradeFROM SCWHERE Cno=1ORDER BY Grade DESC18. 查询全体学生情况,查询结果按所在系的升序排序,同一系中的学生按年龄降序排序。S
23、ELECT *FROM StudentORDER BY Sdept, Sage DESC;19. 查询每个学生及其选修课的情况。SELECT Student, SC.FROM Student, scWHERE Student Sno a SC Sno: 六、实验结果七、评价分析及心得体会此次试验使我更加掌握了SQL的查询语句的使用方法,包括掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。数据库的复杂查询一、实验目的进一步掌握 SELECT语句的使用方法,通过实验能够熟练地使用 SELECT语句。本实验要求掌握嵌套查询和统计查询的操作方法。二、实验内容(1)在数据库JWGL的学
24、生表Student、课程表Course、学生选课表SC中完成第3章例3.40例3.47中的查询操作。(2)在数据库 Market的客户表 Customers、货品表 Goods、订单表 Orders中完成第3章习题6中(6)(9)的查询。(3)在数据库SPJ中的供给商表S、零件表P、工程工程表J、供给情况表SPJ中,用 SELECT查询语句完成第2章习题10中(4)(5)的查询。(4)在数据库TSGL的图书、读者和借阅3个表中,用 SELECT语句完成以下查询。查询人民邮电出版社出版的各类图书的平均价格。SELECT类别,AVG(定价)平均价FROM图书WHERE出版社=人民邮电出版社GROU
25、P BY类别ORDER BY类别ASC使用嵌套查询完成查询借了书的读者信息。统计目前借了书的读者人数。统计过期未还书的图书册数。三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及结果2.查询其他系中比计算机系*一学生年龄小的学生姓名和年龄。3.在数据库 Market的客户表 Customers、货品表 Goods、订单表 Orders中完成第3章习题6中(6)(9)的查询。1查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超的订单信息2查找所有西安客户的订单信息,要求用不相关子查询完成3.在数据库TSGL的图书、读者和借阅3个表中,用 S
26、ELECT语句完成查询:六、评价分析及心得体会此次实验学会了嵌套查询和统计查询的根本操作方法。结合教师上课讲的内容,再在计算机上操作一遍,加强掌握了所学的数据库知识,为以后更深入的去学习数据库奠定了根底。索引和视图一、实验目的1理解索引和视图的概念2掌握索引的使用方法3掌握视图的定义和使用方法。二、实验内容(1)建立索引。对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为 SC_ind的索引。USE JWGLIF E*ISTS (SELECT name FROM sysinde*es WHERE name = SC ind )DROP INDE* SC.
27、SC ind; GOUSE JWGL CREATE INDE* SC_ind ON SC( Cno, Grade DESC);(2)视图的定义和操作。例3.61例题中视图的定义和视图上的查询、更新操作。在 Market数据库中,完成第3章习题11中(1)的建立视图的操作,然后在该视图上完成第3章习题11中(2)的查询操作。三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及结果1. 建立一个名为 SC_ind的索引1建立计算机系学生的视图,并要求进展行修改和插入操作时需保证该视图只能对计算机系的学生进展操作2例3.55建立选择了2号课程且成绩在80分以上的学
28、生视图。3建立一个反映学生出生年份的视图。3.在Market数据库中,完成查询操作。六、评价分析及心得体会通过本次实验,我不仅理解了索引和视图的概念,并且掌握了索引的使用方法,最后,掌握视图的定义和使用方法。虽然实验有所难度,但是我通过自己的努力坚持将实验做完,尽管中间有许多困难和错误,我还是从中收获了许多。存储过程一、实验目的理解存储过程的概念,掌握存储过程的使用方法。二、实验内容存储过程是一系列预先编译好的、能实现特定数据操作功能的SOL代码集,它与特定的数据库相关联,存储在效劳器上。创立用户自定义存储过程既可以在查询分析器中用SQL语句完成,也可以用企业管理器完成。在企业管理器中书写存储
29、过程时,是在新建存储过程对话框中的文本框中输入创立存储过程的SQL语句。(1)在数据库JWGL中,完成第4章例1、例37中例题的创立存储过程的操作,并使用E*EC语句调用这些存储过程执行,观察他们的执行结果。(2)在 Market数据库中,完成第4章习题5中(1) (4)创立存储过程的操作。并使用E*EC语句调用这些存储过程执行,观察他们的执行结果。(3)在 Market数据库中,进一步完成以下操作。创立一个存储过程 Goods_Orders 1,查看任何指定货品的订单情况,包括订单号、订货客户的姓名以及订货数量等(要使用输入参数)执行存储过程 Goods_Orders 1时,如果没有给出参数
30、,则系统会报错,如果希望不给出参数时能查出所有货品的订单,则可以用默认参数值来实现。为此要求创立另一个存储过程Goods_Orders2来完成此功能。创立一个存储过程 Goods_OrderSum,来获得*个货品的订单总额(要使用输入以及输出参数)三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及截屏(1)在数据库JWGL中操作(2)在 Market数据库中操作。(3)在 Market数据库中,进一步完成以下操作。六、评价分析及心得体会通过本次实验,首先理解了存储过程的概念,掌握了存储过程的使用方法。但是在实验过程中也存在着许多问题,一定要勤加练习才可补拙
31、。触发器一、实验目的学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。二、实验内客触发器是一种实施复杂数据完整性的特殊存储过程。在对表或视图执行 INSERT、 UPDATE或DELETE语句时自动触发执行,以防止对数据进展不正确、未授权或不一致的修改。它不可以像调用存储过程一样由用户直接调用执行。创立触发器可以在查询分析器中用SQL语句完成,也可以用企业管理器完成。在企业管理器中书写触发器时,通过右键单击创立触发器的表。在弹出的快捷菜单中依次选择所有任务管理触发器命令。就翻开触发器属性对话框,然后在该对话框的文本框中输入创立触发器的SQL语句。(1)在数据库JWGL中,完
32、成第4章例813中例题的创立触发器的操作,然后在相关的表上执行INSERT、 UPDATE或 DELETE语句,观察他们的执行结果。(2)在Market数据库中,完成第4章习题5中(5) (9)创立触发器的操作,然后在相关的表上执行INSERT、UPDATIE或 DELETE语句,观察他们的执行结果。三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及截屏1.在JWGL数据库中完成操作。2.在Market数据库中完成操作。六、评价分析及心得体会本次实验我学习了触发器的使用,体会了触发器执行的时机,加深了对触发器功能和作用的理解。但是以后还得多加练习以便到达对
33、数据库各项操作的熟练应用。数据库的平安性一、实验目的(1)理解 SOL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。(2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。(3)掌握混合认证模式下数据库用户的建立与取消方法。(4)掌握数据库用户权限的设置方法。(5)理解角色的概念,掌握管理角色技术。二、实验内容数据库的平安性主要是用户管理和权限管理。在A.5节中介绍了 SQL Server的平安性管理,复习其内容,并完成以下实验。(1)在企业管理器中翻开SQL Server属性(配置)对话框,设置身份验证模式为SQLServer和 Windows模式(即混
34、合模式)在A5节中已经介绍,一个用户要访问 SQL Server2000数据库中的数据,他必须要经过3个认证过程。第一,验证用户连接到 SQL Server2000数据库效劳器的资格;第二、验证对具体数据库的访问权;第三,验证用户是否具有对所操作对象的操作权。理解和体会这一认证过程。(2)创立、管理数据库效劳器的登录账号用T-SQL语句创立、查看、删除登录账号。创立一个名为 student、密码为111、使用的默认数据库为JWGL的登录账号。e*ec sp_addlogin student,111, JWGL查看登录账号为E*ECsp_helplogins删除登录账号为 E*EC sp_dro
35、ploginstudent在企业管理器中使用A.5.2节中介绍的方法创立一个登录账号。(3)创立、管理数据库用户。用户是基于数据库的名称是和登录账号相关联的。只有DBA和数据库所有者才有执行系统存储过程 sp_granddbaccess的权力。用T-SQL语句创立、查看、删除数据库用户。为数据库JWGL创立一个用户 user1,该用户登录 SQL Server效劳器的账号为wang,登录密码为 secret,写出相应的程序代码为E*EC sp_addloginwang, secret, JWGLGOE*EC sp_grantdbaccesswang, user1查看数据库用户为 E*EC sp
36、_helpuser删除数据库中的wang用户为 E*EC sp_revokedbaccesswang使用企业管理器创立、查看、删除数据库用户。使用企业管理器为数据库JWGL创立一个用户user2,该用户登录 SOL Server效劳器的账号为 zheng,登录密码为123456。(4)管理用户权限。用户权限的管理可以使用企业管理器,也可以使用T-SQL语句。分别使用企业管理器和T-SQL语句完成第3章习题12中(1) (3)的用户管理和用户权限管理。(5)创立、管理数据库角色。假设一个小组共3个成员,他们对JWGL具有一样的操作权限,具体权限为对 Student、 Course表只能进展数据查
37、询;对SC表可以进展查询、修改、删除和插入。可以创立一个角色(如role),给该角色赋予相应的权限,然后给每个成员建立一个登录账号(如分别为lin,wang, zheng),并将每个成员的登录账号添加为数据库角色role的成员。其代码如下E*EC sp_addroleroleGOGRANTSELECT ON student to roleGRANT SELECT ON course To roleGRANT SELECT, UPDATE, DELETE, INSERT ON SC To roleGOE*EC sp_addrolemember role,linE*EC sp_addrolemem
38、ber role,wangE*EC sp_addrolememberrole,zheng删除角色role,然后再使用企业管理器完成以上任务。删除角色role时,必须保证它不包含任何数据库用户,即要先删除其下的所有成员。E*EC sp_addrolememberrole,linE*EC sp_addrolememberrole,wangE*EC sp_addrolememberrole,zhengGOE*EC sp_droprole role三、实验环境SQL Server 2008版本四、实验前准备电脑,课本,笔五、实验步骤及截屏1.在企业管理器中翻开SQL Server属性(配置)对话框2.用T-SQL语句创立、查看、删除数据库用户。3.创立、管理数据库角色。六、评价分析及心得体会这次实验室对数据库的平安性的实验,也是在SQL Sever 平台上进展的,由于对用SQL语句进展表的创立和主键外键的设置不是很了解,所以实验做起来很慢,有很多不明白的地方,对存储过程和触发器方面也理解的比拟懵懂,不知道怎样上手,以后自己一定多动手练习,多做做实验,从中真正的将课本上学到的东西转化成自己的东西!. z.