欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql數(shù)據(jù)庫(kù)表增添字段,刪除字段,修改字段的排列等操作

 更新時(shí)間:2022年07月26日 11:53:29   作者:公號(hào)運(yùn)維家???????  
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)表增添字段,刪除字段,修改字段的排列等操作,修改表指的是修改數(shù)據(jù)庫(kù)之后中已經(jīng)存在的數(shù)據(jù)表的結(jié)構(gòu)

修改表指的是修改數(shù)據(jù)庫(kù)之后中已經(jīng)存在的數(shù)據(jù)表的結(jié)構(gòu)。??mysql???使用??alter table??語(yǔ)句修改表。常用的修改表的操作有修改表名、修改字段數(shù)據(jù)類(lèi)型或者字段名、增加和刪除字段、修改字段的排列位置、更改表的存儲(chǔ)引擎、刪除表的外鍵約束等。

一、mysql修改表名

語(yǔ)法:

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

上面語(yǔ)句中的??to??為可選,存在與否不影響運(yùn)行結(jié)果。

舉個(gè)栗子:

將??test_user_2???這個(gè)數(shù)據(jù)表,改名為??test_user_two??;

首先我們查看下原來(lái)的內(nèi)容;

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>

然后我們執(zhí)行語(yǔ)句:

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>

注意:修改的只是數(shù)據(jù)表名,實(shí)際上字段和數(shù)據(jù)內(nèi)容都沒(méi)有發(fā)生變化。

二、mysql修改數(shù)據(jù)的字段類(lèi)型

修改字段的數(shù)據(jù)類(lèi)型,就是把字段的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成另一種數(shù)據(jù)類(lèi)型。

語(yǔ)法:

alter table <表名> modify <字段名> <數(shù)據(jù)類(lèi)型>

舉個(gè)栗子:

修改??test_user_two???這個(gè)表中的??money???字段的數(shù)據(jù)類(lèi)型,由??float???改為??int??類(lèi)型。

首先看下這個(gè)表中的數(shù)據(jù)結(jié)構(gòu);

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>

然后執(zhí)行如下語(yǔ)句進(jìn)行修改;

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

mysql>

修改完畢之后我們?cè)倏聪??test_user_db??這個(gè)表中的數(shù)據(jù)結(jié)構(gòu)是否發(fā)生變化了。

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修改字段名

語(yǔ)法:

alter table <表名> change <舊字段名> <新字段名> <新數(shù)據(jù)類(lèi)型>;

舉個(gè)栗子:

將??test_user_two???表中的??money???字段改成??howmoney???,數(shù)據(jù)類(lèi)型為??int??;

執(zhí)行語(yǔ)句:

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>

然后我們?cè)倏聪麓藭r(shí)這個(gè)??test_user_two??數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)是什么;

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>

可以看到,已經(jīng)將字段修改完畢了。

四、mysql添加字段

語(yǔ)法:

alter table <表名> add <新字段名> <數(shù)據(jù)類(lèi)型> [約束條件] [first | after 已存在字段名]

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

??first???或??after 已存在字段名???用于指定新增字段在表中的位置,如果??SQL??語(yǔ)句中沒(méi)有這兩個(gè)參數(shù),則默認(rèn)將新添加的字段設(shè)置為數(shù)據(jù)表的最后一列。

舉幾個(gè)栗子:

1、添加沒(méi)有約束性的字段

在數(shù)據(jù)表??test_user_two???中添加一個(gè)沒(méi)有完整性約束的??int???類(lèi)型的字段??year??(入職幾年);

執(zhí)行??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>

然后我們查看下修改之后的表結(jié)構(gòu);

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、添加一個(gè)有約束性的字段

在??test_user_two???表中添加一個(gè)名為??year1???,數(shù)據(jù)類(lèi)型是??int??,且不可為空的字段;

執(zhí)行相關(guān)??sql??語(yǔ)句;

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>

看下表結(jié)構(gòu);

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、在表的第一列添加一個(gè)字段

在??test_user_two???數(shù)據(jù)表第一列添加一個(gè)名字??year2???,數(shù)據(jù)類(lèi)型是??int??的字段。

執(zhí)行相關(guān)??sql??語(yǔ)句;

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>

看下修改之后的表結(jié)構(gòu)是什么;

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、在數(shù)據(jù)表中指定列之后添加一個(gè)字段

在??test_user_two???這個(gè)數(shù)據(jù)庫(kù)中??name???字段之后,添加一個(gè)名為??name2???,數(shù)據(jù)類(lèi)型是??varchar(50)??的字段;

執(zhí)行??sql??語(yǔ)句;

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>

可以再次看下表結(jié)構(gòu);

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>

可以看到,每次我們都會(huì)對(duì)這個(gè)表結(jié)構(gòu)進(jìn)行相關(guān)的修改。

五、mysql刪除字段

語(yǔ)法:

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

舉個(gè)栗子;

比如我們想將??test_user_two???數(shù)據(jù)庫(kù)中剛添加的??year2??字段刪除;

執(zhí)行??sql??語(yǔ)句為:

看下表結(jié)構(gòu);

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>

可以看到已經(jīng)將名為??year2??的字段進(jìn)行刪除了。

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

有時(shí)候我們會(huì)面臨修改數(shù)據(jù)表中某些字段的排列位置,比如說(shuō)將某一個(gè)字段排到第一個(gè),或者是將某個(gè)字段后移,看下如何操作。

語(yǔ)法:

alter table <表名> modify <字段1> <數(shù)據(jù)類(lèi)型> first | after <字段2>;

“字段1” 指要修改位置的字段;“數(shù)據(jù)類(lèi)型” 指 “字段1” 的數(shù)據(jù)類(lèi)型;“??First???” 為可選參數(shù),指將 “字段1” 修改為表的第一個(gè)字段;“??after?? 字段2” 指將 “字段1” 插入到 “字段2” 后面。

舉兩個(gè)栗子;

1、修改字段為表的第一個(gè)字段

比如我們將??test_user_two???這個(gè)數(shù)據(jù)表中名為??name2??的字段,修改成這個(gè)對(duì)應(yīng)數(shù)據(jù)表中第一個(gè)字段;

執(zhí)行??sql??語(yǔ)句;

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>

查看下表結(jié)構(gòu);

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>

可以看到我們已經(jīng)成功將??name2??這個(gè)字段修改成第一個(gè)字段了;

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

比如我們將??test_user_two???這個(gè)表中的??name2???字段,讓他移動(dòng)到??year??這個(gè)字段后面;

執(zhí)行??sql??語(yǔ)句;

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>

看下表結(jié)構(gòu);

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>

可以發(fā)現(xiàn),已經(jīng)將??test_user_two???這個(gè)數(shù)據(jù)庫(kù)中的??name2???字段,移動(dòng)到了??year??字段之后。

七、mysql更改表的存儲(chǔ)引擎

存儲(chǔ)引擎是??mysql???中的數(shù)據(jù)存儲(chǔ)在文件或者內(nèi)存中時(shí)采用的不用技術(shù)實(shí)現(xiàn)。可以根據(jù)自己所需,選擇不同的引擎,也可以為每一張表選擇不用的存儲(chǔ)引擎??梢允褂??show engines;??語(yǔ)句來(lái)查看系統(tǒng)支持的存儲(chǔ)引擎。

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>

更改表的存儲(chǔ)引擎的語(yǔ)法:

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

到此這篇關(guān)于mysql數(shù)據(jù)庫(kù)表增添字段,刪除字段,修改字段的排列等操作的文章就介紹到這了,更多相關(guān)mysql字段操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 千萬(wàn)級(jí)數(shù)據(jù)量如何快速分頁(yè)

    MySQL 千萬(wàn)級(jí)數(shù)據(jù)量如何快速分頁(yè)

    這篇文章主要介紹了MySQL 千萬(wàn)級(jí)數(shù)據(jù)量如何快速分頁(yè),幫助大家提高M(jìn)ySQL數(shù)據(jù)庫(kù)的性能,感興趣的朋友可以了解下
    2020-09-09
  • 在win10系統(tǒng)下安裝Mysql 5.7.17圖文教程

    在win10系統(tǒng)下安裝Mysql 5.7.17圖文教程

    因?yàn)橄胍诠倦娔X上安裝Mysql,于是到官網(wǎng)上下載了最新版本的Mysql-5.7.17,其實(shí)安裝方法也很簡(jiǎn)單,下面小編把安裝過(guò)程分享到腳本之家平臺(tái)供大家參考
    2017-03-03
  • MAC下Mysql5.7.10版本修改root密碼的方法

    MAC下Mysql5.7.10版本修改root密碼的方法

    這篇文章主要介紹了MAC下Mysql5.7.10版本修改root密碼的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • MySQL 雙向備份的實(shí)現(xiàn)方法

    MySQL 雙向備份的實(shí)現(xiàn)方法

    這篇文章主要介紹了MySQL 雙向備份的實(shí)現(xiàn)方法,即兩個(gè) MySQL 服務(wù)都是 Master,其中任意一個(gè)服務(wù)又是另一個(gè)服務(wù)的 Slave,感興趣的可以了解一下
    2019-04-04
  • MySQL 分頁(yè)查詢的優(yōu)化技巧

    MySQL 分頁(yè)查詢的優(yōu)化技巧

    這篇文章主要介紹了MySQL 分頁(yè)查詢的優(yōu)化技巧,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-05-05
  • MySQL創(chuàng)建全文索引分享

    MySQL創(chuàng)建全文索引分享

    使用索引是數(shù)據(jù)庫(kù)性能優(yōu)化的必備技能之一。在MySQL數(shù)據(jù)庫(kù)中,有四種索引:聚集索引(主鍵索引)、普通索引、唯一索引以及我們這里將要介紹的全文索引(FULLTEXT INDEX)
    2017-01-01
  • mysql中l(wèi)eft join設(shè)置條件在on與where時(shí)的用法區(qū)別分析

    mysql中l(wèi)eft join設(shè)置條件在on與where時(shí)的用法區(qū)別分析

    這篇文章主要介紹了mysql中l(wèi)eft join設(shè)置條件在on與where時(shí)的用法區(qū)別,結(jié)合實(shí)例形式分析了mysql中l(wèi)eft join設(shè)置條件在on與where時(shí)的相關(guān)用法區(qū)別與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分實(shí)例(無(wú)分隔符的字符串截取),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 淺談MySQL數(shù)據(jù)同步到 Redis 緩存的幾種方法

    淺談MySQL數(shù)據(jù)同步到 Redis 緩存的幾種方法

    本文主要介紹了淺談MySQL數(shù)據(jù)同步到 Redis 緩存的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Mysql:The user specified as a definer (''xxx@''%'') does not exist的解決方案

    Mysql:The user specified as a definer (''xxx@''%'') does not

    今天小編就為大家分享一篇關(guān)于Mysql:The user specified as a definer ('xxx@'%') does not exist的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12

最新評(píng)論