SQL连接查询我们经常会用到,其中SQL多表连接查询分为:内连接,外连接,交叉连接,下面就为您详细介绍SQL连接查询方面的知识,供您参考。
成都创新互联公司是一家以网站设计建设,小程序开发、网站开发设计,网络软件产品开发,企业互联网推广服务为主的民营科技公司。主要业务涵盖:为客户提供网站策划、网站设计、网站开发、空间域名、网站优化排名、外链等服务领域。凭借建站老客户口碑做市场,建设网站时,根据市场搜索规律和搜索引擎的排名收录规律编程,全力为建站客户设计制作排名好的网站,深受老客户认可和赞誉。
内连接的使用 根据表中共同的列进行匹配,特别是存在主外键关系。
一般用的比较多
外连接 分为 左外连接,右外连接,完整连接
交叉连接返回的记录是两张表相乘的记录数
内连接主要一主表的信息为主,如果没有数据就不显示
我们来看实例:
先建两张表:
- create table student
- (
- id int primary key identity(1,1),
- name varchar(50)
- )
- create table grade(
- id int primary key identity(1,1),
- score money
- )
- alter table grade add sid int
- select * from grade
- alter table grade add constraint fk_sid foreign key(sid) references student(id)
- insert into student values('哈哈')
- insert into student values('喜喜')
- insert into student values('呵呵')
- insert into student values('郁闷')
- insert into student values('小强')
- insert into student values('小马')
- insert into grade values(90,1)
- insert into grade values(80,2)
- insert into grade values(70,null)
- select * from student
- select * from grade
内连接查询方式有两种:
- 1.select s.*,g.* from student s ,grade g where s.id=g.sid;
- 2.select s.*, g.* from student s inner join grade g on s.id=g.sid;
我们看到 我们主表没有主表没有匹配信息的时候 其他的记录没有显示
下面我们来看外连接:主要以从表信息为主 从表没有主表记录则显示为null
- select s.*,g.* from student s left join grade g on s.id=g.sid
- select s.*,g.* from student s right join grade g on s.id=g.sid
还可以是
- select s.*,g.* from student s left outer join grade g on s.id=g.sid
- select s.*,g.* from student s right outer join grade g on s.id=g.sid
看他是左还是右
下面来看看完整连接:将两表的左和右基础数据全部查询出来 当一个表没有另一个表的记录的时候则为null。反之右表也是一样
- select s.* ,g.* from student s full join grade g on s.id=g.sid
- select s.* ,g.* from student s full outer join grade g on s.id=g.sid
交叉连接查询:先返回左表所有行,左表行在与右表行一一组合,等于两个表相乘
- select s.*,g.* from student s cross join grade g
【编辑推荐】
带您了解SQL Server标识列
SQL SELECT语句的使用
使用SQL Delete命令删除记录
SQL Server创建表和删除表
SQL Server存储过程的单步调试
新闻名称:带您深入了解SQL连接查询
分享地址:http://www.csdahua.cn/qtweb/news4/270954.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网