[Mysql中用SQL增加、刪除字段,修改字段名、字段類型、注釋,調整字段順序總結]
在網站重構中,通常會進行數據結構的修改,所以添加,刪除,增加mysql表的字段是難免的,有時為了方便,還會增加修改表或字段的注釋,把同字段屬性調整到一塊兒。這些操作可以在phpmyadmin或者別的mysql管理工具中完成,但是我們有時為了更方便的管理,會選擇寫sql語句來實現。
1.增加一個字段
代碼如下
//增加一個字段,默認為空alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一個字段,默認不能為空alter table user add COLUMN new2 VARCHAR(20) NOT NULL;
2.批量怎加字段方法一這里可以使用事務
代碼如下
bagin;
//事務開始alter table em_day_data add f_day_house7 int(11);alter table em_day_data add f_day_house8 int(11);alter table em_day_data add f_day_house9 int(11);alter table em_day_data add f_day_house10 int(11);commit;
//提交事務,事務結束
事務(transaction)是由一系列操作序列構成的程序執行單元,這些操作要么都做,要么都不做,是一個不可分割的工作單位。方法二 mysql 批量為表添加多個字段alter table 表名 add (字段1 類型(長度),字段2 類型(長度),字段3 類型(長度));
代碼如下
alter table em_day_data add (f_day_house11 int(11),f_day_house12 int(11),f_day_house13 int(11));
3.刪除一個字段
代碼如下
//刪除一個字段alter table user DROP COLUMN new2;
4.修改一個字段
代碼如下
//修改一個字段的類型alter table user MODIFY new1 VARCHAR(10);//修改一個字段的名稱,此時一定要重新指定該字段的類型alter table user CHANGE new1 new4 int;
5.批量修改字段名稱
代碼如下
alter table 表 change 修改前字段名 修改后字段名稱 int(11) not null,change 修改前字段名 修改后字段名稱 int(11) not null,change 修改前字段名 修改后字段名稱 int(11) not null,change 修改前字段名 修改后字段名稱 int(11) not null,change 修改前字段名 修改后字段名稱 int(11) not null
例子:
代碼如下
alter table em_day_data change f_day_house11 f_day_hour11 int(11) not null,change f_day_house12 f_day_hour12 int(11) not null,change f_day_house13 f_day_hour13 int(11) not null,change f_day_house14 f_day_hour14 int(11) not null,change f_day_house15 f_day_hour15 int(11) not null,change f_day_house16 f_day_hour16 int(11) not null,change f_day_house17 f_day_hour17 int(11) not null
6,添加注釋
代碼如下
// 可以為表添加注釋ALTER TABLE `table_name` COMMENT'注釋'; // 為字段添加注釋,同樣適用于修改ALTER TABLE `table_name` CHANGE `column_name` `column_name` type(longth) UNSIGNED NULL DEFAULT NULL COMMENT '注釋'
7,調整字段順序:alter table 表名change 字段名 新字段名 字段類型 默認值 after 字段名(跳到哪個字段之后)例子:
代碼如下
alter table ap[ps](http://www.111cn.net/fw/photo.html)tore_souapp_app_androidmarket;change getPriceCurrency getPriceCurrency varchar(50) default null AFTER getPrice;