oracle怎么把一列數(shù)據(jù)插入到另一列的方法。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)比如,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
如下參考:
1.一個(gè)學(xué)生的數(shù)據(jù)表,這里我們需要修改數(shù)據(jù)表中的StudentName數(shù)據(jù)表中的個(gè)人數(shù)據(jù)。
2.我們首先打開我們的數(shù)據(jù)庫查詢語句,輸入查詢語句首先查詢數(shù)據(jù)表中的數(shù)據(jù)內(nèi)容。
3.輸入查詢語句:Select*fromStudent,輸入后,選擇所有內(nèi)容,然后選擇執(zhí)行按鈕,執(zhí)行SQL語句。
4.執(zhí)行后,在Student表的第4行(Studentname中的“cui”),我們需要將其更改為“l(fā)iangliang”。
5.右鍵點(diǎn)擊你的電子表格,選擇“編輯前200行”。
6.這里我們直接選擇里面的內(nèi)容,改為“亮亮”。
7.修改完成后在這里我們選擇右鍵點(diǎn)擊內(nèi)容,然后選擇執(zhí)行里面。
8.執(zhí)行之后,我們使用數(shù)據(jù)查詢語句以相同的方式查詢數(shù)據(jù)。在這里,我們可以看到在下圖中數(shù)據(jù)內(nèi)容已經(jīng)被成功修改。
分為兩步來實(shí)現(xiàn),首先插入數(shù)據(jù),假設(shè)表T,有字段col1,col2,col3,需要向前200行的col2插入行數(shù)+1的值,并將col2變?yōu)榈谝涣校?/p>
插入數(shù)據(jù)有兩種方法:
1》直接update即:UPDATE T SET T.COL2 = ROWNUM + 1 WHERE ROWNUM =200;
2》寫一個(gè)存儲(chǔ)過程
CREATE OR REPLACE PROCEDURE INS IS
BEGIN
FOR I IN 1 .. 200 LOOP
INSERT INTO T (COL2) VALUES (I);
END LOOP;
COMMIT;
END;
編譯并運(yùn)行該過程,插入列即完成。
下面將COL2列調(diào)整為第一列:
方法一:借用臨時(shí)表,建temp表與t表的表結(jié)構(gòu)、數(shù)據(jù)完全一致,重建t表,調(diào)整字段順序,再將temp表的數(shù)據(jù)導(dǎo)回來,即
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;
此方法需要足夠的空間、回滾段和時(shí)間消耗
方法2:利用數(shù)據(jù)庫表對(duì)象更新字段的序列號(hào)
在當(dāng)前表用戶下使用下面命令查詢T對(duì)象的編號(hào):
select OBJECT_name,object_id from all_objects where object_name='T';(注意一定要大寫)
SQL /
OBJECT_NAME OBJECT_ID
------------------------------ ----------
T 50555
切換到sys帳號(hào)下
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
下面可以通過修改這個(gè)系統(tǒng)表來實(shí)現(xiàn)修改列名與順序,注意,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 ;
重啟服務(wù)
SQL SHUTDOWN IMMEDIATE
SQLSTARTUP
重新登錄表用戶下,查詢SELECT * FROM T;
COL2 COL1 COL3
至此列順序調(diào)整成功
oracle中沒有自動(dòng)增長,只有序列號(hào)\x0d\x0a添加一條記錄和sqlserver一樣\x0d\x0a語法:insert into table(列,列,列) values(value,value,value); \x0d\x0a\x0d\x0a如果有個(gè)自動(dòng)增長列\(zhòng)x0d\x0a可以用這種方法,首先創(chuàng)建一個(gè)序列號(hào)SEQ_Test\x0d\x0a然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);
第一種方法:企業(yè)管理器-〉設(shè)計(jì)表-〉右鍵第4列-〉插入列
第二種方法:SQL語句,沒有直接在指定位置插入的語句,不過我考慮的語句很簡(jiǎn)單
1.新建一張表,原來是abcde,現(xiàn)在新建為abcXde,X是插入的列
2.把原來abcde中的數(shù)據(jù)全部插入新表中
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;