sql语法生疏了啊,虽然原来用的sql server,但还是积累一些mysql
如果想在一个已经建好的表中添加一列,可以用诸如:
alter table ttt add column xxx varchar(20) not null;
这条语句会向已有的表ttt中加入一列xxx,这一列在表的最后一列位置且属性为非空 如果我们希望添加在指定的一列,可以用:
alter table ttt add column yyy varchar(20) not null after xxx;
上面这个命令的意思是说添加yyy列到xxx这一列后面。如果想添加到第一列的话,可以用:
alter table ttt add column xxx varchar(20) not null first;
将表ttt中的列名xxx改为yyy
alter table ttt change xxx yyy char;
将表ttt中列名为的xxx列删除
alter table ttt drop column xxx ;
更新17.03.25
查看表每列属性 desc ttt
添加主键约束:
alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
添加外键约束:
alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除主键约束:
alter table 表名 drop primary key;
删除外键约束:
alter table 表名 drop foreign key 外键(区分大小写);
修改表名:alter table t_book rename to bbb;
修改列属性:alter table t_book modify name varchar(22);
更新17.03.26
MySQL修改字段默认值
alter table topic alter column cateId set default '2';
语法总结
alter table表名alter column字段名drop default; (若本身存在默认值,则先删除)
alter table表名 alter column 字段名 set default默认值;(若本身不存在则可以直接设定)
更新17.05.18
select *
into 新表名
from (select * from T1 union all select * from T2)
这个语句可以实现将合并的数据追加到一个新表中。
不合并重复数据
select * from T1 union all select * from T2
合并重复数据
select * from T1 union select * from T2
两个表,表1 表2
如果要将 表1的数据并入表2用以下语句即可
insert into 表2(字段1,字段2) select 字段1,字段2 from b1
注意,必须把字段名全部写清楚,而且不允许把自动编号进去写进去,要合并自动编号字段必须重写一个算法一条一条记录地加进去
1 insert into b1 select * from b2
2 select * into newtable from (select * from b1 union all select * from b2)
visitor tracker