Oracle操作
1.查看当前数据库的实例名: show parameter instance_name2.数据表结构的相关操作
创建数据表: 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 数量判断
分享到: