數據庫mysql基本語句,mysql修改表字段數據類型

修改字段名、字段類型、類型長度、默認值、注釋

ALTER  TABLE 表名 CHANGE 舊字段名 新字段名 新數據類型;   

alter  table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注釋';
-- 正確,能修改字段名、字段類型、類型長度、默認值、注釋

alter  table table1 change column2 column2 varchar(100) DEFAULT 1.2 COMMENT '注釋'; 
-- 正確,此時字段名稱沒有改變,能修改字段類型、類型長度、默認值、注釋
 
alter  table table1 change column1 column2; 
-- 報錯

使用change關鍵字,需要寫2個字段

  • 修改字段類型、類型長度、默認值、注釋
ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新數據類型 新類型長度 新默認值 新注釋; 
-- COLUMN可以省略

alter  table table1 modify column column1  decimal(10,1) DEFAULT NULL COMMENT '注釋'; 
-- 正確,能修改字段類型、類型長度、默認值、注釋

alter  table table1 modify column1  decimal(10,2) DEFAULT NULL COMMENT '注釋'; 
-- 正確,能修改字段類型、類型長度、默認值、注釋

使用modify關鍵字,寫1個字段即可

  • 修改表名
ALTER TABLE 舊錶名 RENAME TO 新表名 ;

mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user   |
+-------------------+
1 row in set (0.00 sec)
 
mysql> alter table white_user rename to white_user_new ;
Query OK, 0 rows affected (0.00 sec)
 
mysql> show tables ;
+-------------------+
| Tables_in_db_test |
+-------------------+
| white_user_new    |
+-------------------+
1 row in set (0.00 sec)
  • 修改表的注釋
ALTER TABLE 表名 COMMENT '新注釋'
 
mysql> alter table  white_user_new comment '新表-白名單表' ;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> show create table white_user_new ;
 CREATE TABLE `white_user_new` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `created_time` datetime DEFAULT NULL COMMENT '創建時間',
  `updated_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名單表'
  • 在指定位置添加新字段(如果不使用after,默認是在最後加字段)
ALTER TABLE 表名 ADD [COLUMN] 字段名 字段類型 是否可為空 COMMENT '注釋' AFTER 指定某字段 ;
--COLUMN關鍵字可以省略不寫

mysql> alter table white_user_new add column erp varchar(50) not null comment 'erp賬號' after name ;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
--在name字段後面添加erp字段

mysql> alter table white_user_new add position varchar(50) not null comment '崗位' after name ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
--在name字段後面添加position字段。
 
mysql> show create table white_user_new ;                                      
CREATE TABLE `white_user_new` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `position` varchar(50) NOT NULL COMMENT '崗位',
  `erp` varchar(50) NOT NULL COMMENT 'erp賬號',
  `created_time` datetime DEFAULT NULL COMMENT '創建時間',
  `updated_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名單表'      
 
mysql> alter table white_user_new add  mobile varchar(50) not null comment '手機號碼' before position ;
--報錯,在position字段前添加mobile字段,不能使用before關鍵字
  • 刪除字段
ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
-- COLUMN關鍵字可以省略不寫
 
mysql> alter table white_user_new drop column position ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
-- 刪除position字段
 
mysql> alter table white_user_new drop erp ;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
-- 刪除erp字段

mysql> show create table white_user_new ;                                      
CREATE TABLE `white_user_new` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `created_time` datetime DEFAULT NULL COMMENT '創建時間',
  `updated_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名單表'       

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231116.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 18:46
下一篇 2024-12-10 18:46

相關推薦

發表回復

登錄後才能評論