MySQL5.5.21学习教程之二(三)
ault | Extra |
+--------+-------------+------+-----+---------+-------+
| deptno | int(11) | NO | PRI | 0 | |
| dname | varchar(20) | NO | PRI | | |
| loc | varchar(40) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
drop table t_dept;
设置字段值自动增加
create table t_dept(
deptno INTEGER auto_increment,
dname VARCHAR(20),
loc VARCHAR(40),
constraint uk_dname unique(dname),
constraint pk_dname_depno primary key(deptno,dname)
);
desc t_dept;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| deptno | int(11) | NO | PRI | NULL | auto_increment |
| dname | varchar(20) | NO | PRI | | |
| loc | varchar(40) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
设置外键约束通常能表示多个表之间的参照性的完整性约束,即构建于两个
表的两个字段之间的参照关系
设置外键约束的两个表之间会具有父子关系,即子表中某个字段的取值范围由
父表决定,表示一种部门和雇员关系,即每个部分有多少雇员。
首先应该有两个表:部门表和雇员表,雇员表中有一个字段表示部门编号的字段deptno
其依赖于部门表的主键,这样字段deptno就是雇员表的外键,通过该字段部门编号的字段deptno
其依赖于部门表的主键,这样字段deptno就是雇员表的外键。
create table table_name (
属性名 数据类型,
属性名 数据类型,
......
constraint 外键约束名 foreign key (属性名1)
references 表明(属性名2)
);
create table t_employee(
empno INTEGER primary key,
ename VARCHAR(20),
job VARCHAR(20),
MGR INTEGER,
Hiredate date,
sal double(10,2),
comm double(10,2),
deptno INTEGER,
constraint fk_deptno foreign key(deptno) references t_dept(deptno)
);
show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| t_dept |
| t_employee |
+-------------------+
desc t_employee;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| empno | int(11) | NO | PRI | NULL | |
| ename | varchar(20) | YES | | NULL | |
| job | varchar(20) | YES | | NULL | |
| MGR | int(11) | YES | | NULL | |
| Hiredate | date | YES | | NULL | |
| sal | double(10,2) | YES | | NULL | |
| comm | double(10,2) | YES | | NULL | |
| deptno | int(11) | YES | MUL | NULL | |
+----------+--------------+------+-----+---------+-------+