<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 編輯數據表結構 >[info] 本節只介紹開發中最常用的部分,更多內容,請參考MySQL手冊 #### 基本語法: ~~~ ALTER TABLE 表名 [ADD ...] [DROP ... ] [CHANGE ...] [ RENAME ...] ~~~ ####語句看上去并不復雜,下面我用一個個實例演示用法 * * * * * #### 1、添加字段 * 語法: ~~~ ALTER TABLE 表名 ADD 新字段名 字段類型 約束條件 [AFTER 字段名] [FIRST] ~~~ >[info] FIRST :添加到表中第一個字段之前! 默認情況下,新添加的字段做為表的最后一個字段。 * 實例:tp5_staff表sex字段后添加新字段:age(年齡),要求整型、無符號、不為空、默認值為22; * 語句如下: ~~~ #添加新字段:age(年齡),要求整型、無符號、不為空、默認值為22,加到sex字段后面 ALTER TABLE `tp5_staff` ADD age TINYINT(3) UNSIGNED NOT NULL DEFAULT '22' AFTER sex; #查看增加age字段后的表結構 DESC `tp5_staff`; ~~~ * 運行結果: ![](https://box.kancloud.cn/95909a3d98eaef38d28afca7f9305dd9_1019x747.png) * * * * * #### 2、修改字段名稱 * 語法: ~~~ ALTER TABLE 表名 CHANGE 原字段名 新字段名 原字段類型 原約束條件 ; ~~~ >[danger] 1、哪怕僅僅是修改字段名稱,新字段的類型也必須給出; 2、如果僅僅修改字段名稱,那么最好在修改之前,查詢一下原表要修改的字段類型和約束條件(DESC 表名),防止原來存儲的數據因類型不對而出錯; * 實例:將tp5_staff表sex字段修改為xb,其它內容不變; * 語句如下: ~~~ #添加新字段:age(年齡),要求整型、無符號、不為空、默認值為22,加到sex字段后面 ALTER TABLE `tp5_staff` CHANGE sex xb TINYINT(2) UNSIGNED NOT NULL DEFAULT 1; #查看增加age字段后的表結構 DESC `tp5_staff`; ~~~ * 運行結果如下: ![](https://box.kancloud.cn/e01fd3989d951a7946189c89252f6054_1043x775.png) * * * * * #### 3、修改字段名稱和類型 >[info] 其實與上面的語法基本是一樣的。 1、如果僅修改類型,只要將新字段名,設置與原字段同名即可。 2、新字段后面要寫新的類型和約束條件等,不要復制原來字段的內容。 * 語法: ~~~ ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段類型 新約束條件 ; ~~~ * 實例:tp5_staff表中,salary字段變更為gz,類型修改成INT(8),無符號、不為空; * 語句: ~~~ #將salary字段變更為gz,類型變更為INT(8),無符號,不為空 ALTER TABLE `tp5_staff` CHANGE salary gz INT(8) UNSIGNED NOT NULL ; #查看字段變更后的表結構 DESC `tp5_staff`; ~~~ * 運行結果: ![](https://box.kancloud.cn/83225d583dd92f5fb922862a5040200c_1043x775.png) * 如果想修改數據表的當前主鍵,并將主鍵起始值設置為指定值,可這樣操作: ~~~ # 修改一下表結構,設置主鍵和約束條件 ALTER TABLE 表名 CHANGE id id INT(4) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT ; #設置自增起始于1001 ALTER TABLE 表名 AUTO_INCREMENT = 自增主鍵起始值 ; ~~~ * * * * * #### 4、刪除字段 >[danger] 刪除字段是不可撤消的操作,所以刪除字段之前,請確保該字段值已無效 * 語法:(非常簡單) ~~~ ALTER TABLE 表名 DROP 要刪除的字段名 ; ~~~ * 實例:刪除tp5_staff表中的job 字段 >[info] 為不了破壞原數據,我們新建一個字段來演示刪除操作 * 語句: ~~~ # 先添加一個job字段 ALTER TABLE `tp5_staff` ADD job CHAR(20) NOT NULL ; #查看是否添加成功 DESC `tp5_staff`; #刪除剛添加的job字段 ALTER TABLE `tp5_staff` DROP job; #查看是否刪除成功 DESC `tp5_staff`; ~~~ * 運行結果: ![](https://box.kancloud.cn/4113d9f93723388479b859751dc8de10_1198x924.png) * * * * * #### 5、數據表更名 * 語法: >[info] 數據表更名有二種方法,用哪個都可以完成 ~~~ #語法一: ALTER TABLE 原表名 RENAME 新表名 ; # 語法二: RENAME TABLE 原表名 TO 新表名 ; ~~~ * 語句 ~~~ #語法一: ALTER TABLE `tp5_staff` RENAME tp_user; # 語法二: RENAME TABLE tp5_staff TO tp_user; ~~~ * 運行結果: ![](https://box.kancloud.cn/8ede212dabd363db9862e64b29fe0620_1075x775.png) * * * * * #### 6、添加索引 >[info] 可以同時給數據表添加多個索引,字段一旦設置了索引,其值將按順序排列,可以極大的加快查詢速度,特別是大量數據讀取時,速度提升明顯。 所以,對于查詢頻繁的字段,創建索引是非常有必要的。 * 語法: ~~~ ALTER TABLE 表名 ADD INDEX (字段名) [ , ADD INDEX (字段名) ]; ~~~ * 實例:給tp5_staff表中的name字段,salary 字段添加索引 * 語句: ~~~ # 在name字段,salary字段創建索引,加快查詢速度 ALTER TABLE `tp5_staff` ADD INDEX (name), ADD INDEX (salary); #經測試,salary字段經過索引后,已按升序輸出 SELECT salary FROM `tp5_staff`; ~~~ * 運行效果: ![](https://box.kancloud.cn/a8f87ba80dd265cf90d68c798489e336_1054x775.png) * * * * * #### 7、其它數據表編輯操作 >[info] 有些數據表編輯操作使用頻率不高,做為了解即可 * 如果僅僅修改字段類型,除了可以用CHANGE關鍵字后,還可以用MODIFY; * 修改數據表的存儲引擎 ~~~ #修改數據表引擎 ALTER TABLE 表名 ENGINE = MyISAM 或者 InnoDB ~~~ * 修改數據表默認字符集 ~~~ #修改數據表默認字符集 ALTER TABLE 表名 DEFAULT CHARSET = 編碼集 ~~~ * 實例:將tp_staff 表存儲引擎變更成:InnoDB * 語句: ~~~ #查看變更之前的引擎狀態 show table status from tp5 where name= 'tp5_staff'; #變更引擎 alter table `tp5_staff` engine=InnoDB; #查看變更之后的引擎 show table status from tp5 where name='tp5_staff'; ~~~ * 運行效果如下: ![](https://box.kancloud.cn/5ae167657df7862514fb72167a988b8f_1054x775.png) * * * * * #### 8、設置或刪除字段默認值 ##### 掌握語句中ALTER關鍵字的用法 >[info] 一般來說,如果字段有默認值,在創建數據表時,就設置好了。但凡事總有例外,當你發現原來的默認值已不符合需求,或者新加的字段忘記了設置默認值時,可以用這個語句進行單獨設置。 * 語法 ~~~ #設置默認值 ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默認值; #刪除默認值 ALTER TABLE 表名 ALTER 字段名 DROP DEFAULT 默認值; ~~~ * 實例:將salary 字段默認值設置為5000 * 語句: ~~~ #設置salary字段默認值為5000 ALTER TABLE `tp5_staff` ALTER salary SET DEFAULT 5000; #新增記錄,沒有設置salary,則salary 取默認值 5000 INSERT `tp5_staff` (name,sex) VALUES ('老頑童',1); #查詢全部記錄 SELECT * FROM `tp5_staff` LIMIT 100; ~~~ * 運行效果: ![](https://box.kancloud.cn/6ae2039a325f803897fe2538eb5f351d_1057x775.png) * 下面再演示一下刪除salary默認值 * 語句如下: ~~~ #將salary字段默認值刪除 ALTER TABLE `tp5_staff` ALTER salary DROP DEFAULT ; #新增記錄,沒有設置salary INSERT `tp5_staff` (name,sex) VALUES ('歐陽峰',1); #查詢全部記錄 SELECT * FROM `tp5_staff` LIMIT 100; ~~~ * 運行效果 ![](https://box.kancloud.cn/63679551ae77138d99adcd1ee0e384b9_1029x747.png) * 刪除數值型字段默認值后,系統自動設置為:0 * * * * * ### 總結 >[success] 數據表結構修改是非常重要的,因為我們在開發過程中,很難將數據表設計的一步到位,隨著項目開發進度,用戶需求的變化,數據表變更再所難免。</span> #### 所以,這項技能,必須掌握!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看