日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

07.数据表的修改

發(fā)布時(shí)間:2023/12/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 07.数据表的修改 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用上文的user1表,查看表結(jié)構(gòu):
mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | +----------+----------------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
添加一個(gè)默認(rèn)值為10的非空字段
mysql> ALTER TABLE user1 ADD age SMALLINT UNSIGNED NOT NULL DEFAULT 10; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
在某列后添加字段:AFTER(FIRST添加到最前面)
mysql> ALTER TABLE user1 ADD password VARCHAR(32) NOT NULL AFTER username; Query OK, 0 rows affected (0.09 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
添加多列:
mysql> ALTER TABLE user1 ADD (aaa VARCHAR(32), bbb VARCHAR(32),ccc VARCHAR(32)); Query OK, 0 rows affected (0.09 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | sax | varchar(32) | NO | | NULL | | | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | | age | smallint(5) unsigned | NO | | 10 | | | aaa | varchar(32) | YES | | NULL | | | bbb | varchar(32) | YES | | NULL | | | ccc | varchar(32) | YES | | NULL | | +----------+----------------------+------+-----+---------+----------------+ 9 rows in set (0.00 sec)
刪除列aaa:
mysql> ALTER TABLE user1 DROP aaa; Query OK, 0 rows affected (0.45 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | sax | varchar(32) | NO | | NULL | | | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | | age | smallint(5) unsigned | NO | | 10 | | | bbb | varchar(32) | YES | | NULL | | | ccc | varchar(32) | YES | | NULL | | +----------+----------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec)
同時(shí)刪除兩列:bbb,ccc
mysql> ALTER TABLE user1 DROP bbb,DROP ccc; Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | sax | varchar(32) | NO | | NULL | | | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | MUL | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)
刪除主鍵約束:(必須是沒(méi)有自增長(zhǎng)的主鍵,自增長(zhǎng)要依附于主鍵刪不了,key_test符合)
mysql> ALTER TABLE user1 DROP PRIMARY KEY; ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a keymysql> DESC key_test; +----------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+-------+ | id | smallint(5) unsigned | NO | PRI | NULL | | | username | varchar(20) | YES | | NULL | | +----------+----------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> ALTER TABLE key_test DROP PRIMARY KEY; Query OK, 2 rows affected (0.05 sec) Records: 2 Duplicates: 0 Warnings: 0mysql> DESC key_test; +----------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+-------+ | id | smallint(5) unsigned | NO | | NULL | | | username | varchar(20) | YES | | NULL | | +----------+----------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
刪除唯一約束
mysql> SHOW INDEXES FROM unique_test; +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | unique_test | 0 | PRIMARY | 1 | id | A | 2 | NULL | NULL | | BTREE | | | | unique_test | 0 | username | 1 | username | A | 2 | NULL | NULL | YES | BTREE | | | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ mysql> ALTER TABLE unique_test DROP INDEX username; Query OK, 0 rows affected (0.39 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> SHOW INDEXES FROM unique_test; +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | unique_test | 0 | PRIMARY | 1 | id | A | 2 | NULL | NULL | | BTREE | | | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
刪除外鍵約束:注意外鍵約束名:user1_ibfk_1
mysql> SHOW CREATE TABLE user1; +-------+--------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------ -------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------ -------------------------------------+ | user1 | CREATE TABLE `user1` ( `sax` varchar(32) NOT NULL, `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(32) NOT NULL, `p_id` smallint(5) unsigned DEFAULT NULL, `age` smallint(5) unsigned NOT NULL DEFAULT '10', PRIMARY KEY (`id`), KEY `p_id` (`p_id`), CONSTRAINT `user1_ibfk_1` FOREIGN KEY (`p_id`) REFERENCES `province` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------ -------------------------------------+ 1 row in set (0.41 sec) mysql> ALTER TABLE user1 DROP FOREIGN KEY user1_ibfk_1; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> SHOW CREATE TABLE user1; +-------+------------------------------------------------------------- ---------------------------------------------------------------------- | Table | Create Table+-------+------------------------------------------------------------- ---------------------------------------------------------------------- | user1 | CREATE TABLE `user1` ( `sax` varchar(32) NOT NULL, `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(32) NOT NULL, `p_id` smallint(5) unsigned DEFAULT NULL, `age` smallint(5) unsigned NOT NULL DEFAULT '10', PRIMARY KEY (`id`), KEY `p_id` (`p_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 | +-------+------------------------------------------------------------- ---------------------------------------------------------------------- 1 row in set (0.00 sec)
外鍵去除后,索引p_id就沒(méi)有用了,也可以去除:
mysql> ALTER TABLE user1 DROP INDEX p_id; Query OK, 0 rows affected (0.39 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> SHOW CREATE TABLE user1; +-------+-------------------------------------------------------- ----------------------------------------------------------------- | Table | Create Table+-------+-------------------------------------------------------- ----------------------------------------------------------------- | user1 | CREATE TABLE `user1` ( `sax` varchar(32) NOT NULL, `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(32) NOT NULL, `p_id` smallint(5) unsigned DEFAULT NULL, `age` smallint(5) unsigned NOT NULL DEFAULT '10', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 | +-------+-------------------------------------------------------- ----------------------------------------------------------------- 1 row in set (0.00 sec)
修改列的位置:想把user1中的id調(diào)到最上面
mysql> DESC user1; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | sax | varchar(32) | NO | | NULL | | | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec)mysql> ALTER TABLE user1 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST; Query OK, 2 rows affected (0.44 sec) Records: 2 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+-------+ | id | smallint(5) unsigned | NO | PRI | NULL | | | sax | varchar(32) | NO | | NULL | | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+-------+ 6 rows in set (0.01 sec)
修改列信息:將sax改為gender更好一點(diǎn),再把長(zhǎng)度改短點(diǎn)
mysql> ALTER TABLE user1 CHANGE sax gender VARCHAR(4) NOT NULL; Query OK, 2 rows affected (0.06 sec) Records: 2 Duplicates: 0 Warnings: 0mysql> DESC user1; +----------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+-------+ | id | smallint(5) unsigned | NO | PRI | NULL | | | gender | varchar(4) | NO | | NULL | | | username | varchar(20) | NO | | NULL | | | password | varchar(32) | NO | | NULL | | | p_id | smallint(5) unsigned | YES | | NULL | | | age | smallint(5) unsigned | NO | | 10 | | +----------+----------------------+------+-----+---------+-------+ 6 rows in set (0.01 sec)
表名user1不搶眼,改個(gè)名字吧
mysql> ALTER TABLE user1 RENAME 阿姆斯特朗回旋加速噴氣式阿姆斯特朗炮; Query OK, 0 rows affected (0.01 sec)mysql> SHOW TABLES; +--------------------------------------------------------+ | Tables_in_zoom | +--------------------------------------------------------+ | 阿姆斯特朗回旋加速噴氣式阿姆斯特朗炮 | | default_ | | key_test | | little | | null_test | | province | | unique_id | | unique_test | | users | +--------------------------------------------------------+ 9 rows in set (0.00 sec)
不行,太裝X,用另一種方法改個(gè)低調(diào)的
mysql> RENAME TABLE 阿姆斯特朗回旋加速噴氣式阿姆斯特朗炮 TO toly; Query OK, 0 rows affected (0.01 sec)mysql> SHOW TABLES; +----------------+ | Tables_in_zoom | +----------------+ | default_ | | key_test | | little | | null_test | | province | | toly | | unique_id | | unique_test | | users | +----------------+ 9 rows in set (0.00 sec)

轉(zhuǎn)載于:https://www.cnblogs.com/toly-top/p/9782023.html

總結(jié)

以上是生活随笔為你收集整理的07.数据表的修改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。