关于数据库修改表的一些总结
2014-01-16 09:24
239 查看
在我们设计数据库的时候,难免会有需要修改的地方,今天把学习的关于数据库的表修改的一些知识做一个总结。
对于每一个知识点我会举一个例子,我以一个名为test的表举例,test里面包含的列有id,name,age,content,这样可以帮助我们更好的理解这些知识。
1 修改列的数据类型
alter table test modify name varchar (30);
2 追加新列
alter table test add sex char(2);
3 改变列的位置
alter table test modify content after name;
4 改变列名和类型
alter table test change age old tinyint;
5 删除列
alter table test drop sex;
6 删除表
drop table test;
7 表的列构造+数据的复制
create table test2 select * from test;
8 复制列构造
create table test3 like test;
9 数据的复制
insert into test3 select * from test;
10 在修改表时添加主键约束
alter table test add constraint pk primary key (id);
11 在修改表示删除主键约束
alter table test drop primary key;
12 在修改表示添加外键约束
alter table test add constraint fk foreign key (id) references test2 (id);
13 在修改表时删除外键约束
alter table test drop foreign key fk;注:fk为外键名称
14 在修改表时添加默认值约束
alter table test alter sex set default ‘f’;
15 在修改表时删除默认值约束
alter table test alter sex drop default;
16 在修改表时添加非空约束
alter table test modify name varchar(20) not null;
注:在mysql数据库中,非空约束是不能删除的,但是可以将设置成not null的列修改成null,实际也就相当于取消了非空约束。
17 在修改表时添加检查约束
alter table test add constraint checkname check(age>19);
在mysql中,就算添加检查约束,但还是可以加入不合法数据
18 在修改表是添加一个唯一约束
alter table test add constraint uq unique(name);
19 在修改表时删除唯一约束
drop index uq on test;
oracle 复制表结构和表数据
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
对于每一个知识点我会举一个例子,我以一个名为test的表举例,test里面包含的列有id,name,age,content,这样可以帮助我们更好的理解这些知识。
1 修改列的数据类型
alter table test modify name varchar (30);
2 追加新列
alter table test add sex char(2);
3 改变列的位置
alter table test modify content after name;
4 改变列名和类型
alter table test change age old tinyint;
5 删除列
alter table test drop sex;
6 删除表
drop table test;
7 表的列构造+数据的复制
create table test2 select * from test;
8 复制列构造
create table test3 like test;
9 数据的复制
insert into test3 select * from test;
10 在修改表时添加主键约束
alter table test add constraint pk primary key (id);
11 在修改表示删除主键约束
alter table test drop primary key;
12 在修改表示添加外键约束
alter table test add constraint fk foreign key (id) references test2 (id);
13 在修改表时删除外键约束
alter table test drop foreign key fk;注:fk为外键名称
14 在修改表时添加默认值约束
alter table test alter sex set default ‘f’;
15 在修改表时删除默认值约束
alter table test alter sex drop default;
16 在修改表时添加非空约束
alter table test modify name varchar(20) not null;
注:在mysql数据库中,非空约束是不能删除的,但是可以将设置成not null的列修改成null,实际也就相当于取消了非空约束。
17 在修改表时添加检查约束
alter table test add constraint checkname check(age>19);
在mysql中,就算添加检查约束,但还是可以加入不合法数据
18 在修改表是添加一个唯一约束
alter table test add constraint uq unique(name);
19 在修改表时删除唯一约束
drop index uq on test;
oracle 复制表结构和表数据
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
相关文章推荐
- 数据库关于修改表的一些只是总结
- 关于上线后系统修改流程的一些小总结
- 关于zbp的一些修改的总结.
- 总结一些关于操作数据库是sql语句还是存储过程问题
- 关于jquery 的ajax调用的一些总结(记录插入数据库成功,但ajax返回false)
- 关于今天数据库学习的一些内容和总结
- 关于数据库的一些易犯错的总结
- 关于过去工作的一些总结:常用sql语句以及数据库查询优化
- 关于写程序时「对数据库操作」的一些总结。
- 关于数据库的一些总结
- 总结的关于数据库的一些面试题
- 关于ntext的批量修改 这个比较总要的就是一些函数的用法
- 黑马程序员--关于注解、泛型和类加载器的一些总结
- 备份:关于数据库连接的一些说明
- 关于之前自己总结的一些内容
- 关于 Web Service 的一些总结,一些理解
- 关于JSON的一些总结
- 关于structs中文处理的一些小总结
- 应用mina的例子做了一些修改,但有关于连接数的问题
- 关于程序性能优化基础的一些个人总结