Oracle操作
2014-10-17来源:易贤网

1.查看当前数据库的实例名: show parameter instance_name

2.数据表结构的相关操作

创建数据表: create table 表名(列1 数据类型1,列2 数据类型2…….) tablespace 表空间名

修改数据表:

l 添加新列: alter table 表名 add (新添加的列名 数据类型 )

l 修改和删除已有列:alter table 表名 modify(列名 数据类型); alter table 表名 drop column 列名;

l 重命名列:alter table 表名rename column 旧列名 to 新列名

l 将表转移到另一个表空间中: alter table 表名 move tablespace 新的表空间

删除数据表: 当一个数据表没有存在的意义时,则需要执行删除操作

drop table 命名

有时,由于某些约束的存在,例如,当前表的主键被其他表用作外键,会导致无法成功删除。利用casca

de constraints选项可以将约束同时删除,从而保证drop table 命令一定能够成功执行。

3.利用user_tab_cols根据列名获得所在表的信息

例如:

Select table_name from user_tab_cols wherelower(column_name)='student_id';

4.更新数据

向数据表插入数据: insert into 表名(列名1,列名2,列名3...列名n)

values(值1,值2,值3...值n);

更新数据:

? 更新单列:update 表名 set 列=新值;

? 更新多列:update 表名 set 列1=新值1,列2=新值2,...

? 注意事项:对于update操作,最容易被忽视的就是添加where条件。上面两条语句是很危险的。因为没有添加任何限制条件,因此Oracle将更新表中的所有数据。而实际应用中,往往只需要更新部分数据。因此,对于重要数据的update操作,

首先添加where关键字是一个好的习惯,尽管有时候并不需要过滤条件。例:update 表名 set 列=新值 where...;

5.删除数据

delete 操作用于删除表中数据。除了delete语句之外,truncate命令同样可以删除表中数据。

delete from 表名 因为删除动作的作用对象为记录级别,因此无需指定列名信息。

delete from students where student_id>10;如同update 语句,在使用delete语句时,添加where字句是一个好的习惯。

这样可以避免删除表中的所有数据。

truncate table语句与delete 语句是有本质区别的。Delete语句与insert、update语句同属于DML——数据操作语言的范畴,当数据修改之后,可以通过回滚操作,忽略所做的数据修改。而truncatetable语句则是属于DDL——数据定义语言的范畴,当数据被删除之后,无法回滚。 通过truncate table命令删除表students的数据。 Truncate table students;

6.Oracle中的字符型及处理方法

ü 固定长度字符串char(n)

ü 可变长度字符串varchar(n) 当实际字符串的长度不足时,不会使用空格进行填充

ü varchar2(n) 与varchar(n)类型一样是可变长度字符串类型,最大长度都为4000。Oracle在工业标准之外,

自定义了该类型。使用varchar2(n)可以获得Oracle向后兼容性的保证。

ü 变量声明中的字符串类型 3种字符串类型——char(n)、varchar(n)、varchar2(n),都可以用于声明变量,

但是,最大长度均为32767ü 字符型处理:

l 返回字符串的小写和大写形式——lower()和upper()函数

l 单词首字符大写——initcap() 不管字符是全大写还是全小写形式,经过initcap()函数转变后,都为首字符大写,

其余小写的形式。

l 返回字符串长度——length() 例:select length(‘12345’) from dual;

l 截取字符串——substr()函数 substr(string,start_index,length)

l 删除字符串左侧和右侧空格和两侧空格——ltrim()和rtrim()和trim() 例:select ltrim(‘ 000’) new_str from dual;

l 串联字符串——concat()函数 将两个字符串进行连接

l 反转字符串——reverse()函数 例:select reverse(‘abcdef’) from dual; 输出结果为:fedcba

7.Oracle中的数值型及处理方法

2 将ASCII码转换为字符——chr()函数 select chr(65) character from dual;将输出大写字符A

2 格式化数值——to_char()函数 to_char(原数值,格式) 其中格式参数由一系列的字符组成。常用字符包括:0、9、,、FM、$、L、C、X

8.Oracle中的日期型及处理方法

获得当前日期——sysdate() select sysdatefrom dual;

为日期加上特定月份——add_months()函数 例如为当前加一个月:selectadd_months(sysdate,1) new

_date from dual;

返回特定日期所在月的最后一天——last_day()函数

将日期转换为字符串——to_char()函数 to_char()函数不仅可以用于数值的格式化,同样可以对日期进行格式化。

to_char()函数格式化日期的使用方法如下所示。to_char(日期,格式) 例子:selectto_char(sysdate,’YYYY-MM-DD’)

new_date from dual; 对于to_char()函数来说,所能使用的格式也是Oracle预定义的。如下表:

To_char()函数中,用于日期的格式信息

格式代码

说明

转换结果实例

YEAR

获得年份的全拼

Two thousand nine

YYYY

四位年份

2009

YYY

年份的后三位

009

YY

年份的后两位

09

Y

年份的后一位

9

Q

季度

2

MM

两位月份

06

MON

月份的缩写

6月

MONTH

月份

6月

WW

一年中的第几周

26

W

一月中的第几周

4

D

一周中的第几天

5

DAY

一周中的星期几

星期四

DD

一月中的第几天

25

DDD

一年中的第几天

176

DY

一周中星期几的缩写

星期四

HH

某时刻的小时数

11

HH12

某时刻的12进制小时数

11

HH24

某时刻的24进制小时数

23

MI

某时刻的分钟数

30

SS

某时刻的秒数

30

FF

某时刻的毫秒数

121

一. Oracle中的复杂数据处理

1. avg()函数用于获得一组数据的平均值,该函数只能作用于数值型。

2. sum() 同样只能应用于数值型

3. count()函数用于统计记录数目。有三种情形

l 统计单列 列名作为count()函数的参数。当列值不为空时,将计数1,否则,将计数0

l 统计所有列 即count(*)进行统计,即使所有列值均为空,Oracle仍将计数

l 利用count(1)进行统计。 count(1)和count(*)返回值相同,对每条记录都计数1

二.Oracle中的运算

1.数学运算 包括加(+)、减(—)、乘(*)、除(/)、四种。无论操作数是何种数据类型,都将首先转换为数值型,

然后才参与运算。 值得注意的是,当其中一个操作数的值为null时,运算结果仍然为null。

2.

三.Oracle中的特殊判式

Oracle进行条件判断时,最常见的操作符为“=”。除此之外,Oracle还提供了若干特殊判式进行逻辑判断。

这些判式包括:

u between 范围测试

u in 集合成员测试

u like 模糊匹配 %(匹配任意长度的任意字符) _(匹配单个字符)

u is null 空置判断

u exits 存在性判断

u all、some、any 数量判断

更多信息请查看IT技术专栏

推荐信息