中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫表增添字段,刪除字段,修改字段的方法

發布時間:2022-07-26 16:56:30 來源:億速云 閱讀:181 作者:iii 欄目:開發技術

這篇文章主要講解了“mysql數據庫表增添字段,刪除字段,修改字段的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql數據庫表增添字段,刪除字段,修改字段的方法”吧!

    修改表指的是修改數據庫之后中已經存在的數據表的結構。mysql使用alter table語句修改表。常用的修改表的操作有修改表名、修改字段數據類型或者字段名、增加和刪除字段、修改字段的排列位置、更改表的存儲引擎、刪除表的外鍵約束等。

    一、mysql修改表名

    語法:

    ALTER TABLE <舊表名> RENAME [to] <新表名>

    上面語句中的to為可選,存在與否不影響運行結果。

    舉個栗子:

    test_user_2這個數據表,改名為test_user_two

    首先我們查看下原來的內容;

    mysql> show tables;
    +-------------------+
    | Tables_in_test_db |
    +-------------------+
    | test_dept |
    | test_user |
    | test_user_2 |
    | test_user_3 |
    | test_user_4 |
    | test_user_5 |
    | test_user_6 |
    | test_user_7 |
    | test_user_8 |
    | test_user_9 |
    +-------------------+
    10 rows in set (0.00 sec)
    
    mysql>

    然后我們執行語句:

    mysql> alter table test_user_2 rename test_user_two;
    Query OK, 0 rows affected (0.03 sec)
    
    mysql>

    然后再看下是否修改完畢了;

    mysql> show tables;
    +-------------------+
    | Tables_in_test_db |
    +-------------------+
    | test_dept |
    | test_user |
    | test_user_3 |
    | test_user_4 |
    | test_user_5 |
    | test_user_6 |
    | test_user_7 |
    | test_user_8 |
    | test_user_9 |
    | test_user_two |
    +-------------------+
    10 rows in set (0.00 sec)
    
    mysql>

    注意:修改的只是數據表名,實際上字段和數據內容都沒有發生變化。

    二、mysql修改數據的字段類型

    修改字段的數據類型,就是把字段的數據類型轉換成另一種數據類型。

    語法:

    alter table <表名> modify <字段名> <數據類型>

    舉個栗子:

    修改test_user_two這個表中的money字段的數據類型,由float改為int類型。

    首先看下這個表中的數據結構;

    mysql> desc test_user_two;
    +--------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | money | float | YES | | NULL | |
    +--------+-------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
    
    mysql>

    然后執行如下語句進行修改;

    mysql> alter table test_user_two modify money int;
    Query OK, 0 rows affected (0.09 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    修改完畢之后我們再看下test_user_db這個表中的數據結構是否發生變化了。

    mysql> desc test_user_two;
    +--------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | money | int | YES | | NULL | |
    +--------+-------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
    
    mysql>

    三、mysql修改字段名

    語法:

    alter table <表名> change <舊字段名> <新字段名> <新數據類型>;

    舉個栗子:

    test_user_two表中的money字段改成howmoney,數據類型為int;

    執行語句:

    mysql> alter table test_user_two change money howmoney int;
    Query OK, 0 rows affected (0.03 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    然后我們再看下此時這個test_user_two數據庫的數據結構是什么;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
    
    mysql>

    可以看到,已經將字段修改完畢了。

    四、mysql添加字段

    語法:

    alter table <表名> add <新字段名> <數據類型> [約束條件] [first | after 已存在字段名]

    新字段名為需要添加的字段的名稱;first為可選參數,其作用是將新添加的字段設置為表的第一個字段;after為可選參數,其作用是將新添加的字段添加到指定的“已存在字段名” 的后面。

    firstafter 已存在字段名用于指定新增字段在表中的位置,如果SQL語句中沒有這兩個參數,則默認將新添加的字段設置為數據表的最后一列。

    舉幾個栗子:

    1、添加沒有約束性的字段

    在數據表test_user_two中添加一個沒有完整性約束的int類型的字段year(入職幾年);

    執行sql如下:

    mysql> alter table test_user_two add year int;
    Query OK, 0 rows affected (0.04 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    然后我們查看下修改之后的表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    5 rows in set (0.00 sec)
    
    mysql>

    2、添加一個有約束性的字段

    test_user_two表中添加一個名為year1,數據類型是int,且不可為空的字段;

    執行相關sql語句;

    mysql> alter table test_user_two add year1 int not null;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    看下表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    6 rows in set (0.00 sec)
    
    mysql>

    3、在表的第一列添加一個字段

    test_user_two數據表第一列添加一個名字year2,數據類型是int的字段。

    執行相關sql語句;

    mysql> alter table test_user_two add year2 int first;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    看下修改之后的表結構是什么;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | year2 | int | YES | | NULL | |
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    7 rows in set (0.00 sec)
    
    mysql>

    4、在數據表中指定列之后添加一個字段

    test_user_two這個數據庫中name字段之后,添加一個名為name2,數據類型是varchar(50)的字段;

    執行sql語句;

    mysql> alter table test_user_two add name2 varchar(50) after name;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    可以再次看下表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | year2 | int | YES | | NULL | |
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | name2 | varchar(50) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    8 rows in set (0.00 sec)
    
    mysql>

    可以看到,每次我們都會對這個表結構進行相關的修改。

    五、mysql刪除字段

    語法:

    alter table <表名> drop <字段名>;

    舉個栗子;

    比如我們想將test_user_two數據庫中剛添加的year2字段刪除;

    執行sql語句為:

    看下表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | name2 | varchar(50) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    7 rows in set (0.00 sec)
    
    mysql>

    可以看到已經將名為year2的字段進行刪除了。

    六、mysql修改字段的排列位置

    有時候我們會面臨修改數據表中某些字段的排列位置,比如說將某一個字段排到第一個,或者是將某個字段后移,看下如何操作。

    語法:

    alter table <表名> modify <字段1> <數據類型> first | after <字段2>;

    “字段1” 指要修改位置的字段;“數據類型” 指 “字段1” 的數據類型;“First” 為可選參數,指將 “字段1” 修改為表的第一個字段;“after 字段2” 指將 “字段1” 插入到 “字段2” 后面。

    舉兩個栗子;

    1、修改字段為表的第一個字段

    比如我們將test_user_two這個數據表中名為name2的字段,修改成這個對應數據表中第一個字段;

    執行sql語句;

    mysql> alter table test_user_two modify name2 varchar(50) first;
    Query OK, 0 rows affected (0.08 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    查看下表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | name2 | varchar(50) | YES | | NULL | |
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    7 rows in set (0.00 sec)
    
    mysql>

    可以看到我們已經成功將name2這個字段修改成第一個字段了;

    2、修改字段為指定列后面

    比如我們將test_user_two這個表中的name2字段,讓他移動到year這個字段后面;

    執行sql語句;

    mysql> alter table test_user_two modify name2 varchar(50) after year;
    Query OK, 0 rows affected (0.06 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    
    mysql>

    看下表結構;

    mysql> desc test_user_two;
    +----------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id | int | NO | PRI | NULL | |
    | name | varchar(25) | YES | | NULL | |
    | deptid | int | YES | | NULL | |
    | howmoney | int | YES | | NULL | |
    | year | int | YES | | NULL | |
    | name2 | varchar(50) | YES | | NULL | |
    | year1 | int | NO | | NULL | |
    +----------+-------------+------+-----+---------+-------+
    7 rows in set (0.00 sec)
    
    mysql>

    可以發現,已經將test_user_two這個數據庫中的name2字段,移動到了year字段之后。

    七、mysql更改表的存儲引擎

    存儲引擎是mysql中的數據存儲在文件或者內存中時采用的不用技術實現。可以根據自己所需,選擇不同的引擎,也可以為每一張表選擇不用的存儲引擎。可以使用show engines;語句來查看系統支持的存儲引擎。

    mysql> show engines;
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | Engine | Support | Comment | Transactions | XA | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
    | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
    | CSV | YES | CSV storage engine | NO | NO | NO |
    | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
    | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
    | MyISAM | YES | MyISAM storage engine | NO | NO | NO |
    | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
    | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
    | ARCHIVE | YES | Archive storage engine | NO | NO | NO |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    9 rows in set (0.00 sec)
    
    mysql>

    更改表的存儲引擎的語法:

    alter table <表名> engine=<更改后的存儲引擎名>

    感謝各位的閱讀,以上就是“mysql數據庫表增添字段,刪除字段,修改字段的方法”的內容了,經過本文的學習后,相信大家對mysql數據庫表增添字段,刪除字段,修改字段的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    西乌珠穆沁旗| 嘉荫县| 五家渠市| 垣曲县| 自治县| 武穴市| 绵竹市| 大渡口区| 四会市| 荆门市| 宁阳县| 闵行区| 麻阳| 双牌县| 高碑店市| 和政县| 龙南县| 临西县| 武汉市| 新闻| 广水市| 清涧县| 连云港市| 襄城县| 华蓥市| 台中市| 靖宇县| 遂昌县| 南昌市| 松溪县| 禹城市| 锦州市| 遂川县| 东乡县| 铁岭市| 西青区| 会宁县| 砚山县| 兴山县| 承德县| 东源县|