空间数据库实习3代码_空间数据库实习

2020-02-27 实习报告 下载本文

空间数据库实习3代码由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“空间数据库实习”。

/*--

一、Country表创建及记录录入

--1.创建一个新的Country表,包含Name、Cont、Pop--GDP、Life_Exp、Shape字段 CREATE TABLE Country(Name NVARCHAR(80)NOT NULL PRIMARY KEY, Cont NVARCHAR(10)NULL, Pop NUMERIC(38,15)NULL, GDP NUMERIC(38,15)NULL, Life_Exp NUMERIC(5,2)NULL, Shape GEOMETRY)go

--2.向Country表中添加Name,Pop,Shape记录数据 INSERT INTO Country(Name,Pop,Shape)SELECT CNTRY_NAME,POP2005,Shape from COUNTRY06

WHERE CNTRY_NAME IN('Canada','Mexico', 'Brazil','Cuba','United States','Argentina')GO

--3.更新Country表数据,更新表中的Cont、GDP、Life_Exp数据

USE spatialdata UPDATE Country SET Cont='NUM',GDP=658.0,Life_Exp=77.08 WHERE Name='Canada' GO

UPDATE Country SET Cont='NUM',GDP=694.3,Life_Exp=69.36 WHERE Name='Mexico' GO

UPDATE Country SET Cont='SAM',GDP=1004.0,Life_Exp=65.60 WHERE Name='Brazil' GO

UPDATE Country SET Cont='NUM',GDP=16.9,Life_Exp=75.95 WHERE Name='Cuba' GO

UPDATE Country SET Cont='NUM',GDP=8003.0,Life_Exp=75.75 WHERE Name='United States' GO

UPDATE Country SET Cont='SAM',GDP=348.2,Life_Exp=70.75 WHERE Name='Argentina' GO */ /*--

二、City表创建及记录录入

--1.创建一个新的City表,包含Name、Country、Pop--Captial、Shape字段 CREATE TABLE City(Name_C NVARCHAR(80)NOT NULL PRIMARY KEY, Country NVARCHAR(80)NULL FOREIGN KEY

REFERENCES Country(Name), Pop NUMERIC(38,15)NULL, Captial NVARCHAR(1)NULL, Shape GEOMETRY)GO

--2.向City表中添加Name,Country,Shape记录数据 USE spatialdata INSERT INTO City(Name_C,Country,Shape)SELECT CITY_NAME,CNTRY_NAME,Shape from CITIES WHERE CITY_NAME IN('Havana','Washington D.C.', 'Monterrey','Toronto','Brasilia','Rosario','Ottawa','Mexico City','Buenos Aires')GO

--3.更新City表中的数据 USE spatialdata UPDATE City SET Pop=2100000,Captial='Y' WHERE Name_C='Havana' GO

UPDATE City SET Pop=3200000,Captial='Y' WHERE Name_C='Washington D.C.' GO

UPDATE City SET Pop=2000000,Captial='N' WHERE Name_C='Monterrey' GO

UPDATE City SET Pop=3400000,Captial='N' WHERE Name_C='Toronto' GO

UPDATE City SET Pop=1500000,Captial='Y' WHERE Name_C='Brasilia' GO

UPDATE City SET Pop=1100000,Captial='N' WHERE Name_C='Rosario' GO

UPDATE City SET Pop=800000,Captial='Y' WHERE Name_C='Ottawa' GO

UPDATE City SET Pop=1400000,Captial='Y' WHERE Name_C='Mexico City' GO

UPDATE City SET Pop=1075000,Captial='Y' WHERE Name_C='Buenos Aires' GO */ /*--

三、River表创建及记录录入

--1.创建一个新的River表,包含Name、Origin、Length、Shape字段 USE spatialdata CREATE TABLE River(Name_R NVARCHAR(80)NOT NULL PRIMARY KEY, Origin NVARCHAR(80)NULL FOREIGN KEY

REFERENCES Country(Name), Length_ NUMERIC(8,2)NULL, Shape GEOMETRY)GO

--2.向表中插入记录 USE spatialdata INSERT INTO River(Name_R, Shape)SELECT NAME, Shape from RIVERS WHERE Name in('Rio Paranaiba','St.Lawrence','Rio Grande, North America','Miiippi')GO

--3.更新River表中的数据 USE spatialdata UPDATE River SET Origin='Brazil',Length_ =2600 WHERE Name_R='Rio Paranaiba' GO

UPDATE River SET Origin='United States',Length_ =1200 WHERE Name_R='St.Lawrence' GO

UPDATE River SET Origin='United States',Length_ =3000 WHERE Name_R='Rio Grande, North America' GO

UPDATE River SET Origin='United States',Length_ =600 WHERE Name_R='Miiippi' GO */

--

四、空间查询 /*--1.列出Country 表中所有与美国(United States)--相邻的国家名字 USE spatialdata SELECT C1.Name 'Neighbors of United States' FROM Country C1,Country C2 WHERE C1.Shape.STTouches(C2.Shape)=1 AND C2.name='United States'

--2.找出River表中所列出的河流经过的国家

SELECT R.Name_R, C.name FROM River R,Country C WHERE R.Shape.STCroes(C.Shape)=1

--3.对于River 表中列出的河流,在City表中--找到距离其最近的城市

SELECT C1.Name_C,R1.Name_R, C1.Shape.STDistance(R1.Shape)Distance,R1.Shape FROM City C1,River R1 WHERE C1.Shape.STDistance(R1.Shape)

FROM City C2 WHERE C1.Name_CC2.Name_C)

--4.查询St.Lawrence河能为公里以内的城市--供水,列出能从该河获得供水的城市。SELECT Ci.Name_C FROM City Ci,River R WHERE Ci.Shape.STOverlaps(R.Shape.STBuffer(300))=1 AND R.Name_R='St.Lawrence'

--5.列出Country表中每个国家的名字、人口和国土面积 SELECT C.Name,C.Pop,C.Shape.STArea()AS 'Area' FROM Country C

--6.求出河流在流经的各国境内的长度 SELECT R.Name_R,C.Name, R.Shape.STIntersection(C.Shape).STLength()AS 'Length' FROM River R,Country C WHERE R.Shape.STCroes(C.Shape)=1

--7.列出每个国家的GDP及其首都到赤道的距离 SELECT Co.GDP,--geometry::Parse('POINT(0,Ci.Shape.STY)')geometry::Point(0,Ci.Shape.STY,4326).STDistance(Ci.Shape)AS 'Distance' FROM Country Co,City Ci WHERE Co.Name=Ci.Country AND Ci.Captial='Y'

--8.按其邻国数目的多少列出所有国家

SELECT Co.Name,count(Co1.Name)' Count Country Number' FROM Country Co,Country Co1 WHERE Co.Shape.STTouches(Co1.Shape)=1 GROUP BY Co.Name ORDER BY count(Co1.Name)

--9.列出只有一个邻国的国家。如果一个国家与另一个国家

--在陆地上有一条共同的国界,那么这个国家就是另一个国家--的邻国

SELECT Co.Name,count(Co1.Name)' Count Country Number' FROM Country Co,Country Co1 WHERE Co.Shape.STTouches(Co1.Shape)=1 GROUP BY Co.Name HAVING Count(Co1.Name)=1--10.查询哪一个国家的邻国多,并创建其视图 GO CREATE VIEW Neighbor AS SELECT Co.Name,count(Co1.Name)AS num_Neighbors FROM Country Co,Country Co1 WHERE Co.Shape.STTouches(Co1.Shape)=1 GROUP BY Co.Name

GO SELECT Name,num_Neighbors FROM Neighbor WHERE num_Neighbors=(SELECT max(num_Neighbors)FROM Neighbor)*/

《空间数据库实习3代码.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
空间数据库实习3代码
点击下载文档
相关专题 空间数据库实习 代码 数据库 空间 空间数据库实习 代码 数据库 空间
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文