[工学]Oracle在windows7中的安装和使用.doc_第1页
[工学]Oracle在windows7中的安装和使用.doc_第2页
[工学]Oracle在windows7中的安装和使用.doc_第3页
[工学]Oracle在windows7中的安装和使用.doc_第4页
[工学]Oracle在windows7中的安装和使用.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle安装1、安装oracle时配置网络适配器:-我的电脑-属性-设备管理器-网络适配器-操作-添加过时硬件-向导-手动安装-网络适配器-Microsoft-microsoft loopback adapter-添加成功。-为新添加的网络适配器microsoft loopback adapter配置使用固定的IP,使oracle自动的不断获取,以使之通过检测,具体原理上待探索。2、修改oracle安装文件使之可以在windows7下安装:Oracle官方网站上下载10203_vista_w2k8_x86_production_db.zip,这个数据库产品是For Vista和2008的微软操作系统的。 解压打开文件夹,找到两个refhost.xml文件,位置:(1):10203_vista_w2k8_x86_production_db.zipdbDisk1stageprereqdb下;(2):10203_vista_w2k8_x86_production_db.zipdbDisk1stageprereqdb_prereqsdb下;修改文件,增加以下内容到相应位置上:再找到oraparam.ini文件,位置: 10203_vista_w2k8_x86_production_db.zipdbDisk1install下。修改,增加以下内容到相应位置上:Windows-6.1-required#Minimum display colours for OUI to runMIN_DISPLAY_COLORS=256#Minimum CPU speed required for OUI#CPU=300修改完后可以安装了。以管理员身份安装程序,中间会弹出程序兼容性框框,不管他,允许并继续安装;弹出网络配置、防火墙等提示框,也选择允许放行。(Windows7的UAC比较安全,也比较麻烦)3、开始安装oracle,注意最好把360和杀软关掉。2、Oracle安装数据安装Oracle:-oracle安装会自动的生成 sys 用户和 system用户(1)sys用户是 超级用户,具有最高权限,具有sysdba角色, 有create database的权限,该用户的默认密码是manager(2)system用户是 管理操作员,权限也很大,具有sysoper角色, 没有create database的权限,默认的密码是 change_on_install(3)一般讲,对数据库维护,使用system用户登录也可以。(4)scott用户是 普通用户,默认密码是tiger(5)sysman-密码是oem_temp(6)dbsnmp-密码是oem_temp安装Oracle-1:-(1)首先使用同一口令:orclsen911(2)sys-manager(3)system-change_on_install(4)scott-tiger3、Oracle安装配置数据正在检查操作系统要求.要求的结果: 5.0,5.1,5.2,6.0,6.1 之一实际结果: 6.1检查完成。此次检查的总体结果为: 通过=正在检查 Service Pack 要求.检查完成。此次检查的总体结果为: 通过=正在检查物理内存要求.要求的结果: 256MB实际结果: 1790MB检查完成。此次检查的总体结果为: 通过=正在检查网络配置要求.检查完成。此次检查的总体结果为: 通过=正在检查 PATH 环境变量的长度.检查完成。此次检查的总体结果为: 通过=正在验证 ORACLE_BASE 的位置 (如果已设置).检查完成。此次检查的总体结果为: 通过=正在检查 Oracle 主目录路径中的空格.检查完成。此次检查的总体结果为: 通过=正在检查 Oracle 主目录路径的位置.检查完成。此次检查的总体结果为: 通过=正在检查是否进行了正确的系统清除.检查完成。此次检查的总体结果为: 通过=正在检查 Oracle 主目录的不兼容性.实际结果: NEW_HOME检查完成。此次检查的总体结果为: 通过=Enterprise Manager Database Control URL - (orclsen) :http:/SEN-PC:1158/em数据库配置文件已经安装到 D:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 D:oracleproduct10.2.0db_1。iSQL*Plus URL 为:http:/SEN-PC:5560/isqlplusiSQL*Plus DBA URL 为:http:/SEN-PC:5560/isqlplus/dba4、Oracle卸载1、首先关闭oracle服务。2、删除注册表三项。3、删除环境变量。4、删除快捷方式。5、删除c:/oracle_home的所有数据。关闭oracle所有的服务。打开注册表:regedit打开路径:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices删除该路径下的所有以oracle开始的服务名称如图。打开注册表路径:HKEY_LOCAL_MACHINESOFTWAREORACLE删除该oracle目录如图删除注册表中关于oracle的事件日志注册项:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication删除以oracle开头的所有内容删除环境变量path中关于oracle的内容。重新启动操作系统删除Oracle_Home下的所有数据删除C:Program Files下oracle目录删除开始菜单下oracle项C:Documents and SettingsAll Users开始菜单程序Oracle - Ora925、Oracle常用数据类型:常用的:字符:1、VARCHAR2(最大值) -变长字符串,最大值规定字符串的最大长度。2、CHAR(值) -定长字符串,不论数据是否占满,都分配定长值的空间。数字:3、NUMBER(8,3) -数字共有8位,小数点后3位。日期时间:4、DATE -包括年-月-日,时-分-秒字符串:5、LONG -变长字符串,最大的长度可以达到2G,当大的数据varchar存不下时使用它。6、Oracle数据库基础知识Oracle数据库:1、目前为止连接使用数据库的方式有三,命令行sqlplus,图形化sqlplus,浏览器isqlplus。2、使用超级管理员sys登录时使用命令:-sys as sysdba|sys as sysoper-manager(sys只有以这两个身份才可以登录)-system -change_on_install-scott -tiger3、解锁用户使用命令:alter user scott account unlock;4、sql使用的各种命令:Oracle常用命令(select):-desc emp -描述emp这张表(desc * -描述一张表)-select * from emp; -取出emp表中的所有数据(类比使用)(select 挑选;选拔)-select 2*3 from emp;-desc dual -描述dual这张表(dual这张表只有一个字段一个记录)-select sysdate from dual; -取出系统时间,一条记录。-select sysdate from emp; -取出系统时间,14条记录。-select sal*12 anuual_sal from emp; -使用别名anuual_sal固定格式,必须用_连接。 -如果要使用空格和中文等的字符就要使用(同时可以保持住原来的字符格式)如:-select sal*12 anuual sal from emp;-distinct关键字(去掉重复记录):-任何含有null的数学表达式的计算结果都是null-select enamel|sal from emp; -|相当于java中的+连接起字符串。-select enamel|sdsdf from emp; -oracle中使用字符串用来标识字符串。-select enamel|sdsdf from emp; -oracle中字符串中有的要使用来标识。-select distinct deptno from emp; -取出表中相应的字段去掉表中的重复的记录。-select distinct deptno ,job from emp; -去掉表中的重复的记录组合(组合)。-过滤条件(where):(对单条数据进行过滤)-select * from emp where deptno = 10; -这里的where是(过滤条件)过滤相关内容。-select * from emp where deptno = 10; -这是等值过滤。-select ename sal from emp where sal 1500; -这是非等值过滤。-select ename sal deptno from emp where deptno 10; -这里的表示不等于。-select ename sal from emp where sal between 800 and 1500; -between and关键字-select ename sal from emp where sal = 800 and sal 20-2月-1981; -固定格式!-select ename sal from emp where deptno = 10 and sal 1000; -and并且-select ename sal from emp where deptno = 10 or sal 1000; -or或者-select ename sal from emp where sal not in (800,1500); -not in 没有在。之间-模糊查询(有些像正则表达式):-%代表0个或多个,_代表一个字母,转义字符(默认的)-select ename from sal where ename like %all%; -%代表0个或多个字符-select eanme from sal where ename like _a%; -_代表一个字符-select ename from sal where ename like %; -使用转义字符(默认的) -使用escape自己指定转义字符,如下:-select ename from sal where ename like %$% escape $; -数据排序(order by):-select * from emp order by deptno desc; -这里的order by按照。排序,默认的是使用升序(asc),可以使用desc来指定使用降序。-写法:select empno ,ename from emp where deptno 10 order by empno asc;析-按两个字段进行排序:select empno ,ename ,deptno from emp order by deptno asc , ename desc;-按照deptno 和 ename 两个字段进行排序,首先按照deptno升序排序,在此基础上有deptno相同的,就按ename的降序排序。总结上述:-select ename , sal*12 annual_sal from emp where ename not like _A% and sal800 order by sal desc;-从emp中选择名称*12并使用别名过滤条件第二个字母不能是A并且sal大于800,选出来后按降序排列-常用sql函数:-对字符串进行操作的:(lower ,upper ,substr)-lower关键字:select lower(ename) from emp;-这里的含义是将表里的ename字段一一取出放到lower函数中操作,转化为小写的。-实例:select ename from emp where lower(ename) like _a%; select ename from emp where ename like _A% or ename like _a%;-upper关键字:select upper (ename) from emp; -同上,全部转化为大写的。-substr关键字:select substr(ename,2,3) from emp;-截子串,上句的含义是将ename从第二个字符开始截,截三个字符长度的子串。-转换字符:(chr,ascii)-chr关键字:select chr(65) from dual;-将数字转化为其对应的ASCII码表示的字符,这里对应的A。-ascii关键字:select ascii(A)from dual;-将字符转化为其对应的ASCII码表示的数字,这里对应的65。-四舍五入:(round)-round关键字:select round(23.652)from dual;-四舍五入,默认的是四舍五入到个位。即:24-指定参数(四舍五入到几位):select round(23.652,2)from dual;-四舍五入到小数点后的两位,即23.65-:select round(23.652,-1)from dual;-这里四舍五入到十位,个位默认0,相应的1是小数点后一位,-1即十位,以此类推。-格式的控制:(to_char)-to_char数字的转化:-to_char关键字:select to_char(sal,$99,999.9999) from emp;-根据sal,从emp中选择,将sal的格式转化为$加10,000.0000的格式输出(9代表数字-:select to_char(sal,L00,000.0000) from emp;-依然是根据sal从emp中选择,这里的转化是使用¥符号,0的使用会固定格式。-(比如两者的输出为:前者800.0000 ,后者00,0800.0000)-to_char日期的处理:(必须牢记的)-to_char关键字:select to_char(hiredate,YYYY-MM-DD HH:MI:SS) from emp;-根据hiredate从emp中进行选择,将hiredate的日期格式转化为后边标识的那种。-:select to_char(sysdate,YYYY-MM-DD HH24:MI:SS) from dual;-这里的日期时间表示制小时那里加个24,便成了24小时制。-转化为日期:(to_date)(必须牢记的)-to_date关键字:select ename , hiredate from emp where hiredate 1989-9-11 9-11-9;-这里格式错误,没有符合的日期格式。-: select ename , hiredate from emp where hiredate to_date(1989-9-11 9-11-9,YYYY-MM-DD HH:MI:SS); 这里是将前边的日期转化为后边的这种格式。在予比较。-字符串转化:(to_number)-to_number关键字:select ename ,sal from emp where sal to_number($1,234.00 , $9,999.99); 这里是将后边的字符串转化为指定的格式-空值的处理:(nvl)-nvl关键字:select ename , sal*12 + nvl(comm,0) from emp;-这里的comm如果是null,将使用0来代替,如果不是null则使用原值。(但如果不使用nvl关键字,那么comm为null时,结果也是null)-*重点*-(组函数:他会把所有的记录当做输入,最后产生一个输出)-组函数(group):(max ,min ,avg ,sum ,count)-max关键字:select max(sal) from emp; -从表emp中选择sal最大的输出-min关键字:select min(sal) from emp; -从表emp中选择sal最小的输出-avg关键字:select avg(sal) from emp; -从表emp中选择sal的平均值输出-sum关键字:select sum(sal) from emp; -从表emp中选择sal的和输出-count关键字:select count(*) from emp; -从表emp中选择一共有多少条记录(计数)-select count(*) from emp where deptno = 10; -部门编号为10的有多少人。-select count(ename) from emp; -根据ename来返回有多少条记录-select count(comm) from emp; -根据comm来返回有多少条记录(有空值的不计入其中)-select count(distinct deptno) from emp; -根据deptno来选择,使用distinct去掉重复的-select to_char(avg(sal) , 9999999.99) from emp; -选择并且保留小数后两位-select round(avg(sal) , 2) from emp; -含义同上。(round四舍五入的函数)-注意组函数可以相互的嵌套,但是最多的可以嵌套两层-必须牢记的-必须记牢的-分组(group by):-group_by关键字:select avg(sal) from emp group by deptno; -按照deptno分组,求平均值-select deptno, job, avg(sal) from emp group by deptno, job; -按照多个字段进行分组-select ename from emp where sal = (select max(sal) from emp); -从emp中选出挣钱最多的-select ename , max(sal) from emp group by deptno; -错误的写法-select deptno ,max(sal) from emp group by deptno; -(正确)根据deptno分组,取最大值-注意点:出现在select列表中的字段,-果没有出现在组函数中,则必须出现在group by子句中。-再看上边的两句,则可辨别。如果与上述原则不符,那么不能保证那个字段的唯一性,则会出错。-分组的限制(having):-having关键字:select deptno avg(sal) from emp group by deptno having avg(sal) 2000;-使用having关键字对group by分组进行限制。=(单条select语句)总结:-select * from emp -从表中选数据-where sal 1000 -对数据进行过滤-group by deptno -对数据进行分组-having -对分组进行限制-order by -对结果进行排序-(这里的先后顺序不可以变,执行亦如此顺序)=-子查询:(在select语句中嵌套select语句,这就是子查询)(子查询语句放到哪视情况而定)-select ename , sal from emp where sal = (select max(sal) from emp); -这便是子查询。-select ename , sal , deptno from emp where sal in (select max(sal) from emp group by deptno); -使用这一句可以取出一些内容,但是不准确,数据多时会产生大的误差。-重点-子查询和表连接:-select ename , sal from emp join (select max(sal) max_sal , deptno from emp group by deptno) t on (emp.sal = t.max.sal and emp.deptno = t.deptno);-做表的连接和关联,首先是从emp中进行选择,通过join连接t这张表(t是前边这句话选出来的表,t是他的别名)通过on关键字将emp和t这张表做关联。这样emp中选择时那些有关联的字段就被利用了,而不再使用原表中的那些对应的字段。=-自连接self_table_conection:(为同一张表起不同的别名,根据别名来当不同的表使用)-自连接:select e1.ename , e2.ename from emp e1,emp e2 where e1.mgr = e2.empno;-:如上所述,为同一张表emp起不同的别名,来当做不同的表使用。=5、1999年的新语法(以上的是1992年制定的标准):(略有不同)-旧语法:select ename , dname , grade from emp e , dept d , salgrade s where e.deptno = d.deptno and e.sal between s.losal and s.hisal and job CLERK; -旧语法中,使用别名,并且表的连接条件和过滤条件写在一起。-旧语法:select ename , dname from emp ,dept;-新语法:select ename ,dname from emp cross join dept; -新语法使用cross join语句(交叉连接,更明确了)。-旧语法:select ename , dname from emp ,dept where emp.deptno = dept.deptno;-新语法:select ename , dname from emp join dept on (emp.deptno = dept.deptno);-新用法(不推荐):select ename , dname from emp join dept using (deptno);等值时使用 -新语法中使用join on连接两个表,where只做数据过滤条件。(后者不推荐使用)-新语法:select ename ,grade from emp e join salgrade s on (e.sal between s.losal and s.hisal); -为两张表做链接 ,emp join(连接) salgrade on(连接条件)。-新语法:select ename , dname ,grade from emp e join dept d on (e.deptno = d.deptno) join salgrade s on (e.sal between s.losal and s.hisal) where ename not like _A% ; -做三个表的连接,分别起别名,通过join连接on生成连接条件,最后使用where做过滤条件,这新语法将连接和过滤条件分开,使用明确,值得借鉴。-新语法:select e1.ename ,e2.ename from emp e1 join emp e2 on (e1.mgr = e2.empno); -使用新语法写出(自连接),这样更加的明确了。-新语法(外连接)的用法:-左外连接:select e1.ename , e2.ename from emp e1 lift outer(可省) join emp e2 on (e1.mgr = e2.empno); -这里使用左外连接,在第一张表e1的后边加上关键字lift outer(后者可以省略),含义为左边这张表的多余的数据,即不能和右边这张表产生连接的数据,也显示出来 。-右外连接:select ename , dname from emp e right outer join dept d on (e.deptno = d.deptno); -这里使用右外连接,关键字right outer(outer可省),一般写在join前边因为两个表位于join的一前一后,含义为右边这张表多余的数据(与左表连接不上的数据)也显示出来。-全外连接:select ename , dname from emp e full join dept d on (e.deptno = d.deptno); -全外连接,将左右多余的数据全部的取出显式。-这里多余的数据指(连接不上的数据)即:与表的连接条件不符的数据-练习见:Oracle练习.txt6、创建视图:(视图就是一张表,就是一个子查询)-create view v$_dept_avg_sal_info as -创建视图:create view v$名称 as 表语句 select deptno ,avg_sal ,grade from (select deptno , avg(sal) avg_sal from emp group by deptno) t join salgrade s on (t.avg_sal between s.losal and s.hisal)修改权限-conn sys as sysdba -(以数据库管理员身份登录) -(grant授权授予)-grant create table ,create view to scott ;将常见表格和视图的权限授权给scott-conn scott/tiger -重新连接回scott -select * from v$_dept_avg_sal_info; -显式新建的视图用新视图-select dname , m.deptno from v$_dept_avg_sal_info m join dept d on (m.deptno = d.deptno) where m.grade = (select min(grade) from v$_dept_avg_sal_info)-select ,insert ,update ,delete -创建新用户:oracle数据库逻辑上分为各个不同的表空间,上来就用的是users的表空间,而scott用户的所有表空间数据都放在了这个表空间中,新建用户,同时在这个users表空间中在开辟新的表空间,再把scott用户的所有表空间数据copy到新用户的表空间中,这样不同的用户访问操作数据就不会产生相互的影响了。conn sys as sysdba; -连接超级管理员drop user liuchao cascode; -(drop user 名称)删除用户-这一段见(Oracle 练习-2.txt)-注意:DDL语句(drop,alter)是对表结构的修改,DML语句(delete,update)是对表数据的修改。-7、数据操纵语句 -DML-(insert插入 ,update修改 ,delete删除)(对表中数据记录的修改):-1、insert插入:-desc dept; 描述dept这张表-插入:insert into dept values (5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论