当前位置:文档之家› Oracle实验总结

Oracle实验总结

Oracle实验总结Oracle实验总结Oracle实验总结近日做了基于ORACLE的数据库安全、对象sql数据库,XML数据库的实验,其中遇到很多问题,先总结如下。

1、安装Oracle的过程中可以‘选择建立数据库’,也可以选择‘只安装软件’,后者可在安装好软件后,建立数据库,可参考网上的很多安装步骤。

2、Oracle的默认用户有sys和system,在命令行或者sQl*plus中登陆时,写法如下:Connectsys/123456assysdba;其中123456是密码,在创建数据库的时候设置的。

普通用户登录,connectzhangsan/123456;3、grantselect不支持对表中选定的几列授权,只能将整个表的select权限授权出去。

所以实验中先建立了基于选课信息表的视图SelectiveInfo1,视图中包含成绩列,学号列以及班级列(不包含其他的列),再将对视图SelectiveInfo1的select权限授予角色teacher。

4、创建用户的时候,一定要说明该用户对表空间的权限即(quotaunlimitedontablespace或者具体限定大小的句子),否则该用户即使被授予了建表权限,也不能建表。

创建用户的时候必须给用户授予createsession的权限,这是最基本的权限。

5、不同的用户可以创建相同的表格,例如,teacher用户创建了table1,student 用户也创建了table1,且这两个表格式完全相同的,那么其他用户需要用这两个表格时,可以用teacher.table1和student.table1加以区分。

系统用户创建的表,和用户自己创建的表,本用户引用是可不加前缀。

6、oracle有自带的密码验证函数,默认情况下是不启用的,可以用下面的语句启用,注意必须以Connectsys/123456assysdba的身份登陆(其他DBA身份的用户可不可以,本人没有试过)才能启用密码函数,启用方式如下7、将日期装换为字符串可以to_char()函数,将字符串转换为日期用to_date()函数。

网上有很多这两个函数的资料。

8、Xml数据库使用的简单举例(具体路劲写法好像不对,只要将改改‘//’为‘/’并把路径写全就可以了,路径的用法其实是xpath技术)建立含xmltype数据的表createtableabc(idnumber,xmldocsys.xmltype);向表中插入数据insertintoabc(id,xmldoc)values(1,sys.xmlType.createXML(““abc”“));查询表中的数据:得到id=1的value变脸的值selecti.xmldoc.extract(““//name/a[@id=1]/@value”“).getStringVal()asenna mes,idfromabci得到a节点的值selectid,i.xmldoc.extract(“/name/a/text()”).getStringVal()astruenam efromabci得到节点id属性的值Selecthd.Data_t.extract(““/root/name/@id”“).getStringVal()AsName FROMsehr_house_datahd扩展阅读:ORACLE实训总结1、Conn/assysdba:以sysdba连接数据库,在这里可以解锁system、hr(oracle内建的用户名)、scott(oracle内建的用户名)用户,并修改它们的密码。

2、修改密码:Alteruseridentifiedby3、解锁用户:Alteruseraccountunlock4、解锁hr、scott,并修改system、hr、scott密码Alteruserhraccountunlock;Alteruserscottaccountunlock;Alteruserhrident ifiedbyk;Alteruserscottidentifiedbyk;Alterusersystemidentifiedbyk;5、连接网络数据库在\\product\\10.0.2\\db_1\\NETWORK\\ADMIN\\tnsname.ora文件中添加内容:test=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521))(CONNECT_DATA=(SERVER=DEDIC ATED)(SERVICE_NAME=orcl)))连接数据库时,输入:conn/@test6、创建用户的语句以创建用户名hr为例:Connsystem/assysdba;//连接到指定数据库Dropuserhrcascade;//如果hr用户名已存在的话删除该用户名Createuserhridentifiedbyhrdefaulttablespaceuserstemporarytablespacete mp;//创建用户hrHostimphr/hrfile=\\hr.dmplog=\\1.logfromuser=hrtouser=hrignore=y;7、hr环境搭建connhr/k:以用户名hr、密码k连接数据库createtableEMP(EMPNONUMBER(6)notnull,ENAMEVARCHAR2(25),HIREDATEDATE,J OBVARCHAR2(10),SALNUMBER(8,2),COMMNUMBER(2,2),DEPTNONUMBER(4)); INSERTINTOEMPSELECTEMPLOYEE_ID,LAST_NAME,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,DEPARTME NT_IDFROMEMPLOYEES;createtableDEPT(DEPTNONUMBER(4)notnull,DNAMEVARCHA R2(30),LOCNUMBER(4)); INSERTINTODEPTSELECTDEPARTMENT_ID,DEPARTMENT_NAME,LOCATION_IDFROMDEPARTMENTS;createtableemp_jobasselectempno,jobfromempwhere1=2;insertintoemp_job(empno,job)selectempno,jobfromempwheredeptno=30;crea tetablenew_emp(id,name)asselectempno,enamefromemp;createtableSALGRADE S(grade_levelvarchar2(4),lowest_salaryNUMBER,highest_salaryNUMBER );insertintosalgradesvalues(“L1”,1000,2999);insertintosalgradesvalues (“L2”,3000,5999);insertintosalgradesvalues(“L3”,6000,8999);insert intosalgradesvalues(“L4”,9000,14999);insertintosalgradesvalues(“L5”,15000,22999);insertintosalgradesvalues(“L6”,23000,30000);commit;8、SQL语句的分类DQL:dataquerylanguage数据查询语言:selectDML:datamanipulationlanguage数据操作语言insert/update/delete/mergeDDL:datedefinitionlanguage数据定义语言create/alter/drop/truncateDCL:datecontrollanguage数据控制语言grant/revokeTCL:transitoncontrollanguage事务控制语言commit/rollback/savepoint9、NULL:它不等于零或空格,任意的类型都可以支持nulla)包含null的任何算术表达式的结果都为nullb)包含null的连接表达式等于与””(空字符串)连接10、列别明的两种书写形式a)列名列别名b)列名as列别名11、列别名必须加””的情况a)列别名中包含有空格b)列别名中要求区分大小写c)列别名中包含有特殊字符12、使用||连接符代替,实例:Selectfirst_name||||last_name||sphonenumberis||phone_number“employee Phonenumber”fromemployees;其中first_name、last_name、phone_number位列变量,表示输出空格,中前两个表示输出,sphonenumberis表示输出sphonenumber,”employeePhonenumber”表示输出列的别名。

13、SQL*PLUS/ISQL*PLUS命令a)desc:显示表结构,其中desc是describe 的缩写,可以写全。

b)set[系统变量]on|off,例如:setheadingon|off:控制是否显示列标题。

setescapeon|off:控制是否打开转义符,showescape:显示转义字符setautocommiton|off:空值是否打开自动提交,showautocommit:显示当前提交方式14、ISQL*PLUS的默认显示格式Date和Character型左对齐,Numeric 型右对齐、列标题居中大写字符函数:其中字符串可以代表列名或字符表达式 a)lower(字符串)将所有大写字符转换为小写字符b)upper(字符串)将所有小写字符转换为大写字符c)iniicap(字符串)所有单词的首字母大写,其它的小写d)concat(字符串1,字符串2)将字符串1与字符串2连接e)substr(字符串,m,n)从字符串中第m位开始截取n位,字符串从1开始计数f)length(字符串)返回字符串的长度g)instr(字符串1,字符串2,m,n)返回字符串2在字符串1中,从第m位开始,第n次出现的位置。

h)lpad(字符串1,n,字符串2)用字符串2在字符串1的左边进行填充,使字符串1达到n位i)rpad(字符串1,n,字符串2)用字符串2在字符串1的右边进行填充,使字符串1达到n位j)trim(leading|trailing|both字符from字符串)将字符串中开头(leading)和结尾(trailing)的指定字符(只能是字符)去掉。

相关主题