您的位置:首页 > 数据库 > Oracle

mysql和oracle增删改字段并且批量更新字段内容的操作

2015-10-15 13:53 776 查看
【mysql】

一、基础

--增加字段名称,并且给定长度

alter table t_test add address varchar(100);

--修改字段名称和类型长度

alter table t_test change address new_adds varchar(200);

--删除字段名称和长度

alter table t_test drop address;

二、难度

--批量更新内容

比如把新增加的字段里面添加varchar类型的值,而这些值是原有表中的username+邮编123456

有三种思路:

1、直接写(逐行更新,单表)

update t_test td set location=CONCAT(td.username,td.password); //concat函数可以拼接多个字符串

update t_test td set location=CONCAT(left(td.username,1),td.password); //left(str,2),截取字符str的左边三位数(str可以是int varchar或者double等等)

update t_test td set location=CONCAT(right(td.username,2),td.password);//right(str,2),截取字符str的右边2位数(str可以是int varchar或者double等等)

其他截取字符串的举例介绍请参考:http://www.cnblogs.com/zdz8207/p/3765073.html

2、建立临时表

select * from xslsb xb,(select mdh from xslsb ) xb2 where xb2.name=xb.name;

3、利用程序生成sql语句(可能有数万条)

写一个程序读取需要的数据,拼接成update table_name set rows='12344' 形式;但是语句相当多

不建议使用

三、修改表名称

alter table t_test rename t_test_name;

【oracle】

一、基础

--1、增加一个字段

语法:alter table tablename add(colum type [null/not null/check()]);

alter table t_test_name add(password varchar2(20)not null);

alter table t_test_name add(mail varchar2(20)check(length(mail)=20));

alter table t_test_name add(sex varchar2(20)check(sex in('男','女')));

alter table t_test_name add(time2 varchar2(20)check(instr(time2,'@')>0));

--2、删除一个字段

语法:alter table tablename drop column tablename ;

alter table t_test_name drop column time2;

--3、修改一个字段的类型和名称

语法:alter table tablename modify(column_name type );

alter table t_test_name modify(password int);

语法:alter table tablename rename column column_name to new_column_name;

alter table t_test_name rename column password to paw;

二、难度

重命名表名称语法:ALTER TABLE table_name RENAME TO new_table_name;

例:alter table t_test_name rename to t_name_test;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: