sql

下面是几种不同数据库的升级脚本比较,实际上是对不同数据库版本的ALTER命令用法的比较

约定:[]内的内容可有可无

1,修改字段类型[关键字:modify&alter]

mysql:

ALTER TABLE 表名 MODIFY [COLUMN] 字段名 字段类型定义;

sqlserver:

ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型定义;
[这里在修改约束的时候需要用到专门的关键字CONSTRAINT]

oracle:

ALTER TABLE 表名 MODIFY ( 字段名 字段类型定义);
[Oracle,修改类型时所改字段的数据必须为空:]

2,增加和删除字段

增加字段

ALTER TABLE 表名 ADD 字段名 字段类型定义;

删除字段

mysql:
ALTER TABLE 表名 DROP[COLUMN] 字段名

sqlserver:
ALTER TABLE 表名 DROP COLUMN 字段名

3,修改列名

mysql:
可以用CHANGE同时修改列名和列类型,如:
ALTER TABLE table CHANGE column newcolumn BIT NOT NULL
这里column和newcolumn可以相同,
也就是说,CHANGE可以取代MODIFY了,可以用来单纯修改列类型或者列名

sqlserver:
暂时只能调用存储过程
EXEC SP_RENAME table.column','newcolumn','COLUMN'

oracle:
在817版本以上支持RENAME了,没有具体测试过,9i以上版本比较保险
ALTER TABLE table RENAME COLUMN column TO newcolumn;


以下是mysql的

1.增加一个字段(一列)

alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值

例如:alter table mybook add column publish_house varchar(10) default '';
刪除一個字段

alter table drop column xxx ---> xxx为列名


2.更改一个字段名字(也可以改变类型和默认值)

alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name指改后的字段名称

例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;

3.改变一个字段的默认值

alter table table_name alter column_name set default value;

例如:alter table book alter flag set default '0';

4.改变一个字段的数据类型

alter table table_name change column column_name column_name type;

例如:alter table userinfo change column username username varchar(20);

5.向一个表中增加一个列做为主键

alter table table_name add column column_name type auto_increment PRIMARY KEY;

例如:alter table book add column id int(10) auto_increment PRIMARY KEY;

6.数据库某表的备份,在命令行中输入:

mysqldump -u root -p database_name table_name > bak_file_name

例如:mysqldump -u root -p f_info user_info > user_info.dat

7.导出数据

select_statment into outfile"dest_file";

例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";

8.导入数据

load data infile"file_name" into table table_name;

例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;

9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。

例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值