oracle如何创建列,oracle添加列sql

Oracle 如何创建标识列,不用(SEQUENCE)

有个简单的方法,你直接取标识列的MAX()+1就行了,如一张表的结构如下

公司主营业务:网站制作、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出德城免费做网站回馈大家。

create table temp_table

(

table_id number(10);

user_name varchar2(1000);

);

每次insert的时候就写INSERT INTO TEMP_TABLE VALUES((SELECT MAX(TABLE_ID)+1 FROM TEMP_TABLE),'AAA');

其实最好的方法还是用序列……

oracle中怎样插入列

首先,表的字段的物理位置是固定的

就是现在是ID NAME DEPT_ID的顺序不能改变,顶多是可以把薪水加到最后一列

增加一个字段的方法,看你是用的oracle

alter table s_emp add 薪水 number(10,2);

薪水那俩字你替换成你想改的英文名称吧

另外如果你非让它显示在ID和NAME中间,只能在查询中做到,否则就得全表删除重建

select id,薪水,name,dept_id from s_emp;

oracle怎样手动向表中指定位置插入新的列?

第一种方法:企业管理器-〉设计表-〉右键第4列-〉插入列

第二种方法:SQL语句,没有直接在指定位置插入的语句,不过我考虑的语句很简单

1.新建一张表,原来是abcde,现在新建为abcXde,X是插入的列

2.把原来abcde中的数据全部插入新表中

3.删除旧表abcde

Oracle怎么建自动增长列

oracle:

oracle没有自增长序列,因此可以用以下方法来实现

1.建立表格:

createtabletable1

(

cidnumber(8)notnull,

othersvarchar2(20)

);

2.建立从1开始的序列:

createsequenceemp_sequence

incrementby1--每次加几个

startwith1--从1开始计数

nomaxvalue--不设置最大值

nocycle--一直累加,不循环

nocache--不建缓冲区3.建立触发器:

createorreplacetriggermytgr

beforeinsertontable1foreachrow

begin

selectmytgr.nextvalinto:new.cidfromdual;

end;

mysql:

createtabletbname(a_idunsignedintprimarykeyauto_incrementnotnull,

a_titlevarchar(32),

a_contenttext);

oracle数据库中怎样给表创建自动增长列???

1、在oracle中没有想sqlserver自动增长列,如果想要达到这个效果必须要自己建立索引

2、建立索性,可以为你这个需要自动增长的表建立触发器,触发器自动帮你完成自动增长工作

3、第二种方法:建立索性,插入的时候自动获取索引的下一个值

oracle怎么用命令向建好的表中插入一列并使它成为第一列?请说详细点,最好举例说明。

分为两步来实现,首先插入数据,假设表T,有字段col1,col2,col3,需要向前200行的col2插入行数+1的值,并将col2变为第一列,

插入数据有两种方法:

1》直接update即:UPDATE T SET T.COL2 = ROWNUM + 1 WHERE ROWNUM =200;

2》写一个存储过程

CREATE OR REPLACE PROCEDURE INS IS

BEGIN

FOR I IN 1 .. 200 LOOP

INSERT INTO T (COL2) VALUES (I);

END LOOP;

COMMIT;

END;

编译并运行该过程,插入列即完成。

下面将COL2列调整为第一列:

方法一:借用临时表,建temp表与t表的表结构、数据完全一致,重建t表,调整字段顺序,再将temp表的数据导回来,即

CREATE TABLE TEMP AS SELECT * FROM T;

CREATE TABLE T(

COL2 TYPE,

COL1 TYPE,

COL3 TYPE

);

INSERT INTO T

SELECT COL2,COL1,COL3 FROM TEMP;

COMMIT;

DROP TABLE TEMP;

此方法需要足够的空间、回滚段和时间消耗

方法2:利用数据库表对象更新字段的序列号

在当前表用户下使用下面命令查询T对象的编号:

select OBJECT_name,object_id from all_objects where object_name='T';(注意一定要大写)

SQL /

OBJECT_NAME OBJECT_ID

------------------------------ ----------

T 50555

切换到sys帐号下

select obj#,col#,name from col$ where obj#=50555;

OBJ# COL# NAME

---------- ---------- ----------------------------

50555 1 COL1

50555 2 COL2

50555 3 COL3

Elapsed: 00:00:00.03

下面可以通过修改这个系统表来实现修改列名与顺序,注意,COL#就是列的顺序。

UPDATE COL$ SET COL#=2 WHERE OBJ#=50555 and name='COL1';

UPDATE COL$ SET COL#=1 WHERE OBJ#=50555 and name='COL2';

再次查询

select obj#,col#,name from col$ where obj#=50555;

OBJ# COL# NAME

---------- ---------- ------------------------------

50555 1 COL2

50555 2 COL1

50555 2 COL3

提交修改commit ;

重启服务

SQL SHUTDOWN IMMEDIATE

SQLSTARTUP

重新登录表用户下,查询SELECT * FROM T;

COL2 COL1 COL3

至此列顺序调整成功


当前文章:oracle如何创建列,oracle添加列sql
本文链接:http://hbruida.cn/article/dscgjgg.html