已经建立了两个表,请问如何用SQL语句建立关联?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已经建立了两个表,请问如何用SQL语句建立关联?相关的知识,希望对你有一定的参考价值。
已经有两张表格,student和score,现在要建立student表中sno字段和score表中sno字段之间的关系,请问SQL语句要怎么写?
我菜鸟,能解释下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
自然连接(列名相同,只选相同列名下两边值相等的行):
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语句建立关联?的主要内容,如果未能解决你的问题,请参考以下文章