1.1.1.1 約束的作用
約束是用來保證資料的完整性。
1.1.1.2 單錶約束
l 主鍵約束
l 唯一約束
l 非空約束
1.1.1.3 多表約束
l 外來鍵約束:用來保證資料完整性(多表之間)。
1.1.2.1 建立乙個部門表
create table dept(
did int primary key auto_increment,
dname varchar(20)
);
insert into dept values (null,'市場部
');insert into dept values (null,'人事部
');insert into dept values (null,'教研部
');
1.1.2.2 建立乙個員工表
create table employee(
eid int primary key auto_increment,
ename varchar(20),
salary double,
birthday date,
*** varchar(10),
dno int
);
insert into employee values (null,'張三
',8000,'1988-09-01','
男',3);
insert into employee values (null,'李四
',9000,'1988-09-01','
男',1);
insert into employee values (null,'王五
',6000,'1988-09-01','
男',2);
insert into employee values (null,'趙六
',10000,'1988-09-01','
男',3);
insert into employee values (null,'孫七
',10000,'1988-09-01','
男',1);
1.1.2.3 刪除其中的某個部門(是否可以)
l 檢視資料
l 向員工表中插入一條記錄(沒有部門)
insert into employee values (null,'田八
',10000,'1988-09-01','
男',null);
l 刪除乙個人事部
delete from dept where did = 2;
向剛才做的這兩個操作(插入乙個沒有部門的員工,刪除乙個帶有員工的部門)。這種情況都是不應該發生。這個時候需要在多表之間新增外來鍵約束。
1.1.3.1 在員工表上新增外來鍵
alter table employee add foreign key (dno) references dept(did);
1.1.3.2 設定外來鍵為非空
alter table employee modify dno int not null;
MySQL之外鍵約束
mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,referencestbl name inde...
MySQL之外鍵約束
mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...
MySQL之外鍵約束
mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...