mysql alter

阅读数:96 评论数:0

跳转到新版页面

分类

数据库

正文

一、语法

1、基本语法

alter table [ignore] tablename alteration [,alteration...]

(1)ignore,如果会导致唯一键重复,则这些操作将自动忽略。

(2)alteration

语法 描述
add [column] column_description [first|after column]

在指定的地方添加(如果没有指定,就是在最后一列后面)。column_description与create语法中的名称和类型一致。

add index[index](column,...) 在指定的一列或几列添加一个表的索引
add [constraint[symbol]] primary key(column,...) 指定一列或几列为表的主键,constraint针对使用外键的表
add [constraint constraint[symbol]] [index](column,...) 在指定的一列或几列添加一个唯一的表索引,是针对 使用外键的innoDB表
add [constraint[symbol]] foreign key [index](index_col,...) [reference_definition] 为一个innoDB表添加外键
alter [column] column {set default value|drop default} 添加或删除特定列的默认值 
change[column] column new_column_description 修改列的描述,可以改变列的名称
modify[column] column_description 类似change,可用来修改列的类型
drop[column] column 删除指定列
drop primary key 删除主索引
drop index index 删除指定的索引
drop foreign key 删除外键
disable keys 禁止索引更新
enable keys 开启索引更新
rename [as] new_table_name 重命名表名
order by col_name 以特定顺序的行重新创建表
convert to character set cs collcate c 将所有文本列转换成指定字符集和排序
[default] character set cs collcate c 设置默认的字符集和排序
disable tablespace 删除innodb表的可能表空间
import tablespace 为innodb表重新创建可能的表空间文件
table_options 允许重新设置表选项

二、示例

1、修改字段类型、字段名、字段注释、字段默认值

#修改字段类型、字段注释、字段默认值
ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度  新默认值  新注释;
 -- COLUMN关键字可以省略不写

alter table box modify column boxnum varchar(40)  not null comment '编号'

2、修改字段名

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; -- 报错 


alter table box CHANGE column boxnum boxid varchar(30)  not null  comment '编号'

3、修改表名

ALTER TABLE 旧表名 RENAME TO 新表名

alter table hezi rename to box

4、修改表的注释

ALTER TABLE 表名 COMMENT '新注释'

alter table box comment '座位表'

5、在指定的位置插入新字段

ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
--COLUMN关键字可以省略不写

alter table box add column boxroom varchar(30) not null comment '座位空间' after boxname

6、增加一个字段

ALTER TABLE 表名 ADD COLUMN newname 数据类型 数据长度 默认值 注释

//增加一个字段,默认为空
alter table box add column boxroom int 10 default null comment '座位空间'
//增加一个字段,默认不为空
alter table box add column boxroom int 10  not null comment '座位空间'

7、删除字段

ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
--COLUMN关键字可以省略不写

alter table box drop  boxroom



相关推荐

Centos7的yum源中没有mysql,为了解决这个问题,我们需要先下载mysql的repo源。 一、下载mysql的repo源并安装 wget http://repo.mysql.com/mysq

备份的类型 1、根据是否需要数据库离线 (1)冷备: 需要关mysql服务,请写请求均不允许 (2)温备: 服务在线,但仅支持读请求。 <p

如果主库已经投入使用了,此时如果需要主从同步,需要导出所表结构和数据,然后导入到从库中。这时需要注意修改/var/lib/mysql/auto.cnf中uuid。 master配

一、事务的ACID 1、Atomicity原子性 Transactions are often composed of multiple statements. Atomicity guarantee

一、登录mysql mysql --version -查看Mysql版本 mysql -h hostname -u username -p -h:运行mysql服务器的机器,如果正在该机器上运行此命令

mysql的权限分为4级:全局、数据库、表、列。 1、grant grant privileges [

insert [into] table [(column1,column2,column3,...)] values (val

一、语法 select [optioins] items [into file_details] from tables [where conditions] [group by gr

一、语法 update [low_priority] [ignore] tablename set column1=expression1,... [where condition] [order b

delete [low_priority] [quick] [ignore] from table [where conditio