Oracle知识点总结

  • 格式:doc
  • 大小:70.00 KB
  • 文档页数:40

Oracle知识点总结

根据阎赫老师讲义整理 Zealjiang

1、Oracle数据库的安装和配置

⑴Oracle Internet级数据库

SQLServer 中小企业级数据库

Access 桌面级数据库

⑵Oracle的安装

注意: 来源和目标的目录不允许有中文或空格

⑶Oracle数据库启动时必需开启的后台服务

①OracleOrahome90TNSListener 使第三方的软件或语言访问

②OracleServiceETC Oracle的实例 CRUD 增删改查

注意:②中的ETC是你起的实例的名字

⑷Oracle的开发工具

①DOS界面的开发平台 -> 运行->sqlplus

②Oracle本身基于DOS的平台 ->运行-> sqlplusw

③Oracle Enterprise Manager Console

④PL/SQL Developer7.1.5

⑸创建一个表的完整流程

①创建一个数数库

例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启

create tablespace etc datafile 'f:\etc.dbf'

size 1m

autoextend on;

删除表空间

drop tablespace 数据库名称;

②为该数据库创建一个帐号和密码

语法: create user 用户名称

identified by 密码

default tablespace 数据库名称

注意:1、在Oracle中账号和数据库one2one绑定

2、Oracle的密码不允许为纯数字或空

3、需要在system账号完成动作

修改Oracle的账号密码

语法:alter user 用户

identified by 新密码

③用grant 权限 to 用户 为该帐户授权

语法: grant 权限名称 to 用户;

撤销权限

语法:revoke 权限名称 from 用户名;

④在该帐号下创建表 ⑹Oracle中的事务处理

Transacation 事务

特点:整体提交(commit) 整体回滚(rollback)

事务的四个特性

①原子性 不可分割

②持久性 -> 当数据整整写入到数据库物理文件中后,该数据被 持久化

③隔离性 -> 事务之间相互独立互不干扰

④一致性 -> 数据安全

⑺Oracle中的保留点(还原点)

关键字:savepoint

使用方法:savepoint 名称;

如进行保留点回滚

rollback to mark2

⑻Oracle备份数据表数据

①create table 备份表名称 as 查询语句;

②Oracle备份表结构

create table emp_bak as select * from emp where 1=2;

2、Oracle的函数

⑴function (系统预定义函数)

函数和存储过程相比,在于函数必须有返回值,而存储过程只有输出参数。

语法:create or replace function 函数名称 return 返回类型

as

PL/SQL语句块

例子:输入一个员工工号,返回该员工所在部门平均工资

create or replace function fun_demo1(eno emp.empno%type)

return emp.sal%type

as

avgsal emp.sal%type;

begin

select avg(sal) into avgsal from emp where empno=eno;

return avgsal;

end;

调用:select fun_demo1(7788) from dual;

public int add(int num1,int num2){

int res = 0;

res = num1+num2;

return res;

}

⑵单行函数(单值函数) :函数有且只有返回1个值

|-字符函数 substr instr ①字符串连接函数:concat

concat(字符串1,字符串2)

Oracle中字符连接操作符号 " || "

②字符串对齐函数:lpad -> left padding 左填充 /rpad

语法:lpad(字符串,预留位置,填充字符)

SQL: select lpad(ename,10,' ') from emp;

③字符串截取函数:substr -> substring

语法:substr(字符串,截取的起始位置,截取个数)

substr(字符串,截取的起始位置)

SQL:> select substr(ename,1,3) frome emp;

④字符查找函数:instr -> inner string

语法:instr(字符串,待找的字符,查找的起始位置,出现 次数)

SQL:> select ename,instr(ename,'T',1,1) from emp;

注意:当返回值为0时,字符不存在

⑤函数:initcap -> initial captor

语法:initcap(字符串)

SQL:> select initcap(ename) from emp;

⑥函数:length

语法:length(字符串)

SQL:> select * from emp where length(ename)=5;

⑦函数:lower / upper

语法:lower(字符串) SQL:> select lower(ename) from emp;

|-日期函数 sysdate add_months

①函数:sysdate

SQL:> select sysdate from dual; dual-无实际意 义,函数测试或其他测试使用

②月份差:months_between

语法:months_between(日期1,日期2)

SQL: > select * from emp where

months_between(sysdate,hiredate)>=144

③函数:last_day

语法:last_day(日期数据)

SQL:> select * from emp where

last_day(hiredate)-2=hiredate;

④函数:add_months

语法:add_months(时间,添加月份)

SQL:>select add_months(sysdate,3) from dual;

|-转换函数 to_char to_date

①转换函数 to_char

语法:to_char(时间数据,制定格式)

SQL:> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss d

ddd day') from dual; yyyy-mm-dd 年月日

hh24:mi:ss 时分秒(24)

d 一周第几天

ddd 一年的第几天

day 星期几

②to_date: 将文本类型数据按照制定格式转换成时间类型数据

语法:to_date('具体的时间字符数据','时间字符串格式')

to_date('2010-01-19','yyyy-mm-dd')

注意:Oracle中的date字段类型及其特殊

|-数学函数 abs ceil floor

abs(n) 绝对值

ceil(n) 向上取值 ceilling天花板 ceil(1.1) -> 2

floor(n) 向下取值 floor地板 floor(2.9) -> 2

mod(m,n) 求模取余 mod(5,2) -> 1

power(m,n) m的n次方 power(2,8) ->256

round(m,n) 四舍五入 m待处理数据 n精度 round(3.1415,2) ->

3.14

trunc(m) 整数截取 trunc(3.1415) = 3

sign(m) 符号

sqrt(m) 平方根

|-混合函数 user nvl

①user : 返回当前登录账号 SQL> select user from dual;

②nvl : 替空函数

语法:nvl(字符串,替换后的数据)

注意:替换后的数据必须与该字段类型保持一致

SQL> select ename,nvl(comm,0) from emp;

⑶分析函数:数据分析和挖掘功能 Data Mining rank dense_rank

作用:主要用于排名使用

函数:rank

①语法:rank() over (order by 字段名称)

SQL:> select rank() over(order by sal desc),ename,sal from emp;

若排名相同下一个将跳转