mysql修改字段类型:
--能修改字段类型、类型长度、默认值、注释
--对某字段进行修改
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 '注释'
-- 正常,能修改字段类型、类型长度、默认值、注释
mysql修改字段名:
ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型
alter table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'-- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter table table1 change column1 column2-- 报错
mysql>alter table white_user change column name nick_name varchar(50) null comment '昵称'-- 正确
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
2 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名
MySQL 数据库的语法, 与其它数据库的, 有些差异。使用 CHANGE COLUMN 来修改列的名字,还必须 设置 列的数据类型
mysql>desc test_tab
+-------+-------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id| int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL| |
| age | int(11) | YES | | NULL| |
| val | varchar(10) | YES | | NULL| |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql>ALTER TABLE test_tab
-> CHANGE COLUMN val val2 VARCHAR(10)
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>desc test_tab
+-------+-------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id| int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL| |
| age | int(11) | YES | | NULL| |
| val2 | varchar(10) | YES | | NULL| |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
注: RENAME COLUMN 是 Oracle 与 DB2 与 PostgreSQL 的语法:
例如:
Oracle:
SQL>ALTER TABLE test_tab
2RENAME COLUMN val TO val2
Table altered.
DB2:
db2 =>ALTER TABLE test_tab
db2 (cont.) => RENAME COLUMN val TO val2
DB20000I SQL 命令成功完成。
db2 =>select * from test_tab
ID NAME AGE VAL2
----------- ---------- ----------- ----------
0 条记录已选择。
PostgreSQL
Test=# ALTER TABLE test_tab RENAME COLUMN val TO val2
ALTER TABLE
Test=# \d test_tab
资料表 "public.test_tab"
栏位 | 型别 | 修饰词
------+-----------------------+--------
id | integer | 非空
name | character varying(10) |
age | integer |
val2 | character varying(10) |
索引:
"pk_test_tab" PRIMARY KEY, btree (id)
检查约束限制
"test_tab_age_check" CHECK (age >0 AND age <150)
MySQL中可以使用rename table这个SQL语句来修改表名。rename table这个SQL语句来修改表名的基本语法是:
RENAME TABLE <旧表名>TO <新表名>
我们来把test表修改为test1表。
1、首先查看一下当前数据库中有哪些表。
mysql>show tables
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test |
| test2 |
+-------------------+
2 rows in set (0.00 sec)
2、执行重命名 *** 作,把test修改为test1。
mysql>rename table test to test1
Query OK, 0 rows affected (0.08 sec)
3、再次查看一下结果。
mysql>show tables
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test1 |
| test2 |
+-------------------+
2 rows in set (0.00 sec)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)