数据库SQL Server2012笔记——多表查询子查询分页查询用查询结果创建新表和外连接

Posted 谁能告诉我是对还是错

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库SQL Server2012笔记——多表查询子查询分页查询用查询结果创建新表和外连接相关的知识,希望对你有一定的参考价值。

1、多表查询

1)笛卡尔集:
  • select  *  from  表名1,表名2
  • select  *  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填补。




以上是关于数据库SQL Server2012笔记——多表查询子查询分页查询用查询结果创建新表和外连接的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server学习笔记——多表查询

SQL Server 2012 - 多表连接查询

数据库原理与应用(SQL Server)笔记 第三章 连接查询

Sql Server数据库之多表查询

MySQL-04-笔记

知了堂学习笔记SQL查询基础语句(单表查询多表查询)