首页 > 数据库 > SQL Server >

数据库SQLServer2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

2015-08-25

1、多表查询 1)笛卡尔集: select * from 表名1,表名2select * from 表名1,表名2 where 表名1 字段名=表名2 字段名 注: 若有两张表有相同名字的字段,则使用时需带表名(别名

1、多表查询 1)笛卡尔集: select * from 表名1,表名2select * from 表名1,表名2 where 表名1.字段名=表名2.字段名 注: 若有两张表有相同名字的字段,则使用时需带表名(别名)。order by 置于where 条件之后。 2)自连接:同一张表的连接查询,将一张表视为两张表或多张表。 eg:显示公司每个员工名字和他的上级的名字。将emp表看做两张表worker和boss select worker.ename 雇员,boss.ename 老板 from emp worker,emp boss where worker.mgr=boss.empno
2、子查询(嵌套查询):嵌入在其它sql语句中的select语句。 1)单行子查询:只返回一行数据的子查询语句。 2)多行子查询:返回多行数据的子查询。 3)在from子句中使用子查询。 说明: 当在from子句中使用子查询时,该子查询会被作为一个视图(临时表)来对待,因此也叫做内嵌视图。当在from子句中使用查询时,必须给子查询指定别名。
3、分页查询 1)top n:前n条记录。 select top 5 * from emp order by hiredate显示第5个到第9个人的信息(按sal高低)
select top 5 from emp where empno not in (select top 4 empno from emp order by sal desc) order by sal desc identity(1,1):表示字段自增长,从“1”开始增长,每次加“1”。
create table test (testId int primary key identity(1,1))
4、用查询结果创建新表
select * into 另一个表名 from 表名
删除表中的重复记录


select distinct * into #temo(新表) from 表名1
delete from 表名1
insert into 表名1 select * from #temp
drop table #temp
5、外连接: 左外连接:左边的表的记录全部显示,如果没有匹配的记录,用Null填补。右外连接:右边的表的记录全部显示,如果没有匹配的记录,用Null填补。
相关文章
最新文章
热点推荐