Oracle实验总结
近日做了基于ORACLE的数据库安全、对象——sql数据库,XML数据库的实验,其中遇到很多问题,先总结如下。
1、安装Oracle的过程中可以‘选择建立数据库’,也可以选择‘只安装软件’,
后者可在安装好软件后,建立数据库,可参考网上的很多安装步骤。
2、Oracle的默认用户有sys和system,在命令行或者sQl*plus中登陆时,写法如下:
Connect sys/123456 as sysdba; 其中123456是密码,在创建数据库的时候设置的。
普通用户登录,connect zhangsan/123456;
3、grant select不支持对表中选定的几列授权,只能将整个表的select权限
授权出去。
所以实验中先建立了基于选课信息表的视图SelectiveInfo1,视图中包含成绩列,学号列以及班级列(不包含其他的列),再将对视图SelectiveInfo1的select权限授予角色teacher。
4、创建用户的时候,一定要说明该用户对表空间的权限即(quota unlimited on
tablespace或者具体限定大小的句子),否则该用户即使被授予了建表权限,也不能建表。
创建用户的时候必须给用户授予create session的权限,这是最基本的权限。
5、不同的用户可以创建相同的表格,例如,teacher用户创建了table1,student
用户也创建了table1,且这两个表格式完全相同的,那么其他用户需要用这两个表格时,可以用teacher. table1和student. table1加以区分。
系统用户创建的表,和用户自己创建的表,本用户引用是可不加前缀。
6、oracle有自带的密码验证函数,默认情况下是不启用的,可以用下面的语句
启用,注意必须以Connect sys/123456 as sysdba的身份登陆(其他DBA身份的用户可不可以,本人没有试过)才能启用密码函数,启用方式如下
7、将日期装换为字符串可以to_char()函数,将字符串转换为日期用to_date()
函数。
网上有很多这两个函数的资料。
8、Xml数据库使用的简单举例(具体路劲写法好像不对,只要将改改‘//’为
‘/’并把路径写全就可以了,路径的用法其实是xpath技术)
建立含xmltype数据的表
create table abc
(id number,
xmldoc sys.xmltype);
向表中插入数据
insert into abc (id,xmldoc)
values
(1 ,
sys.xmlType.createXML
(''<name>
<a id="1" value="some values">abc</a>
</name>'')
);
查询表中的数据:
得到id=1的value变脸的值
select
i.xmldoc.extract(''//name/a[@id=1]/@value'').getStringVal() as ennames, id
from abc i
得到a节点的值
select id, i.xmldoc.extract('/name/a/text()').getStringVal() as truename
from abc i
得到节点id属性的值
Select hd.Data_t.extract(''/root/name/@id'').getStringVal() As
Name
FROM sehr_house_data hd。