当前位置:   article > 正文

SQL Server中的内连接(inner join)_sql server inner join

sql server inner join

目录

零、码仙励志

一、建库和建表

二、内连接的用法(inner join)

1.select ...... from A,B 的用法

2.select ...... from A,B  where ......的用法(sql92标准)

3.select ...... from A join B on ......的用法(sql99标准)


零、码仙励志

不被嘲笑的梦想是没有价值的。愿你的梦想不只是空谈的情怀,而是实干的姿态

一、建库和建表

  1. create database scort
  2. use scort
  3. create table emp
  4. (
  5. empno int primary key,
  6. ename nvarchar(10),
  7. sal int,
  8. deptno int
  9. )
  10. insert into emp values (7369,'smith',3000,20);
  11. insert into emp values (7499,'allen',1500,10);
  12. insert into emp values (7521,'ward',2850,30);
  13. insert into emp values (7566,'jones',2000,30);
  14. insert into emp values (7654,'martin',5000,10);
  15. insert into emp values (7698,'blake',1800,30);
  16. create table dept
  17. (
  18. deptno int primary key,
  19. dname nvarchar(10),
  20. loc nvarchar(10)
  21. )
  22. insert into dept values (10,'accounting','new york');
  23. insert into dept values (20,'research','dallas');
  24. insert into dept values (30,'sales','chicago');
  25. insert into dept values (40,'operations','boston');
  26. create table salgrade
  27. (
  28. grade int primary key,
  29. lostl int,
  30. hisal int
  31. )
  32. insert into salgrade values (1,700,1200);
  33. insert into salgrade values (2,1201,1400);
  34. insert into salgrade values (3,1401,2000);
  35. insert into salgrade values (4,2001,3000);
  36. insert into salgrade values (5,3001,6000);

二、内连接的用法(inner join)

解释:将两个表或两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据。

注意:inner join 可以简写为 join

1.select ...... from A,B 的用法

1.产生的结果:行数是A和B的乘积,列数是A和B之和。或者说把A表的每一条记录和B表的每一条记录组合在一起,形成的是个笛卡尔积。

2.select ...... from A,B和select ...... from B,A的输出查询结果本质上是一样的,只是看起来A,B表的前后顺序不一样而已。

3.实例演示:

select * from emp,dept

select * from dept,emp

2.select ...... from A,B  where ......的用法(sql92标准)

1.select ...... from A,B  where ......和select ...... fromB,A  where ......查询结果本质上一样

select * from emp,dept where sal>2000

2.如果俩个表或多个表有相同列名的时候,where后面必须加表名。

select * from emp,dept where deptno=10 --error

select * from emp,dept where emp.deptno=10

select * from emp,dept where dept.deptno=10

3.三张表连接在一起

  1. --把工资大于2000的ename,dname和grade输出
  2. select "E".ename,"D".dname,"S".grade
  3. from emp "E",dept "D",salgrade "S"
  4. where "E".deptno="D".deptno and
  5. ("E".sal>"S".lostl and "E".sal<"S".hisal) and
  6. "E".sal>2000

3.select ...... from A join B on ......的用法(sql99标准)

1.select ...... from A join B on ......和select ...... from B join A on ......查询结果本质上一样

2.俩张表连接在一起

  1. select * from emp
  2. join dept
  3. on 1=1

  1. select * from emp
  2. join dept
  3. on emp.deptno=dept.deptno

3.三张表连接在一起

  1. --把工资大于2000的ename,dname和grade输出
  2. select "E".ename,"D".dname,"S".grade
  3. from emp "E"
  4. join dept "D"
  5. on "E".deptno="D".deptno
  6. join salgrade "S"
  7. on "E".sal>"S".lostl and "E".sal<"S".hisal
  8. where "E".sal>2000

本篇博客来自于郝斌老师视频教程的总结以及笔记的整理,仅供学习交流,切勿用于商业用途,如有侵权,请联系博主删除,博主QQ:194760901 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/989133
推荐阅读
相关标签
  

闽ICP备14008679号