產(chǎn)品操作MySQL第3篇 – 修改一張表

MYSQL

本資料為產(chǎn)品崗位作為日常工作參考西篓,語言口語化

At 2019/4/15 By David.Yang


修改一張數(shù)據(jù)表

隨著業(yè)務發(fā)展议谷,會出現(xiàn)數(shù)據(jù)表無法支撐當前業(yè)務數(shù)據(jù)的情況炉爆,

這時候我們需要對數(shù)據(jù)表進行變動,

數(shù)據(jù)表發(fā)生變動都通過SQL ALTER TABLE 語句來實現(xiàn)卧晓。


新增字段

-- 新增字段

-- ALTER TABLE `表名` ADD `列名稱` 字段類型(長度) [完整性約束條件] COMMENT '注釋說明' AFTER `位置字段`;

-- [完整性約束條件]指前文講的限定字段的條件芬首,比如:

-- 為空設(shè)定:NOT NULL DEFAULT '0'


示例:

先看看test表現(xiàn)在有哪些字段

SQL

mysql> desc test;



補充兩個字段

SQL

mysql>ALTER TABLE `test` ADD `name` varchar(20) COMMENT '名稱';

Query OK, 0 rows affected (0.17 sec)

Records: 0?Duplicates: 0? Warnings: 0


SQL

mysql>desc test;



看到name字段已經(jīng)成功添加到test表當中了

我們在添加一個字段,并且指定字段在name字段后面逼裆,

而且指定不能為空郁稍,默認值為0

SQL

mysql>ALTER TABLE `test` ADD `gender` int(2) NOT NULL DEFAULT 0 COMMENT '性別 0未知 1女 2男' AFTER `name`;

Query OK, 0 rows affected (0.11 sec)

Records: 0?Duplicates: 0? Warnings: 0


看看現(xiàn)在有哪些字段了

SQL

mysql>desc test;


修改字段屬性

-- 修改字段屬性

-- ALTER TABLE `表名` CHANGE `列名稱``新列名稱`(不需要重命名就用和原來列名) 字段類型(長度) [完整性約束條件]

-- 注意,修改時如果不帶完整性約束條件胜宇,原有的約束條件將丟失耀怜,如果想保留修改時就得帶上完整性約束條件

示例:

我們先添加一個字段,在修改他的屬性

SQL

mysql> ALTER TABLE `test` ADD `brith` int(10) COMMENT '生日';

Query OK, 0 rows affected (0.12 sec)

Records: 0? Duplicates: 0? Warnings: 0


mysql> desc test;

看到brith字段已經(jīng)加進去了


修改字段名稱

示例:

-- 修改字段名稱

-- ALTER TABLE `表名` CHANGE `列名稱` `新列名稱`(不需要重命名就用和原來列名) 字段類型(長度) [完整性約束條件]

-- 注意桐愉,修改時如果不帶完整性約束條件财破,原有的約束條件將丟失,如果想保留修改時就得帶上完整性約束條件

SQL

mysql> ALTER TABLE `test` CHANGE `brith` `brithday` int(10) COMMENT '生日';

Query OK, 0 rows affected (0.02 sec)

Records: 0? Duplicates: 0? Warnings: 0


mysql> desc test;

可以看到brith已經(jīng)改名為brithday


修改字段屬性

-- 修改字段屬性

-- ALTER TABLE `表名` MODIFY `列名稱` 字段類型(長度) [完整性約束條件]

-- 注意从诲,修改時如果不帶完整性約束條件左痢,原有的約束條件將丟失,如果想保留修改時就得帶上完整性約束條件

示例:

-- 修改brithday類型由數(shù)值改成字符串

SQL

mysql> ALTER TABLE `test` MODIFY `brithday` VARCHAR(20) COMMENT '生日';

Query OK, 1 row affected (0.08 sec)

Records: 1? Duplicates: 0? Warnings: 0

mysql> desc test;

可以看到brithday已經(jīng)由數(shù)值變成了一種文本格式


示例:

-- 將brithday移到name后面

SQL

mysql>ALTER TABLE `test` MODIFY `brithday` VARCHAR(20) COMMENT '生日' AFTER `name`;

Query OK, 0 rows affected (0.09 sec)

Records: 0?Duplicates: 0? Warnings: 0


mysql>DESC test;

可以看到成功講brithday移動到了name后面


刪除一個字段列

刪除一個不再需要的字段使用DROP 語句,

在刪除數(shù)據(jù)列之前應該確定業(yè)務當中已經(jīng)不再使用這個字段抖锥,

當前使用到的地方都已經(jīng)做了遷移,

否則…

-- 刪除列

-- ALTER TABLE `表名字` DROP `字段名稱`

示例:

此處先創(chuàng)建一個字段碎罚,

后然再將其刪除

SQL

mysql> ALTER TABLE `test` ADD `deleted` varchar(20) COMMENT '刪除演示字段';

Query OK, 0 rows affected (0.10 sec)

Records: 0? Duplicates: 0? Warnings: 0

mysql> desc test;


將其刪除

SQL

mysql>ALTER TABLE `test` DROP `deleted`;

Query OK, 0 rows affected (0.10 sec)

Records: 0?Duplicates: 0? Warnings: 0


mysql>desc test;


對字段值管理默認值

添加默認值

? 新建字段時指定默認值

我們可以在一個字段創(chuàng)建時就可以進行默認值賦值

-- 新增字段

-- 前面講 ALTER TABLE `表名` ADD `字段名` 這個語法時講到約束條件里面是可以將默認值之類進行規(guī)定


演示:

SQL

mysql> ALTER TABLE `test` ADD `age` int(4) DEFAULT 18;

Query OK, 0 rows affected (0.14 sec)

Records: 0? Duplicates: 0? Warnings: 0

mysql> desc test;

設(shè)定age默認值為18磅废,之后所有數(shù)據(jù)在不賦予age時數(shù)據(jù)庫默認會填入18


注:

新字段創(chuàng)建后,存量數(shù)據(jù)也會被賦予默認值


? 修改已存在字段的默認值

-- 已存在字段設(shè)置默認值

-- ALTER TABLE `表名` ALTER `字段名` SET DEFAULT '默認值';


演示:

SQL

mysql> ALTER TABLE `test` ALTER `name` SET DEFAULT '匿名用戶';

Query OK, 0 rows affected (0.01 sec)

Records: 0? Duplicates: 0? Warnings: 0

mysql> desc test;


注:

針對已存在的字段進行默認值賦予荆烈,

存量數(shù)據(jù)不受影響拯勉,不會被賦值,

新數(shù)據(jù)將會賦予默認值憔购。


刪除默認值

使一個字段的默認值失效宫峦,直接刪除即可。

-- 刪除默認值

-- ALTER TABLE `表明` ALTER `字段名` DROP DEFAULT;


演示:

SQL

mysql> ALTER TABLE `test` ALTER `name` DROP DEFAULT;

Query OK, 0 rows affected (0.02 sec)

Records: 0? Duplicates: 0? Warnings: 0

mysql> desc test;


我們可以發(fā)現(xiàn)name的默認值已經(jīng)不存在


數(shù)據(jù)表重命名

我先復制一張表出來玫鸟,然后再演示刪除一張表导绷。


演示:

SQL

mysql> CREATE TABLE `test1` SELECT * FROM `test`;

Query OK, 1 row affected (0.05 sec)

Records: 1? Duplicates: 0? Warnings: 0

mysql> show tables;


再對表進行重命名


-- ALTER TABLE `表名字` RENAME `表新名字`


演示:

SQL

mysql>ALTER TABLE `test1` RENAME `test2`;

Query OK, 0 rows affected (0.02 sec)


mysql>show tables;


可以發(fā)現(xiàn)表已經(jīng)由test1改名為test2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市屎飘,隨后出現(xiàn)的幾起案子妥曲,更是在濱河造成了極大的恐慌,老刑警劉巖钦购,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檐盟,死亡現(xiàn)場離奇詭異,居然都是意外死亡押桃,警方通過查閱死者的電腦和手機葵萎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唱凯,“玉大人羡忘,你說我怎么就攤上這事】闹纾” “怎么了壳坪?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掰烟。 經(jīng)常有香客問我爽蝴,道長,這世上最難降的妖魔是什么纫骑? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任蝎亚,我火速辦了婚禮,結(jié)果婚禮上先馆,老公的妹妹穿的比我還像新娘发框。我一直安慰自己,他們只是感情好煤墙,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布梅惯。 她就那樣靜靜地躺著宪拥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铣减。 梳的紋絲不亂的頭發(fā)上她君,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音葫哗,去河邊找鬼缔刹。 笑死,一個胖子當著我的面吹牛劣针,可吹牛的內(nèi)容都是我干的校镐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼捺典,長吁一口氣:“原來是場噩夢啊……” “哼鸟廓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起襟己,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肝箱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后稀蟋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煌张,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年退客,在試婚紗的時候發(fā)現(xiàn)自己被綠了骏融。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡萌狂,死狀恐怖档玻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茫藏,我是刑警寧澤误趴,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站务傲,受9級特大地震影響凉当,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜售葡,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一看杭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挟伙,春花似錦楼雹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榨咐。三九已至,卻和暖如春谴供,著一層夾襖步出監(jiān)牢的瞬間块茁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工憔鬼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留龟劲,地道東北人胃夏。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓轴或,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仰禀。 傳聞我的和親對象是個殘疾皇子照雁,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,787評論 5 116
  • 一、數(shù)據(jù)庫簡介 1.數(shù)據(jù)庫系統(tǒng) 1.1數(shù)據(jù)庫 DataBase【DB】答恶,指的是長期保存到計算機上的數(shù)據(jù)饺蚊,按照一定順...
    鄭元吉閱讀 594評論 0 6
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應用程序悬嗓。每個數(shù)據(jù)庫具有一個或多個不同的API污呼,用于創(chuàng)建,訪問包竹,管理...
    chen_000閱讀 4,032評論 0 19
  • 1、數(shù)據(jù)庫(database)管理 1.1 create 創(chuàng)建數(shù)據(jù)庫 1.2 show 查看所有數(shù)據(jù)庫 1.3 a...
    七秒浮屠閱讀 758評論 0 3
  • 馬克思老婆子布置作業(yè)声诸, 現(xiàn)寫現(xiàn)交那種酱讶, 我不在班。
    達浪打啦閱讀 97評論 0 0