Oracle:常用的一些基本操作

本文介绍了Oracle数据库中如何管理表和索引的操作,包括查看表结构、修改字段类型、创建索引等实用技巧。
  • 表操作

查看系统中当前用户所有表:

select * from user_tables;
select * from user_indexs;
select * from user_triggers;
select * from user_triggers where table_name='table name';

查看某个表的表结构:

describe table_name;

查看某个表的创建脚本语句:

SET LONG 2000000;
SET PAGESIZE 0;
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL;

查看某用户的某个表的创建脚本语句:

SET LONG 2000000;
SET PAGESIZE 0;
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name','username') FROM DUAL;
  • 列操作

1)字段有值且为空,则不管改为什么字段类型,可以直接执行:

alter table tablename modify (colunmname varchar2(20));

2)字段有值且不为空,则改为nvarchar2(20)可以直接执行:

alter table tablename modify (columnname nvarchar2(20));

3)字段有值且不为空,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题:

/*修改原字段名oldcolumnname为newcolunmname*/
alter table tablename rename column oldcolunmname to newcolunmname;
/*增加一个和原字段名同名的字段newcolunmname*/
alter table tablename add newcolunmname varchar2(40);
/*将原字段oldcolumnname数据更新到增加的字段newcolumnname*/
update tablename set newcolunmname=trim(oldcolunmname );
/*更新完,删除原字段oldcolumnname*/
alter table tablename drop column oldcolunmname ;
  •  索引操作:
CREATE INDEX命令语法: 
CREATE INDEX
CREATE [unique] INDEX [user.]index
ON [user.]table (column [ASC | DESC] [,column
[ASC | DESC] ] ... )
[CLUSTER [scheam.]cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]
Advanced 

备注:
schema ORACLE模式,缺省即为当前帐户
index 索引名
table 创建索引的基表名
column 基表中的列名,一个索引最多有16列,long列、long raw列不能建索引列
DESC、ASC 缺省为ASC即升序排序
CLUSTER 指定一个聚簇(Hash cluster不能建索引)
INITRANS、MAXTRANS 指定初始和最大事务入口数
Tablespace 表空间名
STORAGE 存储参数,同create table 中的storage.
PCTFREE 索引数据块空闲空间的百分比(不能指定pctused)
NOSORT 不(能)排序(存储时就已按升序,所以指出不再排序)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值