(1)oracle:創(chuàng)建學(xué)生表,班級表,添加外鍵關(guān)聯(lián):
--創(chuàng)建學(xué)生表:
create table t_student(
sid number primary key ,
sname varchar2(10),
gender char(3),
classid number
)
--創(chuàng)建班級表:
create table t_class(
cid number primary key,
cname varchar(10)
)
----學(xué)生表添加數(shù)據(jù):
insert into t_student values (seq_emp.nextval,'lili','男',1);
insert into t_student values (seq_emp.nextval,'nana','男',2);
insert into t_student values (seq_emp.nextval,'feifei','男',3);
---班級表添加數(shù)據(jù):
insert into t_class values (1,'java01');
insert into t_class values (2,'java02');
--添加學(xué)生表的外鍵約束:
alter table t_student add constraints fk_student foreign key (classid) references t_class (cid)on delete cascade;
(2)mysql創(chuàng)建學(xué)生表,班級表,添加外鍵關(guān)聯(lián):
##創(chuàng)建學(xué)生表:
create table t_student(
sid int primary key auto_increment,
sname varchar(10),
gender char(3),
classid int
)
##創(chuàng)建班級表:
create table t_class(
cid int primary key,
cname varchar(10)
)
##學(xué)生表添加數(shù)據(jù):
insert into t_student values (null,'lili','男',1);
insert into t_student values (null,'nana','男',2);
##班級表添加數(shù)據(jù):
insert into t_class values (1,'java01');
insert into t_class values (2,'java02');
##添加學(xué)生表的外鍵約束:
alter table t_student add constraint fk_student foreign key (classid) references t_class (cid) on delete set null on update CASCADE;
注意哪里不同:
創(chuàng)建語法不同
外鍵約束:oracle是constraints,mysql是constraint
級聯(lián)操作:
oracle:on delete set null 或者on delete cascade
mysql : on delete set null on update CASCADE
更改班級表的主鍵的時候,學(xué)生表外鍵的值也隨之更改
刪除班級表的主鍵記錄的時候,學(xué)生表外鍵的值置空
11.外連接:
oracle:92語法:可以內(nèi)連接,外連接
99語法:可以內(nèi)連接,外連接,全外連接
mysql:只支持 內(nèi)連接,外連接 ,并且只能用類似oracle中99語法的格式寫:
select * from t_class c,t_student s where c.cid(+)=s.classid; (不可以出錯)
select * from t_class c right join t_student s on c.cid=s.classid;(只能這樣寫)








暫無數(shù)據(jù)