建表语句
CREATE TABLE `tr_test` (
`uid` int(11) default 0 not null,
`name` varchar(25),
CONSTRAINT `name_key` UNIQUE(`name`),
KEY `uid_key`(`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
#上面语句等同于
CREATE TABLE `tr_test` (
`uid` int(11) NOT NULL DEFAULT '0',
`name` varchar(25) DEFAULT NULL,
UNIQUE KEY `name_key` (`name`),
KEY `uid_key` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
查看表结构,查看详细表结构
查看表结构用describe TABLE 或者desc TABLE,查看详细表结构可以用SHOW CREATE TABLE
修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>
修改字段的数据类型,位置
ALTER TABLE <表名> MODIFY <字段名> <数据类型> [FIRST | AFTER 字段名]
修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型> [FIRST | AFTER 字段名]
添加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件(主键,非空,唯一等)] [FIRST | AFTER 字段名]
删除字段
ALTER TABLE <表名> DROP <字段名>
更改表的引擎,默认字体
ALTER TABLE <表名> ENGINE=<新引擎名>;
ALTER TABLE <表名> CHARSET=<新字体名>;
修改主键
由于mysql只允许存在一个主键,所以在修改主键的时候需要删除原来的主键,再重新添加
ALTER TABLE <表名> DROP PRIMARY KEY;
ALTER TABLE <表名> ADD PRIMARY KEY(字段名);
新加索引
ALTER TABLE <表名> ADD [UNIQUE] KEY [索引名](<字段名>);
不写索引名则默认索引名为字段名
删除索引
ALTER TABLE <表名> DROP KEY <索引名>;
添加外键
ALTER TABLE <子表名> ADD CONSTRAINT <外键名> FOREIGN KEY('字段名') REFERENCES <父表名>(<主表主键字段>)
[[ON DELETE <约束>] [ON UPDATE <约束>]]
ON DELETE 和 ON UPDATE的约束条件有4个
NO ACTION 标准SQL的关键字,在MySQL中与RESTRICT相同。
CASCADE 从父表删除或更新且自动删除或更新子表中匹配的行。
SET NULL 从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指
RESTRICT 拒绝对父表的删除或更新操作。
删除外键
ALTER TABLE <子表明> DROP FOREIGN KEY <外键名>
删除数据表
DROP TABLE [IF EXISTS] 表1,表2,表3...
当表有外键关联的时候,无法进行删除,这个时候需要先删除外键,再进行删除才可以成功。