热线电话:13121318867

登录
2019-03-08 阅读量: 813
多表sql语法

(1)oracle:创建学生表,班级表,添加外键关联:

--创建学生表:

create table t_student(

sid number primary key ,

sname varchar2(10),

gender char(3),

classid number

)

--创建班级表:

create table t_class(

cid number primary key,

cname varchar(10)

)


----学生表添加数据:

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);

---班级表添加数据:

insert into t_class values (1,'java01');

insert into t_class values (2,'java02');


--添加学生表的外键约束:

alter table t_student add constraints fk_student foreign key (classid) references t_class (cid)on delete cascade;


(2)mysql创建学生表,班级表,添加外键关联:

##创建学生表:

create table t_student(

sid int primary key auto_increment,

sname varchar(10),

gender char(3),

classid int

)

##创建班级表:

create table t_class(

cid int primary key,

cname varchar(10)

)

##学生表添加数据:

insert into t_student values (null,'lili','男',1);

insert into t_student values (null,'nana','男',2);

##班级表添加数据:

insert into t_class values (1,'java01');

insert into t_class values (2,'java02');

##添加学生表的外键约束:

alter table t_student add constraint fk_student foreign key (classid) references t_class (cid) on delete set null on update CASCADE;

注意哪里不同:

创建语法不同

外键约束:oracle是constraints,mysql是constraint

级联操作:

oracle:on delete set null 或者on delete cascade

mysql : on delete set null on update CASCADE

更改班级表的主键的时候,学生表外键的值也随之更改

删除班级表的主键记录的时候,学生表外键的值置空


11.外连接:

oracle:92语法:可以内连接,外连接

99语法:可以内连接,外连接,全外连接

mysql:只支持 内连接,外连接 ,并且只能用类似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;(只能这样写)

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子