资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一验证Oracle已经安装完成了,首先得确认程序里有这些个选项,有四个选项:Oracle Installation Products、集成管理工具、配置和移植工具(管理员用得比较多)、应用程序开发。Oracle也可以形成一种层次性的链接(Directory Manager),对于我们来说用得最多是sqlplus,而OLE 是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM),他是微软提出的,在用VB开发时可能要用,对于我们来说不须管。当启动sqlplus时会提示输入用户名和口令,所谓的sqlplus是Oracle的一个客户端。Oracle大多数命令都用命令来实现,所以比较难使,就如同unix比windows难使。口令你输入tiger,建议就用它,因为以后去企业里Oracle 9i就是用的这个口令。当你看到SQL命令符时说明已经进入到了Oracle的命令行了。图形版的sqlplus,命令行的sqlplus,还有一个就是通过网页访问Oracle的服务,启动sqlplus,端口号是5560,URL是http:/127.0.0.1:5560/isqlplus。isqlplus非常有用,比如说你的机器上没有装上Oracle,就可以通过键入别人的IP,然后登陆到他的机器上来做实验,当然也可以安装特定的客户端软件实现。说实在的Oracle的这个客户端太难看了,并且要记好多好多的命令,所以专门有一类公司专门为Oracle开发客户端。有一个比较著名的客户端叫Toad,当然Oracle还有一个客户端PL/SQL Develplor,这个用的也非常多。数据库管理时常用Toad(英文蛤蟆的意思),如果有声卡的话,你启动一次它就叫一次。对我们来说sqlplus足够使了。以后有机会我使用一下PL/SQL Develplor,不过这个也不好使,因为你同时必须装上Oracle,还不如isqlplus好呢。以超级管理员身份链接数据库的方法是再命令行下敲入命令:sqlplus sys/口令 as sysdba。Sys和system的区别是sys是数据库管理者,system是数据库所有者,sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户,system用户拥有dba,sysdba等角色或系统权限,system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。sys用户必须以as sysdba或as sysoper形式登录。然后输入命令alter user scott account unlock;它的意思是将Scott用户解锁,以后关于dba的用到一个学一个,没必要从头到尾的去学它。二SQL语言是在数据库下进行操作的语言,它本身是一个标准语言,有国际标准。有两套一个是SQL1992,SQL1999。大多数数据库既支持旧的标准也支持新的,很多也是用的旧的SQL语言写程序的,对于我们来说新旧都要学,而且对大多数数据库系统来说都是通用的,只不过不同数据库有一个轻微的改变,这就是最郁闷的地方,没办法到时候查手册或google一下。SQL全称为Structured Query Language,即机构化查询语言,它被定义为第四代语言。为什么叫第四代语言,因为我们知道第三代语言也得有if else for 等这些流程控制语句,也就是你得告诉它干什么且怎么干。第四大只用告诉它我要干什么,不用去控制它怎么干,这样的语言学起来当然十分easy。我们共有四类语句要学:数据操作语言语句Data manipulation language,DML,会话控制语句session control statement,数据定义语言语句Data definition language,DDL以及事务控制语句transaction control statement。查询语句只有一句话就是select语句,这是最重要的一条语句。以后只要遇到相应的select语句一律背过,企业再面试时其他语句一般不会怎么考但这条语句是必考的。如果考你SQL语句肯定会考这条select语句不是别的。你跟别人交流的时候,别说我写过几条dml语句,而因详细的说到底是什么语句,比如insert语句、update语句等。选择的意思是从表里把数据拿出来,展现出来。听起来似乎挺简单的,但你要从表里拿数据得首先知道有几张表,每张表里有些什么内容。第一步要做的就是熟悉一下实验用的数据,这些数据Oracle都给自带了,直接用就行了。首先第一条语句desc emp,描述一下emp这张表,会分别列出所有字段(表头),empno 雇员编号,ename 雇员名字,job 雇员工种,mgr 经理人,hiredate 雇员入职日期,sal 薪水,comm 津贴,奖金,deptno 所属部门编号。表还有一部分叫类型,也就是相对应字段的类型,这些都是Oracle已经定义好的,我们直接用。现在先用别人建立好的表,然后再自己建表。NUMBER指数字,VARCHAR指字符型,Oracle7以前在用,现在常用的是VARCHAR2它支持各种可变字符串,可以更好的表示各国文字,DATE指日期,NUMBER(7,2)指七位数字有两位小数。desc dept 部门表,它有三个字段DEPTNO 部门编号,DNAME 部门名称,LOC部门所在位置。Desc salgrade工资等级表,许多公司都实行的是工资等级制,分几级工资,GRADE工资等级,HISAL该等级最高工资,LOSAL该等级最低工资。以上简要的介绍了三张表,如果想更详细的了解里面的数据,教大家第一个select语句:seclect * from 表名;。*表示把表里所有的数据都取出来,分号表示语句结束。尽量多熟悉各张表之间的关系,以及表内部各字段之间的关系,越熟悉越好。如果要算纯数据,可以采用dual这张表,它就一条记录,一个字段。你如果用其他表计算的话会有好多条重复结果,记录。字段是不能有空格的,如果非要空格可以将整个字段用双引号括起来,这样的话引号里面就可以加上各种各样的字符了。如果没加引号的话那样做是不对的。再没有加双引号的时候结果字段名会以大写字母显示出来,但加了双引号就保持住了原来的形式不变。没有就是null值,即便是0也与空值大不一样。0是有值但为0,null是没有值。任何含有空值的表达式最后的结果都是空值。SQL里面有一个字符串链接符|,它的作用跟Java里的+一样,所有被链接的都会转换为字符串显示出来。如select ename|sal from emp;它的意思是将结果sal转换为字符串后链接到ename后面。在任何数据库的SQL语句里面都是用单引号括起来表示一个字符串序列。如果字符串里本来就有单引号,再解析时就会出错。可以用两个单引号来代替一个单引号,这样就可以正确显示了。关键字distinct是指选择不重复的记录,如果修饰多个字段时表示选择该多个字段的组合不重复的显示出来。where叫过滤条件,它会过滤掉一些记录,等值判断用=,不等值判断注意是而不是Java语句里的不等号。字符串比较是比较字符的ASCII码,挨个比较。做比较时还可以用关键字between and,注意的是包括边界值的。and也可把两个过滤条件连接起来。下面来讲空值的处理,你可以直接用where +字段+is null来取出是空值的,取出不是空值的多加一个not就行。这种处理方式非常像我们的说话习惯。in然后跟着某个字段的取值是括号括起来各值之间用逗号隔开。可以使用and、or,not连接起各个查询条件。日期处理起来稍微麻烦一些,由于现在还没有学日期函数,所以采用另外一种方式一个特殊的字符串。你就按它的日期写法来写如20-2月-07,然后系统就按照字符串来比较即可。年份可以写全如20-2月-2007,它能认出来。以后我们可以写成任何形式的日期格式都能处理。模糊查询是这样的,比如找出名字里含有al的,有点像正则表达式。使用关键字like,可以通配符%,代表0个或多个字符,_代表一个字母。如果名字里就含有一个%,则使用转义字符%的形式,当然可以自己指定转义字符方法是select * from emp where ename like _A$% escape $;。排序用到的一个关键字是order by,默认的是按升序排列,如果想降序排列可以采用如下形式:select * from dept order by deptno desc;desc是降序的英文缩写。升序排列可不写也可加上asc。还可以加入where先过滤了再排序,按照几个字段进行排序时,用逗号分隔开,如下:select ename ,job,empno,sal ,deptno from emp order by deptno,sal desc;意思是先将表按照deptno升序排列,然后相同的deptno内部再按照sal降序排列。三SQL函数,函数就是Java里的方法,有参数有返回值。现在讲的是单行函数,第一个叫做lower,作用是转换为小写;第二个叫upper,作用是转为大写;第三个叫substring,取子串。这几个函数都是对字符串进行操作的,传递进去的参数就是字段名。如select lower(ename) from emp;还有一个函数叫chr,它是把一个数字转为字符:select chr(86) from dual;将86代表的字符显示出来,与之对应的是将一个字符转为对应的ASCII码,叫ascii,如:select ascii(A) from dual;就是将A的码值显示出来。round函数是四舍五入的作用,如select round(43.) from dual;结果就为44。还有一个重载的带两个参数的方法如select round(43.,4) from dual;四舍五入到小数点后4位,结果位44.5354,第二个参数可以是负数表示四舍五入到小数点前多少位。其他函数可以不用记住,但要知道有这么个函数,然后取手册中可以查到,但下面讲的一个函数最好记住它。to_char是将字段内容显示为字符,可以对显示的形式进行格式控制,比如select to_char(sal, $99,999,999.9999) from emp;就是以后面给定字符形式显示出来,小数点后的四位会强制显示,而前面的没有的位数就不显示,这就是9的含义。$换为L表示本地货币。0代表一位数字,如果没有该位数字也会强制显示为0,对于这种方式是为了进行格式控制。实际上用to_char来控制数字是比较少用的,而用得最多的是对日期格式的控制,我们知道Oracle里的sysdate包含了插入记录的详细时间信息,我们可以对其进行显示的格式进行控制,比如:select to_char(hiredate,yyyy-mm-dd) from emp;转换为年月日2006-3-23这种格式的。实际上对日期的格式控制是利用Java来实现的,到时会有一个关于日期处理的专题。select ename,job,hiredate from emp where hiredate to_date(1982-1-1 1:30:00, yyyy-mm-dd hh:mi:ss);意思是将特定的字符串转换为相应的日期格式。还有to_number是将特定的字符串解析为相应的数字格式如select ename ,job ,sal from emp where salto_number($1000,$9999);。由于有时如果计算式中含有空值会导致计算出来的结果不正
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号