创建数据表:
CREATE TABLE<表名>
(
字段名1, 数据类型[列级别的约束条件][默认条件]
......
[表级别约束条件]
);
在定义列的同时指定主键:
字段名 数据类型 PRIMAEY_KEY[默认值]
在定义完所有列之后指定主键:
[CONSTRINT<约束名>]PRIMARY KEY[字段名]
定义多字段联合主键:
PRIMARY KEY[字段1,字段2,...字段n]
使用外键约束:
[CONSTRAINT<外键名>]FOREIGN KEY 字段名1 [,字段名2,...] REFERENCES<主表名>主键1[,主键列2,...]
“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键。
使用非空约束:
字段名 数据类型 not null
使用唯一性约束:
字段名 数据类型 UNIQUE
在定义完所有列后指定唯一约束,语法规则如下:
[CONSTRAINT<约束名>] UNIQUE(<字段名>)
UNIQUE和PRIMARY KEY的区别:一个表可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明:声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。
默认约束指定某列的默认值,默认约束的语法规则如下:
字段名 数据类型 DEFUALT 默认值
在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认的,在Mysql中AUTO_INCREMENT的初始值是1,每增加一条记录,字段值自动加1.一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT,SMALLIN,INT,BIGINT等) 。
设置唯一性约束的语法规则如下:
字段名 数据类型 AUTO_INCREMENT
查看数据表结构,语法如下:
DESCRIBE/DESC 表名;
其中,各个字段的含义分别解释如下:
- NULL:表示该列是否可以存储NULL值。
- Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。
- Default:表该列是否有默认值。如果有的话是多少。
- Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。
查看表详细结构语句:
SHOW CREATE TABLE<表名\G>;
如果不加'\G'参数,显示的结果可能非常混乱,加上参数‘\G'之后,可使显示结果更加直观,易于查看。
修改表名:
ALTER TABLE<旧表名>RENAME[TO]<新表名>;
修改字段的数据类型:
ALTER TABLE<表名> MODIFY <字段名> <数据类型>
修改字段名:
ALTER TABLE<表名>CHANGE<旧字段名> <新字段名><新数据类型>;
添加字段:
ALTER TABLE <表名>ADD<新字段名><数据类型>[约束条件][FIRST|AFTER 已存在字段名];
删除字段:
ALTER TABLE<表名>DROP<字段名>;
修改字段的排列位置:
ALTER TABLE<表名>MODIFY <字段 1><数据类型> FIRST|AFTER <字段 2>;
更改表的存储引擎:
ALTER TABLE<表名> ENGINE=<更改后的存储引擎名>
删除表的外键约束:
ALTER TABLE<表名> DROP FOREIGN KEY<外键约束名>
删除没有被关联的表:
DROP TABLE [IF EXISTS]表1,表2,...表n;
外键约束是用来保证数据的参照完整性,如果表之间需要关联外键,却指定了不同的存储引擎,这些表之间是不能创建外键约束的。
删除被其他表关联的主表:
先删除外键关联,再删除关联子表。