一、创建数据表
CREATE TABLE <表名> ( 字段名1,数据类型 [列级别约束条件] [默认值], ... [表级别约束条件] );
二、主键约束
1、单字段主键
1-1、定义列的同时指定主键
字段名 数据类型 PRIMARY KEY [默认值]
mysql> CREATE TABLE tb_emp2 -> ( -> id int primary key, -> name varchar(25), -> deptId int, -> salary float -> ); Query OK, 0 rows affected (0.07 sec)
1-2、定义完所有列之后指定主键
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
mysql> CREATE TABLE tb_emp3 -> ( -> id int, -> name varchar(25), -> deptId int, -> salary float, -> primary key(id) -> ); Query OK, 0 rows affected (0.07 sec)
2、多字段联合主键
PRIMARY KEY [字段1,字段2,...,字段n]
mysql> CREATE TABLE tb_emp4 -> ( -> name varchar(25), -> deptId int, -> salary float, -> primary key(name,deptId) -> ); Query OK, 0 rows affected (0.05 sec)
三、外键约束
四、非空约束
字段名 数据类型 not null
mysql> CREATE TABLE tb_emp6 -> ( -> id int primary key, -> name varchar(25) not null, -> deptId int, -> salary float -> ); Query OK, 0 rows affected (0.05 sec)
五、唯一约束
1.在定义完列之后直接指定唯一约束
字段名 数据类型 UNIQUE
CREATE TABLE tb_dept2 ( id int primary key, name varchar(22) unique, location varchar(50) );
2.在定义完所有列之后指定唯一约束
[constraint <约束名>] unique(<字段名>)
create table tb_dept3 ( id int primary key, name varchar(22), location varchar(50), constraint sth unique(name) );
UNIQUE和PRIMARY KEY的区别:
一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY
声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在
六、默认约束
字段名 数据类型 default 默认值
create table tb_emp7 ( id int primary key, name varchar(25) not null, deptId int default 1111, salary float );
七、设置表属性值自动增加
字段名 数据类型 auto_increment
create table tb_emp8 ( id int primary key auto_increment, name varchar(25) not null, deptId int, salary float );