Alter改变MySQL数据库的表结构例子

在数据库的使用过程中,有时需要改变它的表结构,包括改变字段名,甚至改变不同数据库字段间的关系。可以实现上述改变的命令是alter,其基本语法如下:
altertabletable_namealter_spec[,alter_spec…
1:删除列

ALTERTABLE【表名字】DROP【列名称】

2:增加列

ALTERTABLE【表名字】ADD【列名称】INTNOTNULLCOMMENT‘注释说明’
3:修改列的类型信息
ALTERTABLE【表名字】CHANGE【列名称】【新列名称(这里可以用和原来列同名即可)】BIGINTNOTNULLCOMMENT‘注释说明’
4:重命名列
ALTERTABLE【表名字】CHANGE【列名称】【新列名称】BIGINTNOTNULLCOMMENT‘注释说明’
5:重命名表
ALTERTABLE【表名字】RENAME【表新名字】
6:删除表中主键
AlterTABLE【表名字】dropprimarykey
7:添加主键
ALTERTABLE【表名字】ADDCONSTRAINTPK_SJ_RESOURCE_CHARGESPRIMARYKEY(resid,resfromid)
8:添加索引
ALTERTABLE【表名字】addindexINDEX_NAME(name);
9:添加唯一限制条件索引
ALTERTABLE【表名字】adduniqueemp_name2(cardnumber);
10:删除索引
altertable【表名字】dropindexemp_name;

补充一下

1.alter操作表字段

(1)增加字段

altertable表名add字段名字段类型;

altertablestudentaddnamevarchar(10);

(2)修改字段

altertable表名change旧字段名新字段名字段类型;

altertable表名modify字段名字段类型;//修改字段类型

altertablestudentchangenamenamevarchar(20)notnulldefault'liming';//修改字段类型default后边是

字段默认的值

altertablestudentchangenamename1varchar(20)notnulldefault'liming';//修改字段名

(3)删除字段

altertable表名drop字段名;

altertablestudentdropname;

2.alter索引操作

(1)增加索引

altertable表名addindex索引名(字段名1,字段名2.....);

altertablestudentaddindexstu_name(name);

(2)删除索引

altertable表名dropindex索引名;

altertablestudentdropindexstu_name;

(3)查看某个表的索引

showindexfrom表名;

(4)增加唯一限制条件的索引

altertable表名addunique索引名(字段名);

3.主键操作

增加主键:

altertable表名addprimarykey(字段名);

删除主键:

altertable表名dropprimarykey;(主键不是自动增长情况下)

altertable表名modify字段字段类型,dropprimarykey;(主键是自动增长情况下)

altertable123modifyidint,dropprimarykey;

时间: 2024-11-04 18:09:43

Alter改变MySQL数据库的表结构例子的相关文章

MySQL中修改表结构时需要注意的一些地方_Mysql

MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断的情况,当升级脚本修改了应用层和数据库层,或者缺乏经验的管理员.开发在不是很了解Mysql内部工作机制的情况下修改了规范文件. 真相是: 直接修改表结构的过程中会锁表(在5.6版本之前) 在线的数据定义语言在5.6版本不总是在线的而且也会锁表 就算使用Percona工具包(在线修改定义文件)也会有若

表单-多表头和可变表头(一条信息的数据量大小可变。)该怎么设计数据库的表结构。

问题描述 多表头和可变表头(一条信息的数据量大小可变.)该怎么设计数据库的表结构. 我现在有一个表单需要存入数据库.但是客户要求该表单的 表头可变.也就是他要自定义表单.这种情况我该怎么为这张表单设计表结构了?同时该表单中的所有字段都要参加计算的,有些项的值是其他项通过计算得出的.虽然是简单的加减乘除,但是客户要求可以自动的计算.小弟用的Spring MVC+JPA 数据库mysql 或者 oracle 解决方案 一般一个表单中的字段分为固定的字段和 动态的字段. 将固定的字段,设计成一张表,称

MySQL数据库与表的最基本命令大盘点

你是否对获得MySQL数据库与表的最基本命令的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得关于MySQL数据库与表的最基本命令的方案,以下就是相关内容的具体描述. SELECT DATABASE(); 列出当前所选择的数据库,如果未选择数据库则显示NULL; SHOW DATABASES; 列出服务器上当前存在的MySQL数据库; USE databasename; 选择访问某个数据库; SHOW tables; 找出当前的MySQL数据库包

MySQL数据库与表的最基本命令

你是否对获得MySQL数据库与表的最基本命令的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得关于MySQL数据库与表的最基本命令的方案,以下就是相关内容的具体描述. SELECT DATABASE(); 列出当前所选择的数据库,如果未选择数据库则显示NULL; SHOW DATABASES; 列出服务器上当前存在的MySQL数据库; USE databasename; 选择访问某个数据库; SHOW tables; 找出当前的MySQL数据库包

mysql数据库建表问题,在线急等

问题描述 mysql数据库建表问题,在线急等 数据库建表这3个语句是什么意思?后两个有什么区别? (1)PRIMARY KEY (ID) USING BTREE (2)ENGINE=InnoDB DEFAULT CHARSET=gb2312; (3)ENGINE = InnoDB CHARACTER SET gb2312 COLLATE gb2312_chinese_ci; 解决方案 创建主键 collate对字符串排序. 解决方案二: 创建主键,gb2312是编码格式吧,类型 解决方案三: 1

PHP操作mysql数据库分表的方法_php实例

一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法.首先,我们需要想好到底分多少个 表,前提当然是满足应用.这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10 进行取模.另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了. 好了,先来创建表吧,代码如下: CREATE TABLE `ttlsa_com`.`article_0` ( `i

PHP操作mysql数据库分表的方法

一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法.首先,我们需要想好到底分多少个 表,前提当然是满足应用.这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10 进行取模.另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了. 好了,先来创建表吧,代码如下: CREATE TABLE `ttlsa_com`.`article_0` ( `i

mysql 命令修改表结构ALTER TABLE 句法

ALTER TABLE 句法 ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification:         ADD [COLUMN] create_definition [FIRST | AFTER column_name ]   or    ADD [COLUMN] (create_definition, create_definition,...)   or    ADD INDEX [ind

mysql在线修改表结构大数据表的风险与解决办法归纳

整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在.所以我很想看看业界是怎么做的,我想寻找有没有更高级的方案,呵呵,让我觉得每次开发一个新功能,我在线加字段都比较纠结.后来只知道,不清楚在什么时候,无意中看到一个资料介绍online-schema-change这个工具,于是