笔记-mysql基础2-改变数据表结构
2011-11-29 16:36
489 查看
1、改变字段类型
有些数据库系统只允许ALTER TABLE 语句完成一个改动,但MySQL允许用一条ALTER TABLE 语句完成多个改动,只要用逗号把他们隔开。
改变某个数据列的数据类型,可使用MODIFY或CHANGE:
CHANGE 子句需要写两遍数据列的名字,因为CHANGE能够(MODIFY 不能)在改变数据类型的同时重新命名一个数据列。如果想在改变其数据类型的同时把数据列i重新命名为
k,只需将第二个i换成k即可。如果你只需要改变数据列名称而不改变类型,只需要写出CHANGE old_name new_name 再写出数据列当前定义即可。
2、改变字符集
3、改变存储引擎
如果你打算让数据表改用另一种存储引擎时,能否达到你的目的还要取决于新老两种存储引擎的功能是否兼容。例如,以下转化就是不允许的:
MEMORY引擎支持BLOB数据列
只有MyISAM支持FULLTEXT或SPATIAL索引
只有InnoDB支持外键
4、重命名数据表
也可以使用RENAME交换两个表名称
有些数据库系统只允许ALTER TABLE 语句完成一个改动,但MySQL允许用一条ALTER TABLE 语句完成多个改动,只要用逗号把他们隔开。
改变某个数据列的数据类型,可使用MODIFY或CHANGE:
ALTER TABLE mytbl MODIFY i MEDIUMINT UNSIGNED; 或 ALTER TABLE mytbl CHANGE i i MEDIUMINT UNSIGNED;
CHANGE 子句需要写两遍数据列的名字,因为CHANGE能够(MODIFY 不能)在改变数据类型的同时重新命名一个数据列。如果想在改变其数据类型的同时把数据列i重新命名为
k,只需将第二个i换成k即可。如果你只需要改变数据列名称而不改变类型,只需要写出CHANGE old_name new_name 再写出数据列当前定义即可。
2、改变字符集
ALTER TABLE mytbl MODIFY i CHAR(20) CHARACTER SET utf-8;
3、改变存储引擎
ALTER TABLE tbl_name ENGINE = engine_name;
如果你打算让数据表改用另一种存储引擎时,能否达到你的目的还要取决于新老两种存储引擎的功能是否兼容。例如,以下转化就是不允许的:
MEMORY引擎支持BLOB数据列
只有MyISAM支持FULLTEXT或SPATIAL索引
只有InnoDB支持外键
4、重命名数据表
ALTER TABLE tbl_name RENAME TO new_tbl_name; 或 RENAME TABLE old_name TO new_name;
也可以使用RENAME交换两个表名称
RENAME TABLE t1 TO tmp, t2 TO t1, tmp TO t2;
相关文章推荐
- 菜鸟笔记之数据结构基础概述
- 【学习笔记】数据结构与算法基础学习:链表
- MySQL系列:innodb引擎分析之基础数据结构
- (笔记)Mysql命令desc:获取数据表结构
- 【算法学习笔记】08.数据结构基础 二叉树初步练习1
- MySQL基础笔记(一) SQL简介+数据类型
- MYSQL基础笔记(七)- 数据类型二
- 数据结构学习笔记一:数据结构基础
- 【算法学习笔记】09.数据结构基础 二叉树初步练习2
- MySQL基础笔记(一) SQL简介+数据类型
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
- 数据结构基础学习笔记 part 2
- 【算法学习笔记】09.数据结构基础 二叉树初步练习2
- 【算法学习笔记】12.数据结构基础 图的初步1
- 数据结构基础学习笔记 part 1
- 【算法学习笔记】12.数据结构基础 图的初步1
- 【算法学习笔记】10.数据结构基础 二叉树初步练习3(遍历与递归复习)
- 【算法学习笔记】06.数据结构基础 队列与堆栈初步
- 数据结构基础笔记(二)【严蔚敏】
- 【算法学习笔记】10.数据结构基础 二叉树初步练习3(遍历与递归复习)