扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
insert into table values(值1,值2,值3....)
创新互联建站-专业网站定制、快速模板网站建设、高性价比阜阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式阜阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖阜阳地区。费用合理售后完善,10多年实体公司更值得信赖。
几个字段就几个值
insert into table (字段1,字段2..) values(值1,值2,....)
首先,表的字段的物理位置是固定的
就是现在是ID NAME DEPT_ID的顺序不能改变,顶多是可以把薪水加到最后一列
增加一个字段的方法,看你是用的oracle
alter table s_emp add 薪水 number(10,2);
薪水那俩字你替换成你想改的英文名称吧
另外如果你非让它显示在ID和NAME中间,只能在查询中做到,否则就得全表删除重建
select id,薪水,name,dept_id from s_emp;
分为两步来实现,首先插入数据,假设表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
至此列顺序调整成功
你是要sql语句还是什么?
如果是Plsql 你选中表然后右击会有个菜单,找到Edit点击,
然后后面有个"+"和"-"号 加号就是增加一列了。如果是sql语句 alter table 你的表名 add 增加的列名 Integer(增加列的字段类型) 希望能帮到你!
添加列的语法是:
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;
------------------------------补充------------------------------------
就我所了解看来,你必须这样做。
你的列很多?有多少?有1000个吗?
表中列的顺序并不重要。你如果非要达到这种效果那么不得不付出代价。比如说:像上面将每个列都写上去。。。
数据不会丢失。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流