十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
oracle怎么把一列数据插入到另一列的方法。
成都创新互联公司主要从事网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务比如,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
如下参考:
1.一个学生的数据表,这里我们需要修改数据表中的StudentName数据表中的个人数据。
2.我们首先打开我们的数据库查询语句,输入查询语句首先查询数据表中的数据内容。
3.输入查询语句:Select*fromStudent,输入后,选择所有内容,然后选择执行按钮,执行SQL语句。
4.执行后,在Student表的第4行(Studentname中的“cui”),我们需要将其更改为“liangliang”。
5.右键点击你的电子表格,选择“编辑前200行”。
6.这里我们直接选择里面的内容,改为“亮亮”。
7.修改完成后在这里我们选择右键点击内容,然后选择执行里面。
8.执行之后,我们使用数据查询语句以相同的方式查询数据。在这里,我们可以看到在下图中数据内容已经被成功修改。
分为两步来实现,首先插入数据,假设表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中没有自动增长,只有序列号\x0d\x0a添加一条记录和sqlserver一样\x0d\x0a语法:insert into table(列,列,列) values(value,value,value); \x0d\x0a\x0d\x0a如果有个自动增长列\x0d\x0a可以用这种方法,首先创建一个序列号SEQ_Test\x0d\x0a然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);
第一种方法:企业管理器-〉设计表-〉右键第4列-〉插入列
第二种方法:SQL语句,没有直接在指定位置插入的语句,不过我考虑的语句很简单
1.新建一张表,原来是abcde,现在新建为abcXde,X是插入的列
2.把原来abcde中的数据全部插入新表中
3.删除旧表abcde
添加列的语法是:
alter table table_name add (w number(4),y number(4));
但是你是无法控制新增的列在1,2,3,4,5前面。只能采用变通的方法;
1 如上先把列添加上。
2 然后
create table table_name1 select (A,B,C...,W,Y,1,2,3,4,5) from table_name;
3 drop table table_name;
4 alter table table_name1 rename table_name;