最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

一、mysql修改表名

語法:

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

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

舉個栗子:

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

首先我們查看下原來的內(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í)行語句:

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ù)據(jù)內(nèi)容都沒有發(fā)生變化。

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

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

語法:

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

舉個栗子:

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

首先看下這個表中的數(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í)行如下語句進行修改;

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??這個表中的數(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修改字段名

語法:

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

舉個栗子:

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

執(zhí)行語句:

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??數(shù)據(jù)庫的數(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添加字段

語法:

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

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

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

舉幾個栗子:

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

在數(shù)據(jù)表??test_user_two???中添加一個沒有完整性約束的??int???類型的字段??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、添加一個有約束性的字段

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

執(zhí)行相關(guān)??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>

看下表結(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、在表的第一列添加一個字段

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

執(zhí)行相關(guān)??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>

看下修改之后的表結(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ù)表中指定列之后添加一個字段

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

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

可以再次看下表結(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>

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

五、mysql刪除字段

語法:

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

舉個栗子;

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

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

看下表結(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??的字段進行刪除了。

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

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

語法:

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

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

舉兩個栗子;

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

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

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

查看下表結(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??這個字段修改成第一個字段了;

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

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

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

看下表結(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???這個數(shù)據(jù)庫中的??name2???字段,移動到了??year??字段之后。

七、mysql更改表的存儲引擎

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

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=<更改后的存儲引擎名>

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

相關(guān)文章

最新評論

宜川县| 阜新| 廉江市| 响水县| 万荣县| 普陀区| 昌吉市| 北宁市| 洛南县| 玉树县| 怀远县| 金乡县| 石渠县| 龙州县| 榆林市| 嘉义市| 来安县| 象州县| 台湾省| 康定县| 思茅市| 东乡族自治县| 石狮市| 仁寿县| 黄大仙区| 柞水县| 邢台市| 南宫市| 二连浩特市| 石狮市| 双江| 南部县| 锡林郭勒盟| 吉木萨尔县| 晋州市| 兰西县| 安徽省| 邵阳市| 前郭尔| 涞源县| 信丰县|