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

来源:互联网 发布:oppor9翻墙用什么软件 编辑:程序博客网 时间:2024/06/12 22:14

【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;


0 0
原创粉丝点击