Oracle自学自学笔记.docx

上传人:b****3 文档编号:776426 上传时间:2022-10-12 格式:DOCX 页数:36 大小:44.07KB
下载 相关 举报
Oracle自学自学笔记.docx_第1页
第1页 / 共36页
Oracle自学自学笔记.docx_第2页
第2页 / 共36页
Oracle自学自学笔记.docx_第3页
第3页 / 共36页
Oracle自学自学笔记.docx_第4页
第4页 / 共36页
Oracle自学自学笔记.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

Oracle自学自学笔记.docx

《Oracle自学自学笔记.docx》由会员分享,可在线阅读,更多相关《Oracle自学自学笔记.docx(36页珍藏版)》请在冰豆网上搜索。

Oracle自学自学笔记.docx

Oracle自学自学笔记

一.

验证Oracle已经安装完成了,首先得确认程序里有这些个选项,有四个选项:

OracleInstallationProducts、集成管理工具、配置和移植工具(管理员用得比较多)、应用程序开发。

Oracle也可以形成一种层次性的链接(DirectoryManager),对于我们来说用得最多是sqlplus,而OLE是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM),他是微软提出的,在用VB开发时可能要用,对于我们来说不须管。

当启动sqlplus时会提示输入用户名和口令,所谓的sqlplus是Oracle的一个客户端。

Oracle大多数命令都用命令来实现,所以比较难使,就如同unix比windows难使。

口令你输入tiger,建议就用它,因为以后去企业里Oracle9i就是用的这个口令。

当你看到SQL>命令符时说明已经进入到了Oracle的命令行了。

图形版的sqlplus,命令行的sqlplus,还有一个就是通过网页访问Oracle的服务,启动sqlplus,端口号是5560,URL是http:

//127.0.0.1:

5560/isqlplus。

isqlplus非常有用,比如说你的机器上没有装上Oracle,就可以通过键入别人的IP,然后登陆到他的机器上来做实验,当然也可以安装特定的客户端软件实现。

说实在的Oracle的这个客户端太难看了,并且要记好多好多的命令,所以专门有一类公司专门为Oracle开发客户端。

有一个比较著名的客户端叫Toad,当然Oracle还有一个客户端PL/SQLDevelplor,这个用的也非常多。

数据库管理时常用Toad(英文蛤蟆的意思),如果有声卡的话,你启动一次它就叫一次。

对我们来说sqlplus足够使了。

以后有机会我使用一下PL/SQLDevelplor,不过这个也不好使,因为你同时必须装上Oracle,还不如isqlplus好呢。

以超级管理员身份链接数据库的方法是再命令行下敲入命令:

sqlplussys/口令assysdba。

Sys和system的区别是sys是数据库管理者,system是数据库所有者,sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户,system用户拥有dba,sysdba等角色或系统权限,system如果正常登录,它其实就是一个普通的dba用户,但是如果以assysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。

sys用户必须以assysdba或assysoper形式登录。

然后输入命令alteruserscottaccountunlock;它的意思是将Scott用户解锁,以后关于dba的用到一个学一个,没必要从头到尾的去学它。

二.

SQL语言是在数据库下进行操作的语言,它本身是一个标准语言,有国际标准。

有两套一个是SQL1992,SQL1999。

大多数数据库既支持旧的标准也支持新的,很多也是用的旧的SQL语言写程序的,对于我们来说新旧都要学,而且对大多数数据库系统来说都是通用的,只不过不同数据库有一个轻微的改变,这就是最郁闷的地方,没办法到时候查手册或google一下。

SQL全称为StructuredQueryLanguage,即机构化查询语言,它被定义为第四代语言。

为什么叫第四代语言,因为我们知道第三代语言也得有ifelsefor等这些流程控制语句,也就是你得告诉它干什么且怎么干。

第四大只用告诉它我要干什么,不用去控制它怎么干,这样的语言学起来当然十分easy。

我们共有四类语句要学:

数据操作语言语句[Datamanipulationlanguage,DML],会话控制语句[sessioncontrolstatement],数据定义语言语句[Datadefinitionlanguage,DDL]以及事务控制语句[transactioncontrolstatement]。

查询语句只有一句话就是select语句,这是最重要的一条语句。

以后只要遇到相应的select语句一律背过,企业再面试时其他语句一般不会怎么考但这条语句是必考的。

如果考你SQL语句肯定会考这条select语句不是别的。

你跟别人交流的时候,别说我写过几条dml语句,而因详细的说到底是什么语句,比如insert语句、update语句等。

选择的意思是从表里把数据拿出来,展现出来。

听起来似乎挺简单的,但你要从表里拿数据得首先知道有几张表,每张表里有些什么内容。

第一步要做的就是熟悉一下实验用的数据,这些数据Oracle都给自带了,直接用就行了。

首先第一条语句descemp,描述一下emp这张表,会分别列出所有字段(表头),empno雇员编号,ename雇员名字,job雇员工种,mgr经理人,hiredate雇员入职日期,sal薪水,comm津贴,奖金,deptno所属部门编号。

表还有一部分叫类型,也就是相对应字段的类型,这些都是Oracle已经定义好的,我们直接用。

现在先用别人建立好的表,然后再自己建表。

NUMBER指数字,VARCHAR指字符型,Oracle7以前在用,现在常用的是VARCHAR2它支持各种可变字符串,可以更好的表示各国文字,DATE指日期,NUMBER(7,2)指七位数字有两位小数。

descdept部门表,它有三个字段DEPTNO部门编号,DNAME部门名称,LOC部门所在位置。

Descsalgrade工资等级表,许多公司都实行的是工资等级制,分几级工资,GRADE工资等级,HISAL该等级最高工资,LOSAL该等级最低工资。

以上简要的介绍了三张表,如果想更详细的了解里面的数据,教大家第一个select语句:

seclect*from表名;。

*表示把表里所有的数据都取出来,分号表示语句结束。

尽量多熟悉各张表之间的关系,以及表内部各字段之间的关系,越熟悉越好。

如果要算纯数据,可以采用dual这张表,它就一条记录,一个字段。

你如果用其他表计算的话会有好多条重复结果,记录。

字段是不能有空格的,如果非要空格可以将整个字段用双引号括起来,这样的话引号里面就可以加上各种各样的字符了。

如果没加引号的话那样做是不对的。

再没有加双引号的时候结果字段名会以大写字母显示出来,但加了双引号就保持住了原来的形式不变。

没有就是null值,即便是0也与空值大不一样。

0是有值但为0,null是没有值。

任何含有空值的表达式最后的结果都是空值。

SQL里面有一个字符串链接符||,它的作用跟Java里的+一样,所有被链接的都会转换为字符串显示出来。

如selectename||salfromemp;它的意思是将结果sal转换为字符串后链接到ename后面。

在任何数据库的SQL语句里面都是用单引号括起来表示一个字符串序列。

如果字符串里本来就有单引号,再解析时就会出错。

可以用两个单引号来代替一个单引号,这样就可以正确显示了。

关键字distinct是指选择不重复的记录,如果修饰多个字段时表示选择该多个字段的组合不重复的显示出来。

where叫过滤条件,它会过滤掉一些记录,等值判断用=,不等值判断注意是<>而不是Java语句里的不等号。

字符串比较是比较字符的ASCII码,挨个比较。

做比较时还可以用关键字betweenand,注意的是包括边界值的。

and也可把两个过滤条件连接起来。

下面来讲空值的处理,你可以直接用where+字段+isnull来取出是空值的,取出不是空值的多加一个not就行。

这种处理方式非常像我们的说话习惯。

in然后跟着某个字段的取值是括号括起来各值之间用逗号隔开。

可以使用and、or,not连接起各个查询条件。

日期处理起来稍微麻烦一些,由于现在还没有学日期函数,所以采用另外一种方式—一个特殊的字符串。

你就按它的日期写法来写如‘20-2月-07’,然后系统就按照字符串来比较即可。

年份可以写全如‘20-2月-2007’,它能认出来。

以后我们可以写成任何形式的日期格式都能处理。

模糊查询是这样的,比如找出名字里含有al的,有点像正则表达式。

使用关键字like,可以通配符%,代表0个或多个字符,_代表一个字母。

如果名字里就含有一个%,则使用转义字符\%的形式,当然可以自己指定转义字符方法是select*fromempwhereenamelike'_A$%%'escape'$';。

排序用到的一个关键字是orderby,默认的是按升序排列,如果想降序排列可以采用如下形式:

select*fromdeptorderbydeptnodesc;desc是降序的英文缩写。

升序排列可不写也可加上asc。

还可以加入where先过滤了再排序,按照几个字段进行排序时,用逗号分隔开,如下:

selectename,job,empno,sal,deptnofromemporderbydeptno,saldesc;意思是先将表按照deptno升序排列,然后相同的deptno内部再按照sal降序排列。

三.

SQL函数,函数就是Java里的方法,有参数有返回值。

现在讲的是单行函数,第一个叫做lower,作用是转换为小写;第二个叫upper,作用是转为大写;第三个叫substring,取子串。

这几个函数都是对字符串进行操作的,传递进去的参数就是字段名。

如selectlower(ename)fromemp;还有一个函数叫chr,它是把一个数字转为字符:

selectchr(86)fromdual;将86代表的字符显示出来,与之对应的是将一个字符转为对应的ASCII码,叫ascii,如:

selectascii(‘A’)fromdual;就是将A的码值显示出来。

round函数是四舍五入的作用,如selectround(43.535435)fromdual;结果就为44。

还有一个重载的带两个参数的方法如selectround(43.535435,4)fromdual;四舍五入到小数点后4位,结果位44.5354,第二个参数可以是负数表示四舍五入到小数点前多少位。

其他函数可以不用记住,但要知道有这么个函数,然后取手册中可以查到,但下面讲的一个函数最好记住它。

to_char是将字段内容显示为字符,可以对显示的形式进行格式控制,比如selectto_char(sal,'$99,999,999.9999')fromemp;就是以后面给定字符形式显示出来,小数点后的四位会强制显示,而前面的没有的位数就不显示,这就是9的含义。

$换为L表示本地货币。

0代表一位数字,如果没有该位数字也会强制显示为0,对于这种方式是为了进行格式控制。

实际上用to_char来控制数字是比较少用的,而用得最多的是对日期格式的控制,我们知道Oracle里的sysdate包含了插入记录的详细时间信息,我们可以对其进行显示的格式进行控制,比如:

selectto_char(hiredate,'yyyy-mm-dd')fromemp;转换为年月日2006-3-23这种格式的。

实际上对日期的格式控制是利用Java来实现的,到时会有一个关于日期处理的专题。

selectename,job,hiredatefromempwherehiredate>to_date('1982-1-11:

30:

00','yyyy-mm-ddhh:

mi:

ss');意思是将特定的字符串转换为相应的日期格式。

还有to_number是将特定的字符串解析为相应的数字格式如selectename,job,salfromempwheresal

由于有时如

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1