(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;(只能这样写)
在第一节基础上 更新了函数和执行顺序:实操了字符数函数、时间函数、字段截取函数、interval函数等,除最后顺序实操因未导入数据库,导致无法执行