ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:937.73KB ,
资源ID:7373149      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7373149.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库实验报告.docx

1、数据库实验报告数 据 库 实 验报 告 实验一 Access数据库的建立一、实验目的1.熟悉Access数据库软件的操作方法与功能;2.掌握Access数据库表的创建与使用、数据库表结构的修改、数据表记录的输入、删除与修改等方法;3.加深对关系的定义、性质以及关系键的理解。二、实验设备装有Office系统计算机1人/台三、实验步骤与内容将Excel数据表格中的教师信息、教师体格检查表与学生信息表、A班学生信息表建立成Access数据表,并设置关键字和给出数据完整性约束。根据要求所建表并导入数据后如下: 实验二 数据库与表的操作一、实验目的1.熟悉SQLSERVER2005或以上版本的安装,以及

2、基本操作;2.熟练掌握数据库的创建方法,以及相关参数的设置;3.掌握数据表的创建、编辑、删除操作;4.掌握数据表数据的操作;5.数据导入导出。实验设备装有SQLSERVER2005或以上版本的计算机1人/台三、实验步骤与内容1.使用Management Studio界面创建数据库Cadastre或使用SQL语句创建数据库Cadastre:用界面创建:用SQL语句创建:CREATE DATABASE Cadastre ON PRIMARY ( NAME = NCadastre, FILENAME = NC:Usersuser课件数据库实验Cadastre.mdf , SIZE = 3072KB

3、, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = NCadastre_log, FILENAME = NC:Usersuser课件数据库实验Cadastre_log.ldf , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)2.利用ManagementStudio界面创建数据表找到新建的数据库Cadastre-表-右键-新建表例:3.利用SQL创建数据表例:CREATE TABLE dbo.宗地表(宗地号 nchar(10) NOT NULL, 权属人 nchar(

4、10) NULL, 地点 nchar(10) NULL, 所属街坊号 nchar(10) NOT NULL, 宗地图号 nchar(10) NULL, 面积 nchar(10) NULL)4.使用Management Studio界面和SQL语句录入数据,结果如下:5.使用SQL脚本录入数据INSERT INTO 测量单位(单位编号,单位名称,负责人,联系电话)Values(430001,测绘一公司,孙敬,12345678),(430002,测绘二公司,吴天,87654321)INSERT INTO 测量员(工号,姓名,职称)Values(430001,刘力,工程师),(430002,赵测,高

5、级工程师)6.请给测量员表添加一个字段“所属单位编号”,并补录单位编号实验三 SQL查询一、实验目的1.掌握select 语句的基本语法;2.掌握简单查询语句的使用方法;3.掌握简单连接查询的使用方法;4.掌握常用函数的使用方法。二、实验设备装有SQLSERVER2005或以上版本的计算机1人/台,实验2创建的数据表及录入的数据记录三、实验步骤与内容1.查询显示宗地表数据SELECT *FROM 宗地表2.按点号降序显示所有界址点SELECT *FROM 界址点表 ORDER BY 点号DESC3.查询宗地号为1002所有的界址点,并按点号升序显示SELECT *FROM Cadastre.d

6、bo.宗地-界点表WHERE 宗地号=10002ORDER BY 界址点号ASC4.分组统计每个宗地的界址点数SELECT 宗地号,COUNT(界址点号)AS 界址点数FROM Cadastre.dbo.宗地-界点表GROUP BY 宗地号5.查询界址点多于5个的宗地属性信息(宗地号, 权属人, 地点, 所属街坊号, 宗地图号, 面积)SELECT *FROM Cadastre.dbo.宗地表WHERE 宗地号 IN(SELECT 宗地号FROM Cadastre.dbo.宗地-界点表GROUP BY 宗地号HAVING COUNT(界址点号)3)6.查询不属于任何宗地的界址SELECT 点号

7、FROM Cadastre.dbo.界址点表WHERE 点号 NOT IN (SELECT 界址点号FROM Cadastre.dbo.宗地-界点表)7.统计每个街坊的宗地面积SELECT 权属人,所属街坊号,面积FROM Cadastre.dbo.街坊,Cadastre.dbo.宗地表WHERE 街坊.街坊号=宗地表.所属街坊号8.查询高级工程师测量的宗地图SELECT 宗地图.*FROM Cadastre.dbo.宗地图,Cadastre.dbo.测量员WHERE 测量员.职称=高级工程师 AND测量员.工号=宗地图.测量员工号 实验四 更新与视图一、实验目的1.掌握视图的定义与编辑;2.

8、掌握数据编辑的操作。二、实验设备装有SQLSERVER2005或以上版本的计算机1人/台、实验2创建的数据表及录入的数据记录三、实验步骤与内容1.使用SQL语句,向地籍数据库(实验2)中添加以下信息:在左家垅街坊中新测量得一宗地(宗地号:10003, 权属人:王得利, 地点:中南大学,宗地图号:2003, 面积:240平方米),测图人为刘力,界址点分别为:110009(43623,96467)、110010(43656,96456)、110011(43634,96437)、110012(43653,96487)。INSERTINTO Cadastre.dbo.宗地表(宗地号,权属人,地点,宗地

9、图号,面积)VALUES(10003,王得利,中南大学,2003,240)INSERT INTOCadastre.dbo.界址点表(点号,X,Y)VALUES(110009,43623,96467)INSERT INTOCadastre.dbo.界址点表(点号,X,Y)VALUES(110010,43656,96456)INSERT INTOCadastre.dbo.界址点表(点号,X,Y)VALUES(110011,43634,96437)INSERT INTOCadastre.dbo.界址点表(点号,X,Y)VALUES(110012,43653,96487)2.由于工作需要,现要将所有宗

10、地图向北平移100米、向东平移100米,请使用SQL语句完成平移操作UPDATE Cadastre.dbo.界址点表SET X=X+100,Y=Y+1003.请将左家垅街坊里的所有宗地号中的第1位“1”改“4”UPDATE Cadastre.dbo.宗地表SET 宗地号=4+SUBSTRING(宗地号,2,LEN(宗地号-1)WHERE 所属街坊号 IN(SELECT 街坊号FROM Cadastre.dbo.街坊WHERE 名称=左家垅)4.请将左家垅街坊里的所有宗地界址点号中的第1位“1”改“4”UPDATE Cadastre.dbo.宗地-界点表SET 界址点号=4+SUBSTRING(

11、界址点号,2,LEN(界址点号)-1)WHERE 宗地号 IN( SELECT 宗地号 FROM Cadastre.dbo.宗地表 WHERE 所属街坊号 IN (SELECT 街坊号 FROM Cadastre.dbo.街坊 WHERE 名称=左家垅)5.利用SQL语句,建立V_Block和界址点的关联视图V_BPoints,显示V_Block中的所有字段和界址点中所有字段CREATE VIEW V_BPointsASSELECT *FROM V_Block,Cadastre.dbo.界址点表6.使用SQL语句,利用V_BPoints视图,将左家垅街坊中的界址点编号中的第1位“4”改为“1”

12、UPDATE Cadastre.dbo.V_BPointsSET 点号=4+SUBSTRING(点号,2,LEN(点号-1)7.利用SQL语句,创建视图V_Envelope,显示测量图范围,即显示工作区坐标的极大和极小值CREATE VIEW V_EnvelopeASSELECT MAX(X) AS X坐标最大值,MAX(Y) AS Y坐标最大值,MIN(X) AS X坐标最小值,MIN(Y) AS Y坐标最小值FROM Cadastre.dbo.界址点表 实验五 T-SQL程序、函数、存储过程与触发器一、实验目的1.掌握T-SQL程序编写的基本方法;2.掌握SQLSERVER中自定义函数、存

13、储过程、触发器的使用。二、实验设备装有SQLSERVER2005或以上版本的计算机1人/台、实验2创建的数据表及录入的数据记录3、实验步骤与内容1.在数据库中创建函数Distance(x1 float,y1 float,x2 float,y2 float)用于计算输入两点(x1,y1)和(x2,y2)的距离(标量UDF)函数:CREATE FUNCTION Distance(X1 float,Y1 FLOAT,X2 FLOAT,Y2 FLOAT)RETURNS FLOATASBEGINDECLARE distance floatSELECT distance =SQRT(X1-X2)*(X1-

14、X2)+(Y1-Y2)*(Y1-Y2)RETURN distanceEND调用select dbo.Distance(3,4,5,6)结果2.编写T-SQL程序,检查界点表是否存在距离工作区中心点大于1000m的点,如果有,则显示界址点及其距中心点的距离DECLARE xMin float,yMin float,xMax float,yMax floatSELECT xMin=MIN(X),yMin=MIN(Y), xMax=MAX(X),yMax=MAX(Y)FROM dbo.界址点DECLARE xCenter float,yCenter floatSET xCenter=(xMin+xM

15、ax)/2SET yCenter=(yMin+yMax)/2IF EXISTS(SELECT * FROM dbo.界址点 WHERE dbo.Distance(X,Y,xCenter,yCenter)1000)BEGIN SELECT Number,X,Y,dbo.Distance(X,Y,xCenter,yCenter) FROM dbo.界址点ENDELSE PRINT没有距中心点大于1000米的点3.创建存储过程sp_InsertZD,利用参数向宗地表插入一条记录,并判断宗地表中是否存在相同宗地号,若存在则返回错误;然后判断街坊号、宗地图号是否合法,若不合法则提示错误;判断完成后,实现

16、数据插入操作。测试存储过程sp_InsertZDCREATE PROC sp_InsertZDZNo int,QNa varchar(10),Place varchar(32),JNo int,TNo int, Area real,Result varchar(50) OUTPUTASBEGINIF Exists(SELECT ZNo FROM dbo.宗地 WHERE ZNo=ZNo)SET Result=已存在+ZNoELSEIF Exists(SELECT * FROM dbo.宗地 WHERE JNo=JNo AND TNo=TNo)SET Result=街坊号或宗地图号不合法ELSE

17、BEGININSERT INTO dbo.宗地(ZNo,QNa,Place,JNo,TNo,Area)VALUES(ZNo,QNa,Place,JNo,TNo,Area)set Result=添加成功ENDEND测试存储过程:DECLARE r varchar(100)exec sp_InsertZD 10003,王得利,中南大学,1001,2003,240,r OUTPUTPRINT r;4.创建存储过程sp_DeleteCLY,根据输入的测量员工号,判断数据库中是否存在该测量员测量的宗地图,若存在,则不允许删除,并给出提示,否则删除该测量员记录。测试存储过程sp_DeleteCLYCREA

18、TE PROC sp_ DeleteCLY GNo int,Result varchar(50) OUTPUTASBEGINIF Exists(SELECT TNo FROM dbo.宗地图纸 WHERE GNo=GNo)SET Result=已存在,不允许删除ELSEBEGINDELETE FROM dbo.测量员 where GNo=GNoSET Result=删除成功ENDEND 测试过程:DECLARE r varchar(100)exec sp_InsertCLY 430001,r OUTPUTPRINT r5.修改sp_DeleteCLY存储过程,在其中添加条件:若测量员为高级工程

19、师,则不允许删除。测试存储过程sp_DeleteCLYALTER PROC dbo.sp_DeleteCLY GNo int,Result varchar(100) OUTPUTASBEGINDECLARE Clevel varchar(10)SELECT Clevel=(SELECT Clevel FROM dbo.测量员 WHERE GNo=GNo)IF Exists(SELECT TNo FROM dbo.宗地图纸 WHERE GNo=GNo)SET Result=已存在,不允许删除ELSE IF EXISTS(SELECT * FROM dbo.测量员 WHERE Clevel=高级工

20、程师) SET Result=高级工程师不允许删除ELSEBEGIN DELETE FROM dbo.测量员 where GNo=GNo SET Result=删除成功ENDEND测试:declare test varchar(10)exec sp_DeleteCLY 430002,test OUTPUTPRINT test6.为界址点创建触发器TG_InsertJZD,对当前插入的记录进行有效检查,若当前界址点距离工作区中心超过1000m,则不允许插入,否则完成插入,并给出相应提示。CREATE TRIGGER TG_InsertJZDON dbo.界址点FOR INSERTASBEGIN

21、DECLARE xMin float,yMin float,xMax float,yMax float SELECT xMin=MIN(X),yMin=MIN(Y), xMax=MAX(X),yMax=MAX(Y) FROM dbo.界址点 DECLARE xCenter float,yCenter float SET xCenter=(xMin+xMax)/2 SET yCenter=(yMin+yMax)/2 DECLARE X float,Y float,Number varchar (10) SELECT X=X,Y=Y FROM INSERTED IF dbo.Distance(X,

22、Y,xCenter,yCenter)1000 BEGIN ROLLBACK TRANSACTION PRINT没有距中心点大于1000米的点 END ELSE BEGIN ROLLBACK TRANSACTION INSERT INTO dbo.界址点(Number,X,Y) VALUES(Number,X,Y) PRINT插入成功 ENDEND 7.修改TG_InsertJZD,在其中添加是否超出工作范围的判断,即利用实验四中创建的V_Envelope视图,从当前界址点中计算工作区范围(MBR),并判断当前插入点是否超出MBR,若超出则提示错误且不允许插入,否则完成插入,并给出提示ALTER

23、 TRIGGER TG_InsertJZD ON dbo.界址点FOR INSERTASBEGIN DECLARE xMin float,yMin float,xMax float,yMax float SELECT xMin=MIN(X),yMin=MIN(Y), xMax=MAX(X),yMax=MAX(Y) FROM dbo.界址点 DECLARE xCenter float,yCenter float SET xCenter=(xMin+xMax)/2 SET yCenter=(yMin+yMax)/2 DECLARE X float,Y float,Number varchar (1

24、0) SELECT X=X,Y=Y FROM INSERTED IF dbo.Distance(X,Y,xCenter,yCenter)1000 BEGIN ROLLBACK TRANSACTION PRINT没有距中心点大于1000米的点 END ELSEIF EXISTS(SELECT * FROM dbo.V_Envelope where (XX2 or YY2 ) PRINT超出MBR ELSE BEGIN ROLLBACK TRANSACTION INSERT INTO dbo.界址点(Number,X,Y) VALUES(Number,X,Y) PRINT插入成功 ENDEND 实

25、验六 用SQLSERVER2008存储空间数据一、实验目的1.掌握SQLSERVER的空间数据类型及空间数据表的创建;2.掌握SQLSERVER常用的空间数据操作方法/函数。二、实验设备装有SQLSERVER2005或以上版本的计算机1人/台、实验2创建的数据表及录入的数据记录4、实验步骤与内容1. 为界址点、宗地数据表分别添加Geometry字段Geom;ALTER TABLE dbo.宗地 ADD Geom Geometry;ALTER TABLE dbo.界址点 ADD Geom Geometry;2. 使用T-SQL程序,根据界址点表中的X和Y值,创建几何点并存入Geom字段;UPDA

26、TE dbo.界址点SET Geom=geometry:Point(X,Y,0);3. 使用T-SQL程序,根据宗地与界址点的关联关系,创建宗地的几何多边形,并存入宗地Geom字段;首先,创建一个自定义函数,用来获得宗地界址点表的界址点号CREATE FUNCTION getZDJZD (ZDH int)RETURNS NVARCHAR(2000)ASBEGIN DECLARE points nvarchar(2000),point nvarchar(100),startPoint nvarchar(100) set Points= DECLARE myCursor CURSOR FOR SE

27、LECT ltrim(rtrim(str(x)+ +ltrim(rtrim(str(y) FROM (select a.x,a.y from dbo.界址点 a,dbo.界址点_宗地 b where a.Number=b.Number and b.ZNo=ZDH) ZZ OPEN myCursor FETCH FROM myCursor INTO point WHILE fetch_status = 0 BEGIN IF points= begin set Points=point set startPoint=point end ELSE set Points=Points+,+point

28、FETCH FROM myCursor INTO point END DEALLOCATE myCursor RETURN points+,+StartPointEND再用创建的自定义函数来创建宗地的几何多边形UPDATE dbo.宗地SET Geom=geometry:Parse(POLYGON(+dbo.getZDJZD(ZNo)+);4. 根据宗地Geom存储的多边形,计算宗地多边形面积,并修改宗地面积字段值;DECLARE pg geometrySELECT pg=Geom FROM dbo.宗地 WHERE ZNo=10001SELECT pgSELECT pg.STArea()UPDATE dbo.宗地 SET Area=pg.STArea()WHERE ZNo=100015. 若有一条自点(43530,96550)至点(43670,96590)的直线,计算该直线的半径为50m的缓冲区多边形,并查询与该缓冲区相交的宗地记录信息;DECLARE g geometrySELECT g=geometry:STGeomFromText(LINESTRING(43530 96550,43670 96590)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1