zoukankan      html  css  js  c++  java
  • SQL语句 基本查询

    一、语法结构

    select select_list
    [ into new_table ]
    from table_source
    [ where search_condition ]
    [ group by broup_by_expression ]
    [ having search_condition ]
    [order by order_by_expression [ asc | desc ] 

    select查询语句中的主要参数说明如下

    select_list:查询的列或者表达式的列表,用逗号进行分隔。
    new_table:新的表名。
    table_source:要查询的表。如果是多个表,用逗号进行分隔。
    search_condition:查询条件。
    group_by_expression:分组表达式。
    order_by_expression:排序表达式。
    asc:升序排序。
    desc:降序排序。

    select查询语句字句的功能列表

    子句 主要功能 是否必需
    select 指定由查询返回的列
    from 指定要查询的表
    into 创建新表并将结果行插入新表中
    where 查询条件
    group by 对查询结果进行分组
    order by 对查询结果进行排序
    having 对查询结果进行筛选

     

    二、选择列表

      选择列表用于定义select语句的结果集中的列

      1、*  查询所有列:

      select * from person  

      *就是结果集合,表示查询person表中的所有列。

      2、distinct  去除重复数据:

       distinct是对所有列作用,也就是说,所有列都相同才算重复数据。

      select distinct name from person

      3、包含函数的查询:

      例如:

      select count(*) from person

    三、from子句

    from子句实际上就是用逗号分隔的表名、视图名和join字句的列表。使用from子句可以实现如下功能:

    1、列出选择列表和where子句引用的列所在的表和视图。可以使用as子句为表和视图指定别名。

    2、联接类型。这些类型由on子句中指定的联接条件限定。

    分配表名时可以使用如下形式

      •  table_name  as  table alias
      •  table_name  as  table_alias

     需要特别说明的是,如果为表分配了别名,那么T-SQL语句中对该表的所有显示引用都必须使用别名,而不能使用别名。

    四、where子句

     where子句可以筛选结果集的源表中的行。带有where子句的select语句的结构如下:

       select <字段列表>
       from <表名>
       where<条件表达式>

     其中,条件表达式是由各种字段、常量、表达式、关系运算符、逻辑运算符和特殊的运算符组合起来的。

     where子句中的运算符:

     1、关系运算符

      关系运算符用来表示两个表达式之间的比较关系。

    关系运算符 含义
    = 等于
    < 小于
    > 大于
    !=(或<>) 不等于
    >= 大于等于
    <= 小于等于
    !> 不大于
    !< 不小于

     

       2、逻辑运算符

        逻辑运算符用于表示两个表达式之间的逻辑关系:

    逻辑运算符 含义
    not 非(否)
    and
    or

      3、特殊运算符

    特殊运算符 含义
    % 通配符,通常与like配合使用
    _ 通配符,代表严格的一个字符。where name like '_xxx'将查找以xxx结尾的所有4个字母的名字(sxxx,dxxx等)
    [] 指定范围([a-f])或集合([abcdefg])中的任何单个字符。where name like '[a-f]xxxx',将超找以abcdef开头,xxxx结尾的字符。
    [^] 不属于指定范围的([a-f])或集合([abcdefg])的任何单个字符。
    between 定义一个取值范围区间,使用and分开。between开始值与and结束值。
    like 字符串匹配
    in 一个字段的值是否在一组定义的值之中
    exists 子查询有结果集返回(则子查询返回True)
    not exists 子查询没有结果集返回(则子查询返回True)
    is null 字段是否为null
    is not null 字段是否不为null

     在WHERE子句中使用EXISTS(如果使用得当的话)可以大大提高性能。因为使用EXISTS时,只要找到和条件匹配的记录,SQL Server就立即停止。假设有一个包含一百万条记录的表,并且在第三个记录中找到了匹配的记录,那么使用EXISTS选项将避免读取999997条记录!NOT EXISTS以同样的方式工作。

    五、group by子句

      详见地址:http://www.cnblogs.com/kissdodog/p/3365789.html

    六、order by子句

       order by子句用于指定结果集的排序

      1、语法结构:

        select <字段名列表>
        from 数据库表名
        [where <条件表达式>]
        [order by[<字段名或者表达式> [asc|desc],...]]

       order by子句可以搭配where子句,也可以和select、fromD搭配使用,而不需要where子句。

      order by子句的语法如下:

        [ order by { order_by_expression [ asc | desc] } [ ,...n ] ]

    其中主要的参数说明如下:

      order_by_espression:指定要排序的列、列的别名、表达式或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。

      asc:按递增顺序对指定列中的值进行排序。

      desc:按递减顺序对指定列中的值进行排序。

    七、having筛选查询

      详见地址:http://www.cnblogs.com/kissdodog/p/3365789.html

    八、into查询

      into子句将查询结果生成新表,新表的结构由查询字段列表组成。也可以将查询的结果送入tempdb数据库的临时表中,这样关闭服务器之后临时表会自动删除。

      into查询的语法结构:

      SELECT <字段名列表>
      [ into 新的数据表名 ]
      FROM 数据库表名
      [ where <条件表达式> ]
  • 相关阅读:
    okHttp源码解析------待续
    AS: Unsupported method: AndroidProject.getPluginGeneration().
    vue项目根据不同环境调用不同请求地址
    文字跑马灯(无缝衔接) CSS+JS完美实现
    data 和 computed 的区别
    ES6解构赋值
    flex布局
    token验证
    vue组件传值
    vue钩子函数
  • 原文地址:https://www.cnblogs.com/kissdodog/p/2944990.html
Copyright © 2011-2022 走看看