数据库之多表查询

子查询:
    select * from (select * from student where  age>20 ) stu 
多表查询:
    获取学生各科的成绩后应该怎样存储:
    eg.张三 2017846550 计科 数据库 数据库 80 
         张三 2017846550 计科 java 数据库 80    
         李四 2017846550 计科 数据库 数据库 80
         李四2017846550 计科  数据库 80
应该将学生信息和学生成绩分别列为两个表避免数据的冗余
    假设表1  student 数据:学号  姓名  性别  年龄  专业
    假设表2  stu_score数据:ID     stu_no  subject   score 
(注:若设置字节长度为50无论你写了几个字都占用50个字节)
    select student.*, stu_score.* from student,stu_score
    两个表通过学生编号进行关联将按照某种条件进行综合排序
    select student.*, stu_score.* from student,stu_score  where student.stu_no=stu_score.stu_no
链接分为交叉连接 外连接 内连接,下面对各个连接进行介绍
交叉连接:
select student.*, stu_score.* from student

内连接:
1,select student.*, stu_score.* from student   inner join  stu_score on student.stu_no=stu_score.stu_no
    其中的* 号可以随便的添加自己需要的条件
2,select student.stu_name,student.stu_no,  stu_score.subject, stu_score.score   from student   inner join  stu_score on student.stu_no=stu_score.stu_no

外连接:
1.左链接:select  student.stu_name,student.stu_no,  stu_score.subject, stu_score.score from student   left join stu_score  on student.stu_no=stu_score.stu_no
    左边的student 表用于统计作为主表,主表有的信息就显示,右边不存在信息就为空
2.右链接:select  student.stu_name,student.stu_no,  stu_score.subject, stu_score.score from student  right join stu_score  on student.stu_no=stu_score.stu_no
    右边的st_score 表用于统计作为主表

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值