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 不(能)排序(存储时就已按升序,所以指出不再排序)
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。