日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql对所有列的数据进行修改6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (3)...

發布時間:2023/12/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql对所有列的数据进行修改6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (3)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加和刪除列

使用ADD向表中添加新列,使用DROP刪除現有列。DROP col_name是對標準SQL的MySQL擴展。

若要在表行的特定位置添加列,請使用FIRST col_name 或者 AFTER col_name。默認情況是添加到最后。

如果表只包含一列,則不能刪除該列。如果您想要刪除表,請使用DROP TABLE語句。

如果從表中刪除列,那么列也將從其所屬的任何索引中刪除。如果組成一個索引的所有列都被刪除,那么這個索引也會被刪除。如果使用CHANGE或MODIFY縮短存在索引的列,而結果列長度小于索引長度,MySQL會自動縮短索引。

對于ALTER TABLE ... ADD,如果列具有使用非確定性函數的表達式默認值,則語句可能會產生警告或錯誤。

重命名、重新定義和重新排序列

CHANGE、MODIFY、RENAME COLUMN 和 ALTER子句允許更改現有列的名稱和定義。它們具有以下比較特征:

●CHANGE:

■ 可以重命名列并更改其定義。

■ 具有比MODIFY、RENAME COLUMN更多的功能,但以犧牲某些操作的便利性為代價。如果不重命名,CHANGE 需要對列進行兩次命名,如果只重命名,則需要重新指定列定義。

■ 使用FIRST或AFTER,可以對列重新排序。

●MODIFY:

■ 可以更改列定義,但不能更改列的名稱。

■ 更改列定義而不重命名比 CHANGE 更方便。

■ 使用FIRST或AFTER,可以對列重新排序。

●RENAME COLUMN:

■ 可以更改列名,但不能更改其定義。

■ 在不更改列定義的情況下重命名列比CHANGE更方便。

●ALTER:僅用于更改列的默認值。

CHANGE是對標準SQL的MySQL擴展。MODIFY和RENAME COLUMN是用于Oracle兼容性的MySQL擴展。

若要更改列名稱和定義,請使用CHANGE,指定新舊名稱和新定義。例如,要將一個INT NOT NULL列從a重命名為b,并更改其定義為使用BIGINT數據類型,同時保留NOT NULL屬性,請這樣做:

若要更改列定義但不更改其名稱,請使用CHANGE或MODIFY。使用CHANGE,語法需要兩個列名,因此必須兩次指定相同的名稱才能保持名稱不變。例如,要更改b列的定義,可以這樣做:

MODIFY更方便在不改變名稱的情況下改變定義,因為它只需要列名一次:

若要更改列名,但不更改其定義,請使用CHANGE或RENAME COLUMN。對于CHANGE,語法需要列定義,因此要保持定義不變,必須重新指定列當前具有的定義。例如,要將一個INT NOT NULL列從b重命名為a,請這樣做:

RENAME COLUMN更方便在不改變定義的情況下更改名稱,因為它只需要新舊名稱:

通常,不能將列重命名為表中已經存在的名稱。但是,有時情況并非如此,比如交換名稱或在循環中移動名稱。如果一個表有名為a、b和c的列,這些是有效的操作:

對于使用CHANGE或MODIFY進行的列定義更改,定義必須包括數據類型和應該應用于新列的所有屬性,而不是索引屬性(如PRIMARY KEY 或 UNIQUE)。原始定義中出現但未為新定義指定的屬性將不進行繼承。假設一個列col1被定義為INT UNSIGNED DEFAULT 1 COMMENT ‘my column‘,然后你按照如下方式修改該列,只打算將INT改為BIGINT:

該語句將數據類型從INT更改為BIGINT,但也刪除了UNSIGNED、DEFAULT和COMMENT屬性。為了保留它們,語句必須明確地包含它們:

對于使用CHANGE或MODIFY更改數據類型,MySQL嘗試將現有的列值盡可能轉換為新的類型。

警告

這種轉換可能會導致數據的更改。例如,如果縮短字符串列,值可能會被截斷。如果轉換到新的數據類型會導致數據丟失,為了防止操作成功,請在使用ALTER TABLE之前啟用嚴格SQL模式。

如果使用CHANGE或MODIFY縮短存在索引的列,而結果列長度小于索引長度,MySQL會自動縮短索引。

對于通過CHANGE或RENAME COLUMN重命名的列,MySQL自動將這些引用重命名為重命名列:

●引用舊列的索引,包括不可見的索引和禁用的MyISAM索引。

●引用舊列的外鍵。

對于通過CHANGE或RENAME COLUMN重命名的列,MySQL不會自動將這些引用重命名為重命名列:

●引用重命名列的生成列和分區表達式。必須如同ALTER TABLE語句中一樣,使用CHANGE重新定義這些表達式。

●引用重命名列的視圖和存儲程序。必須手動更改這些對象的定義以引用新的列名。

若要對表中的列重新排序,請在CHANGE或MODIFY操作中使用FIRST和AFTER。

ALTER ... SET DEFAULT 或 ALTER ... DROP DEFAULT分別為列指定新的默認值或刪除舊的默認值。如果舊的默認值被刪除,并且列可以為NULL,那么新默認值為NULL。如果列不能為NULL, MySQL會分配一個默認值。

主鍵和索引

DROP PRIMARY KEY刪除主鍵。如果沒有主鍵,就會發生錯誤。

如果啟用了sql_require_primary_key系統變量,嘗試刪除主鍵會產生錯誤。

如果在表中添加UNIQUE INDEX 或 PRIMARY KEY,MySQL會將其存儲在任何非唯一索引之前,以便盡早檢測重復鍵。

DROP INDEX刪除索引。這是對標準SQL的MySQL擴展。要確定索引名稱,請使用SHOW INDEX FROM tbl_name。

有些存儲引擎允許在創建索引時指定索引類型。index_type說明符的語法是USING type_name。首選位置在列列表之后。在以后的MySQL版本中,將不再支持使用列列表之前的選項。

index_option值指定索引的其他選項。USING就是這樣一個選項。

RENAME INDEX old_index_name TO new_index_name 重命名索引。這是對標準SQL的MySQL擴展。表的內容保持不變。old_index_name必須是表中未被ALTER TABLE語句刪除的現有索引的名稱。new_index_name是新的索引名,在應用了更改之后,它不能在結果表中索引名重復。兩個索引名都不能是PRIMARY。

如果在MyISAM表上使用ALTER TABLE,那么將在單獨的批處理中創建所有非惟一索引(如同REPAIR TABLE)。當有很多索引時,這會使ALTER TABLE更快。

對于MyISAM表,可以顯式地控制鍵更新。使用ALTER TABLE ... DISABLE KEYS告訴MySQL停止更新非唯一索引。然后使用ALTER TABLE ... ENABLE KEYS 來重新創建丟失的索引。MyISAM使用一種特殊的算法來實現這一點,這種算法比逐個插入鍵要快得多,因此在執行批量插入操作之前禁用鍵應該會有相當大的速度提高。使用ALTER TABLE ... DISABLE KEYS除了前面提到的權限外,還需要INDEX權限。

雖然禁用了非惟一索引,但是對于SELECT和EXPLAIN等語句,它們會被忽略,否則它們將使用這些索引。

在使用ALTER TABLE語句之后,可能需要運行ANALYZE TABLE來更新索引基數信息。

ALTER INDEX操作允許將索引變為可見或不可見。優化器不使用不可見索引。索引可見性的修改適用于主鍵以外的索引(顯式或隱式)。該特性與存儲引擎無關(支持任何引擎)。

官方文檔地址:

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

MySQL的SQL語句 - 數據定義語句(6)- ALTER TABLE 語句 (3)

標簽:兼容性???ble???視圖???支持???就會???屬性???命名???sql語句???mamicode

本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴

本文系統來源:https://blog.51cto.com/15023289/2560867

總結

以上是生活随笔為你收集整理的mysql对所有列的数据进行修改6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (3)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品久久久久久久自慰 | 人妻一区二区三区 | 香蕉久操 | 看av的网址 | 中文字幕av无码一区二区三区 | 国产男女猛烈无遮挡a片漫画 | 亚洲国产精品久久久久久6q | 欧美xxxxbbb | aaaaaabbbbbb毛片| 91视频在线观看 | 1000部啪啪未满十八勿入 | 成年人国产 | 丰满人妻妇伦又伦精品国产 | 竹菊影视一区二区三区 | 午夜精品在线 | 乌克兰性极品xxxhd | 一区二区三区美女视频 | 国产精品一区二区在线播放 | 午夜精品久久久久久久四虎美女版 | 天天操天天干天天爽 | 欧美wwwxxxx | 亚洲一区二区观看 | 国产吃瓜在线 | 91视频啊啊啊 | 亚洲天天 | 黄色在线免费视频 | 好吊色一区二区 | 先锋影音av在线 | 国产精品亚洲lv粉色 | 制服丝袜av在线播放 | 中国老头性行为xxxx | 亚洲女人初尝黑人巨大 | 欧美 中文字幕 | 狂野欧美| 亚洲视频综合网 | 国产卡一卡二卡三无线乱码新区 | 粉嫩av网址 | 色一情一伦一子一伦一区 | 精品国产黄 | 性欧美又大又长又硬 | 欧美综合自拍亚洲综合图片区 | 欧美a级在线 | 欧美成人看片黄a免费看 | 天天碰天天| 亚洲黄色一级大片 | 久久久久久久久久久久电影 | 香蕉人妻av久久久久天天 | 成人精品二区 | 天天舔天天操天天干 | 91官网在线 | 不卡视频在线播放 | 亚洲黄色小说图片 | 精品国产一区二区三区久久久 | 国产小视频在线观看 | 久久久888| 国产精品无码专区av在线播放 | 黄色香港三级三级三级 | 欧美少妇毛茸茸 | 91精品网站 | www99热 | 国产网站黄色 | 成人依依 | av中文网站 | 国产精品美女www爽爽爽 | 在线一区二区不卡 | 色偷偷亚洲 | 精彩毛片| 87福利视频 | 午夜av在线 | 美日韩精品一区二区 | 亚洲黄色网络 | 中文字幕有码无码人妻av蜜桃 | 日韩三级欧美 | 黄色片链接 | 日本免费在线播放 | 中文字幕日韩三级片 | 特黄a级片 | 国产精品偷伦视频免费看 | 最近中文字幕第一页 | 国产九九九精品 | 老女人性视频 | 在线天堂一区 | www.夜夜夜| 日韩欧美国产视频 | 欧美aⅴ视频 | 波多野吉衣久久 | ts人妖另类精品视频系列 | 欧美大尺度视频 | 色九九 | 国产人妻精品一区二区三区 | 日韩va亚洲va欧美va久久 | 久久av网站 | 国产另类av | 中文字幕免费在线看线人动作大片 | 久久伊人超碰 | 伊人艹 | 狠狠操亚洲 | 久久在线播放 | 亚洲综合第一页 |