mysql多表操作

ER图: Entrty Relation (实体关系)
矩形表示实体
椭圆表示属性
菱形表示实体之间的关系

外键约束:
alter table 需要添加关系的表名 add
foreign key (当前表中的列名) references 被引用的表名(被引用表的列名);

第二种方式:
create table coder_project(
coder_id int,
project_id int,
foreign key(coder_id) references coder(id),
foreign key(project_id) references project(id)
);

多表查询:
内连接、左外连接、右外连接、全连接
内连接: (显示的内容:a.id,b.id)
select * from 表1,表2 where 表1.列名=表2.列名;
select * from 表1 innerjoin 表2 on 表1.列名=表2.列名;
左外连接:
select * from 表1 left outer join 表2 on 表1.列名=表2.列名;
右外连接:
select * from 表1 right outer join 表2 on 表1.列名=表2.列名;
全连接:
左连接 uniton all 右连接; 有重复记录
改为 左连接 uniton 右连接;

子查询:(查询嵌套)
查询不及格的学生:使用in
select * from student where student_id in (select student_id from studentcourse where score <60);
查询不及格的学生:使用exists 只要子查询有结果就显示主查询的记录 类似循环嵌套
select * from student where exists (
select student_id from studentcourse where score <60 and student.id=studentcourse.student.id);

all\any:

all(1,2,3);大于1且大于2且大于3
any(1,2.3);大于1或大于2或大于3

– 向上取整
select ceiling (3.0);
– 向下取整
select floor (3.1);
– 保留两位小数 四舍五入
select format (3.14159,2);

自关联表:
对记录做增删改是主表与子表名不能相同
创建临时表解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值