空间数据库实习报告Word格式文档下载.docx
《空间数据库实习报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《空间数据库实习报告Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
3.2orcaclespatial空间数据的操作8..
3.2.1空间数据的插入8
3.2.2检查数据8
3.2.3空间数据库简单查询8
3.2.4查看其它公路号码9
3.3空间数据加载9...
3.3.1导入新数据9
3.3.2实现基础的SQLLDR文件导入功能10
3.3.3测试加载非固定长度数据10
3.3.4限定符自由格式数据使用11
3.3.5加载组合的物理数据13
第4章II号宗地的建库查询1..4
4.1作业目标:
找到2号宗地中所有点的信息(按点号排序)14
4.2建立空间数据库1..4.
4.2.1建立与插入14
第5章运行过程生成表截图介绍2..0
5.1ZIL表2..0.
5.2点查询表2..0.
5.3找到2号宗地中所有点的信息(按点号排序)2.0
5.4Deptemp表2..1.
第1章空间数据库准备操作
1.1实习目的
熟悉Oracle数据库的基本操作,回顾空间数据库的相关知识
OracleSpatial是Oracle公司推出的空间数据库组件,它通过Oracle数据库系统
存储和管理空间数据,为Oracle数据库新增加了空间类型和多项空间查询功能。
在了解的基础上独立完成II号宗地的建库和查询操作。
1.2作业内容
1.3创建用户操作
1.
SQL>
createuserzhangyanidentified
by123
2.
2defaulttablespaceusers
3.
3temporarytablespacetemp
4.
4profiledefault
5.
5;
6.
用户已创建。
1.3.1给用户授权,管理数据库所用权限
grant
connect
‘resource
tozhangyan;
授权成功。
create
anytable
to
zhangyan;
alter
7.
drop
8.
9.
insert
tozhangyan
10.
11.
alter
user
zhangyanquotaunlimited
onusers;
用户已更改
说明:
在SYS用户下授予新用户权限及自定义表空间权限
1.4数据库准备操作
1.4.1登录退出
exit
从OracleDatabase11gEnterpriseEditionRelease1120.1.0-64bitProductionWiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions断开1.4.2监听
C:
\Users\Administrator>
lsnrctlstatus
*展示监听情况
lsnrctlstart
*打开监听
*说明:
在启动监听前要修改监听,对应相应点到的PC号码
LSNRCTLfor64-bitWindows:
Version11.2.0.1.0-Productionon01-9月-201709:
27:
04
Copyright(c)1991,2010,Oracle.Allrightsreserved.
TNS-01106:
使用名称LISTENER勺监听程序已经启动
1.5文件导出操作
fromuser=spatialtouser=qwb
1.5.1导出成功显示
在出现如下显示时说明数据已经成功导入了
2810:
36:
322017
Import:
Release11.2.0.3.0-Productionon星期一8月
Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.
连接到:
OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions经由常规路径由EXPORT:
V10.01.00创建的导出文件
警告:
这些对象由SPATIAL导出,而不是当前用户
已经完成ZHS16GBK字符集和AL16UTF16NCHAR字符集中的导入导出客户机使用WE8MSWIN1252字符集(可能的字符集转换)
.正在将SPATIAL的对象导入到QWB
..正在导入表"
CUSTOMERS"
导入了3195行
BRANCHES"
导入了77行
COMPETITORS"
导入了562行
成功终止导入,没有出现警告。
第2章空间数据库建库
2.1数据库建库及插入数据
2.2数据库建表emp
1.SQL>
createtableemp(empnonumber(4),enamevarchar2(10),jobvarchar2(9),m
grnumber(4),hiredateDATEsalnumber(7,2),commnumber(7,2),deptnonumber(
2));
2.表已创建。
3.SQL>
altertableempmodify(empnonotnull);
4.表已更改。
*说明:
上面这句话是使用alter语句让表的empno这个列不能为空
2.3数据库常用操作
2.3.1数据库插入一条数据
insertintoempvalues(0001,'
ZhangShan'
,‘clerk'
0001,to_date('
2017-8-28'
'
yyyy-mm-dd'
),111.11,111.11,01);
已创建1行。
2.3.2创建表emp_newSQL>
createtableemp_newasselect*fromempwhere1=2;
表已创建。
这是采用利用AS函数的建表方式
2.3.3展示两个表异同
describeemp_new
1.SQL>
2.名称
是否为空?
类型
3.
4.EMPNO
5.ENAME
6.JOB
7.MGR
8.HIREDATE
9.SAL
10.COMM
11.DEPTNO
12.SQL>
describeemp;
13.名称
14.
VARCHAR2(10)
VARCHAR2(9)
NUMBER(4)
NUMBER(7,2)
NUMBER
(2)
NOTNULLNUMBER(4)
DATE
15.
16.EMPNO
17.ENAME
18.JOB
19.MGR
20.HIREDATE
21.
SAL
22.
COMM
23.
DEPTNO
2.3.4表的操作,增加数据列
altertableemp_newadd(countsalnumber(4));
表已更改。
为emp_new表增加新数列
名称
EMPNO
ENAME
JOB
MGR
HIREDATE
12.
13.
COUNTSAL
设置主键
altertableemp_newadd(constraintpk_empnoprimarykey(empno));
将empno设置为主键
2.3.5删除主键
altertableemp_newdropprimarykey;
表已更改。
2.3.6创建插入数据
createtableemp_newasselect*fromempwhere1=1;
表已创建。
selectempnofromemp_new;
使用truncate命令,删除表emp_newSQL>
truncatetableemp_new;
表被截断。
2.3.7查询表emp_new的删除效果SQL>
select*fromemp_new;
未选定行
2.3.8将一个表数据批量加载到另一个表
insertintoemp_new(empno,ename,job,mgr,hiredate,sal,comm,deptno)2selectempno,ename,job,mgr,hiredate,sal,comm,deptno3fromemp;
已创建5行。
insert命令,向表emp_new中批量加载数据
1.EMPNO
3.7560
4.1
5.1
6.2
7.3
8.4
9.已选择6行。
2.3.9更新表SQL>
updateemp_newsetename='
chEN'
whereempno=7560;
已更新1行
select*fromemp_newwhereempno=7560;
1.EMPNOENAMEJOBMGRHIREDATESAL
2.
3.DEPTNO
4.
5.7560chENSALESMAN29-8月-17
6.10
2.3.10删除操作SQL>
deleteemp_newwhereempno=7560;
已删除1行。
cityvarchar2(42),state_abrvvarchar2
(2),pop90number,
rank90number,
createtablechncities
(
idnumber
notnull,
3.1了解熟悉熟悉SDO_GEOMETRY
3.1.1新建CHN_CITIES表
8.8locationmdsys.sdo_geometry
9.9);
3.1.2完成元数据及空间索引的建立
3.1.3创建空间索引
createindexchnindex_sidx_sidxONchn_cities(location)
2INDEXTYPEISMDSYS.SPATIAL_INDEX;
3.2orcaclespatial空间数据的操作
3.2.1空间数据的插入
insertintochn_cities
2
(id,city,state_abrv,pop90,rank90,location)
3
values
4
5
3444,
6
'
nanjing'
7
js'
8
9000000,
9
10
));
sdo_geometry(2001,8307,sdo_point_type(117.33,33.69,
null),null,null
3.2.2检查数据
selectcityfromchn_cities;
3.2.3空间数据库简单查询
(1)查询在I795公路上最近的5个餐馆
SELECTpoi_name
2FROM
3(
4SELECTpoi_name,
5SDO_GEOM.SDO_DISTANCE(P.location,l.geom,0.5)distanee
6FROMus_interstatesI,us_restaurantsP
7WHEREI.interstate='
l795'
8ORDERBYdistanee
9)
10WHEREROWNUM<
=5;
(2)删除原有空间索引
dropindexus_restaurants_sidx;
索引已删除。
(3)新建空间索引
createindexus_restaurants_sidxonus_restaurants(location)
2indextypeismdsys.spatial」ndex;
索引已创建。
(4)使用sdo_in函数查询1795最近的5家餐馆
2FROMus_interstatesl,us_restaurantsP
3WHEREI.interstate='
4ANDSDO_NN(P.location,l.geom)='
TRUE'
5ANDROWNUM<
=5;
3.2.4查看其它公路号码
selectinterstatefromus_interstates;
3.3空间数据加载
3.3.1导入新数据
(1)新建测试用户
createtableDEPT_LRDasselect*fromdeptwhere仁2;
altertableDEPT_LRDmodify(deptnonotnull);
(2)创建新表
createtablezjl(
2namevarchar(IO),
3birthvarchar(IO),
4specvarchar(50),
5partvarchar(80));
332实现基础的SQLLDR文件导入功能
(1)编写ZJL.CTL测试文件,内容如下:
loaddata
infilezjl.txt
append
intotablezjl
(nameposition(01:
08)char,
birthposition(09:
18)char,
specposition(19:
48)char,
partposition(49:
108)char)
(2)读取控制文件并导入数据文件
log=c:
\test\zjLlog
\Users\Administrator>
sqlldrqwb/qwb123control=c:
\test\zjl.ctl
bad=c:
\test\zjl.bad
(3)查看日志文件
select*fromzjl;
3.3.3测试加载非固定长度数据
(1)创建ULCASE1.CTL控制文件,内容如下:
1.LOADDATA
2.INFILE*
3.INTOTABLEdept_lrd
4.FIELDSTERMINATEDBY'
OPTIONALLYENCLOSEDBY'
"
5.(deptno,dname,loc)
6.BEGINDATA
7.12,RESEARCH,"
SARATOGA"
8.10,"
ACCOUNTING"
CLEVELAND
9.11,"
ART"
SALEM
10.13,FINANCE,"
BOSTON"
11.21,"
SALES"
PHILA.
12.22,"
ROCHESTER
13.42,"
INT'
L"
"
SANFRAN"
(2)执行控制文件,并查询文件导入效果。
sqlldrzhangyan\123control=c:
\test\ULCASE1.ctllog=c:
\test\ULCASE1.logSQL*Loader:
Release1120.3.0-Productionon星期三8月3016:
25:
382017Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.
达到提交点-逻辑记录计数6
达到提交点-逻辑记录计数7
select*fromdept_lrd;
3.3.4限定符自由格式数据使用
(1)为EMP_LRD表添加数据。
insertintoemp_lrd(empno,ename,job,mgr,hiredate,sal,comm,deptno)
2.2selecta.empno,a.ename,a.job,a.mgr,a.hiredate,a.sal,m,a.dept
no
3.3fromempa;
(2)为EMP_LRD表添加数据字段PROJNO/DOADSEQ.
altertableemp_lrdadd(PROJNONUMBER,LOADSEQNUMBER);
describeemp_lrd
2.名称是否为空?
PROJNO
14.
LOADSEQ
NUMBER
(3)编写控制文件:
3.APPEND
4.INTOTABLEemp_lrd
5.FIELDSTERMINATEDBY"
"
6.(empno,ename,job,mgr,
7.hiredateDATE20)"
YYYY-mm-DD"
8.sal,comm,deptnoCHARTERMINATEDBY'
:
9.projno,
10.loadseqSEQUENCEMAX1))
11.BEGINDATA
12.7782,"
Clark"
Manager"
7839,1981-07-09,2572.50,,10:
101
13.7839,"
King"
President"
,1981-11-17,5500.00,,10:
102
14.7934,"
Miller"
Clerk"
7782,1982-01-23,920.00,,10:
(4)执行控制文件,并查看结果
1.C:
sqlldrzhangyan/123control=c:
\test\ULCASE2.ctllog=c:
\test
2.\ULCASE2.log
3.SQL*Loader:
Release11.2.0.3.0-Productionon星期三8
月3016:
40:
092017
rightsreserv
4.Copyright(c)1982,2011,Oracleand/oritsaffiliates.All
ed.
5.达到提交点-逻辑记录计数2
6.达到提交点-逻辑记录计数3
7.SQL>
select*fromemp_lrd;
8.EMPNOENAMEJOBMGRHIREDATESAL
9.
10.DEPTNOPROJNOLOADSEQ
11.
月-170
7560WANGSALESMAN2