日韩性视频-久久久蜜桃-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怡红院| 欧美黑人性猛交xxxx | 91麻豆精品国产 | 日韩中文字幕国产 | 久久久久玖玖 | 日韩a毛片| 麻豆精品在线播放 | 操欧美老女人 | 国产精品久久久免费观看 | 公车乳尖揉捏酥软呻吟 | 欧美高h | 欧美综合自拍 | 亚洲成人av免费在线观看 | 特级西西444www大精品视频 | 成人影片在线播放 | 成人av片在线观看 | 伊人啪啪网| 999xxxx| 天天摸夜夜添 | 国产成人精品免高潮费视频 | 一区二区三区亚洲视频 | 一本久久久 | 欧美性生活网站 | 国产福利不卡 | 男女做爰真人视频直播 | 大陆农村乡下av | www..com黄色| 国产成人无码一区二区在线播放 | 国产一二 | 蜜桃av在线播放 | 国产在线导航 | 日韩欧美毛片 | 午夜三区 | 久久精品99国产 | 亚洲精品久久久久久 | 成年人在线免费观看网站 | 日韩精品无码一区二区 | 欧美在线视频一区二区 | 好男人在线观看 | 99re6在线 | 久久手机看片 | 天堂中文资源在线观看 | 精品一区二区在线观看视频 | 欧美无吗 | 久久精品国产网红主播 | 日韩视频免费在线播放 | 美利坚合众国av | 亚洲第一区在线观看 | 致单身男女免费观看完整版 | 热久久亚洲 | 天天干天天草 | 午夜老司机福利 | 亚洲欧美中文字幕5发布 | 九色91popny蝌蚪新疆 | 国产一区二区精品久久 | 日韩成人精品视频 | 欧美一级大片在线观看 | 精品天堂 | 美女搞黄视频网站 | 日韩精彩视频在线观看 | 国产一级做a爰片久久毛片男男 | 成全影视在线观看第8季 | 中文字幕15页 | 亚洲成人一二三区 | 96亚洲精品久久久蜜桃 | 波多野吉衣伦理片 | 国产成人精品一区二区三区视频 | 一二区视频 | 亚洲巨乳 | 欧美色图激情 | 国产色视频在线 | 天天操精品 | 国产第一精品 | 色涩视频在线观看 | 亚洲最大福利网 | 国产99久久久久久免费看 | 毛茸茸free性熟hd | 丝袜老师扒开让我了一夜漫画 | 日本一区二区三区在线看 | www.youjizz.com视频 | 成人在线视频一区二区三区 | 黄视频在线 | 日本xxxxwww| 国产欧美一区二区在线观看 | 精品国产av一区二区三区 | julia一区二区三区中文字幕 | 女生被草 | 国产3区| 欧美性猛交ⅹxx乱大交 | 午夜日韩欧美 | 高潮流白浆在线观看 | 精品国产不卡 | 黑丝扣逼| 免费毛片网站在线观看 | 日本一本久久 | 日日射视频 | 天天插天天射 | 国产高潮在线 | 天堂视频网|