zoukankan      html  css  js  c++  java
  • 数据库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填补。


  • 相关阅读:
    Java FileInputStream与FileReader的区别
    java 保存和读取本地json文件
    java写文件时往末尾追加文件(而不是覆盖原文件),的两种方法总结
    Java魔法堂:注解用法详解——@SuppressWarnings
    使用Restlet Client发送各种Get和Post请求
    postman VS restlet client基本使用
    Java获取请求客户端的真实IP地址
    dom4j解析xml字符串实例
    C++ Boost库简介(一些自己的感受)
    打仗其实最讲成本核算,大炮轰的都是黄金,日军在中国就是不断赔本
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7025902.html
Copyright © 2011-2022 走看看