wo56565

2019-03-08   阅读量: 610

Mysql

多表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;(只能这样写)

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 2 关注作者 收藏

评论(0)


暂无数据

推荐课程