1.語法:
create table 庫名.表名(
字段名1 類型[(寬度)約束條件],
字段名2 類型[(寬度)約束條件],
字段名3 類型[(寬度)約束條件]
);
約束條件:是在數據類型之外對字段附加的額外限制
注意:
1.最后一個字段之后不能加逗號
2.在同一張表中,字段名不能相同
3.寬度和約束條件可選,字段名和類型是必須的
2.約束
1.常見約束
not null 非空
default 默認值
auto_increment 自增長
primary key 主鍵 非空且唯一
實例:
create table t1(
id int primary key auto_increment,
name varchar(16) not null,
sex enum('male','female') not null default 'male'
);
插入無特殊情況只需插入name
insert into t1(name) values
('dahai'),
('xiaohei'),
('xiaobai');
mysql> select * from t1;
+----+---------+------+
| id | name | sex |
+----+---------+------+
| 1 | dahai | male |
| 2 | xiaohei | male |
| 3 | xiaobai | male |
+----+---------+------+
auto_increment(自己設置初始值)
create table t2(
id int primary key auto_increment,
name varchar(20) not null)
auto_increment = 100;
插入數據
insert into t2(name) values
('dahai'),
('xiaohei'),
('xiaobai');
mysql> select * from t2;
+-----+---------+
| id | name |
+-----+---------+
| 100 | dahai |
| 101 | xiaohei |
| 102 | xiaobai |
+---------+-----+
2.唯一約束
unique key
實例:
創建方式一
create table t3(id int unique);
創建方式二
create table t4(
id int,
unique key(id)
);
2.2聯合唯一(二者加起來是唯一)
create table t5(
ip varchar(15),
port int,
unique(ip,port)
);
站在約束的角度來看 primary key =not null unique
主鍵:
1.必須有且只有一個主鍵
2.通常是id字段被設置成主鍵
create table t6(
id int primary key auto_increment
);
聯合主鍵(二者加起來是非空且唯一)
create table t7(
x varchar(15),
y int,
primary key (x,y)
);