oracle中直接修改表列的名称和顺序
导入数据得时候,遇到一个问题,想把列名顺序改变一下。在网上搜索到这篇文章,没去试验。贴上来,以后有机会试验下。
(http://www.im80hou.com/html/oracle/2009/0710/712.html)
按照关系数据库的理论,行与列都是无序的,但在实际应用中有时需要确定列的顺序。但在Oracle中,一旦表定义好,再想修改列的顺序可不太容易
1.以internal用户名登录Oracle数据库,并创建一测试表。
SQL>CREATE TABLE SCOTT.TEST AS SELECT EMPNO,
ENAME from SCOTT.EMP;
SQL>DESC SCOTT.TEST
Name Type Nullable Default Comments
------- ------------ -------
EMPNO NUMBER(4) Y
ENAME VARCHAR2(10) Y
下面我们要把SCOTT.TEST表中EMPNO和ENAME两列调换顺序,并把ENAME列更名为EMP_NAME,EMPNO改为EMP_NO。
2.查询表中列的实际存储位置或表。
SQL>SET LONG 9999,由于TEXT列是LONG类型,只有“SET”之后才能完全显示。
SQL>SELECT TEXT from ALL_VIEWS WHERE VIEW_NAME = ‘USER_TAB_COLUMNS’;
数据字典视图USER_TAB_COLUMNS中存储有表列的定义信息,从该语句的查询结果可以看出,列定义信息是存储在表SYS.COL$中的,即如果修改表中列的定义,应该在SYS.COL$表中修改。
3.从数据字典视图ALL_OBJECTS中查找对象SCOTT.TEST对象ID。
SQL> SELECT * from ALL_OBJECTS WHERE OWNER =‘SCOTT’ AND OBJECT_NAME=‘TEST’;
4.根据SCOTT.TEST对象的ID,从SYS.COL$检索出表中列的定义信息。
SQL> SELECT OBJ#,COL#,NAME from SYS.COL$ WHERE OBJ# =13888;
OBJ# COL# NAME
---------- ---------- -------
13888 1 EMPNO
&n
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例
格式
说明
显示值
备注
Year(年):
yy
two digits(两位年)
08
yyy
three digits(三位年)
008
yyyy
four digits(四位年)
2008
Month(月):
mm
number(两位月)
09
mon
abbre ......
ID是主健,实现插入一个NAME,ID自动增加
SQL> create table t1
2 (
3 id & ......
原文地址:http://hi.baidu.com/zengjl/blog/item/c06c8edeb2c7e45cccbf1aca.html/cmtid/305a850ea57b09ec37d1226c
1.查询表数据
SQL> select deptno,ename,sal
2 from emp
3 order by deptno;
DEPTNO ENAME SAL
......
1、SQL 语句基础
下面给出SQL语句的基本介绍。
1.1、SQL语句所用符号
操作符 用途 例子
+ - 表示正数或负数,正数可省去 + -1234.56
+ 将两个数或表达式进行相加 A=c+b
- 将两个数或表达式进行相减 34-12
* 将两个数或表达式进行相乘 12*34
/ 除以一个数或表达式 18*11
NULL 空值判断 Where name is null;
......