已经建立了两个表,请问如何用SQL语句建立关联?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已经建立了两个表,请问如何用SQL语句建立关联?相关的知识,希望对你有一定的参考价值。

已经有两张表格,student和score,现在要建立student表中sno字段和score表中sno字段之间的关系,请问SQL语句要怎么写?
我菜鸟,能解释下a和b是什么吗?

很简单,几乎对所有的数据库,都是 WHERE a.sno = b.sno,其中,a 和 b 是两张表的别名。

即,SELECT * FROM student a, score b WHERE a.sno = b.sno

a 和 b 我不是说了吗,是两张表的别名,纯粹是方便而用的,你可以写成其他的,比如 t1,t2,随便你,不过在 Select 字段时,要把 a.字段名 改成 t1.字段名,b.字段名改成 t2.字段名就是了。
参考技术A

    SQL 关键字 inner join

    假如定义A 表,2个字段(a,b)

    定义B 表 ,2个字段(b,c)

    SQL 如下:

    select a.a,a.b,b.c  from  A as a inner join B as b

    ON a.b=b.b

参考技术B 以下对ORACLE,SQL SERVER等都适用:

自然连接(列名相同,只选相同列名下两边值相等的行):
SELECT * FROM STUDENT A NATURAL JOIN SCORE B

内连接(列名不一定相同,只选满足ON条件的行):
SELECT * FROM STUDENT A INNER JOIN SCORE B ON A.SNO = B.SNO

左外连接(列名不一定相同,只选满足ON条件的行和左表的全部,右表填充空值):
SELECT * FROM STUDENT A LEFT OUTER JOIN SCORE B ON A.SNO = B.SNO

右外连接(列名不一定相同,只选满足ON条件的行和右表的全部,左表填充空值):
SELECT * FROM STUDENT A RIGHT OUTER JOIN SCORE B ON A.SNO = B.SNO

全外连接(列名不一定相同,只选满足ON条件的行和两边表的全部,无匹配的全部填充空值)
SELECT * FROM STUDENT A FULL OUTER JOIN SCORE B ON A.SNO = B.SNO

全连接(笛卡尔积,所有行和所有行交叉组合形成新表)
SELECT * FROM STUDENT A CROSS JOIN SCORE B
参考技术C 也可以用select * from student a inner join score b on a.sno=b.sno 参考技术D 用关联语句.

如何用SQL语句的查询实现两个表之间的查询连接

用SQL语句的查询实现两个表之间的查询连接:
表Student(Sno,Sname,Sex,Sage,Sdept),其中Sno为主键:
表Score(Sno,Cno,Grade),其中Sno和Cno为联合主键;
请问如何查询选修了2号课程且成绩在90分以上的学生!

一、用连接查询:
SELECT * FROM Student INNER JOIN Score
ON Cno=2 AND Grade>=90
二、用子查询:
SELECT * FROM Student WHERE Sno IN(
SELECT Sno FROM Score
WHERE Cno=2 AND Grade>90)
参考技术A select * from Student where sno in(select Sno from Score where Cno =2 and Grade > 90) 参考技术B select distinct t1.* from student t1 inner join score t2
on t1.Sno=t2.Sno
where t2.cno=2 and t2.grade>90
参考技术C select * from student inner join score where cno=2 and grade>90 参考技术D select Sname from Student,Score where Student.Sno=Score.Sno and Score.Grade>90;

以上是关于已经建立了两个表,请问如何用SQL语句建立关联?的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句删除两个表中相同的记录?

如何用一条SQL语句对比两个表的数据是不是一致

在SQL中,如何用ALTER命令删除表中所有完整性约束,然后再用ALTER命令建立

如何用SQL语句的查询实现两个表之间的查询连接

SQL数据库中表与表之间的关联怎么建立

请问:如何用sql语句来查询有多少学生选修课呢?