更新时间:2025-09-05 GMT+08:00

SELECT

SELECT

  • 语法格式
    1
    2
    3
    4
    5
    6
    SELECT [ ALL | DISTINCT ]
      { * | projectItem [, projectItem ]* }
      FROM tableExpression
      [ WHERE booleanExpression ]
      [ GROUP BY { groupItem [, groupItem ]* } ]
      [ HAVING booleanExpression ]
    
  • 语法说明

    SELECT语句用于从表中选取数据。

    ALL表示返回所有结果。

    DISTINCT表示返回不重复结果。

  • 注意事项
    • 所查询的表必须是已经存在的表,否则会出错。
    • WHERE关键字指定查询的过滤条件,过滤条件中支持算术运算符,关系运算符,逻辑运算符。
    • GROUP BY指定分组的字段,可以单字段分组,也可以多字段分组。
  • 示例

    找出数量超过3的订单。

    1
    SELECT  * FROM Orders WHERE units > 3; 
    

    查询一组常量数据。

    1
    SELECT 'Lily', 'male', 'student', 17;
    

DISTINCT语句

  • 功能描述

    在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。DISTINCT关键词用于返回唯一不同的值。

  • 语法格式
    1
    2
    3
    4
    5
    6
    SELECT [ ALL | DISTINCT ]
      { * | projectItem [, projectItem ]* }
      FROM tableExpression
      [ WHERE booleanExpression ]
      [ GROUP BY { groupItem [, groupItem ]* } ]
      [ HAVING booleanExpression ]
    
  • 示例

    查询所有资产类型,根据type去重:

    SELECT DISTINCT type FROM security_resource;

WHERE过滤子句

  • 语法格式
    1
    2
    3
    SELECT   { * | projectItem [, projectItem ]* }
      FROM tableExpression
      [ WHERE booleanExpression ]
    
  • 语法说明

    利用WHERE子句过滤查询结果。

  • 注意事项
    • 所查询的表必须是已经存在的,否则会出错。
    • WHERE条件过滤,将不满足条件的记录过滤掉,返回满足要求的记录。
  • 运算符

    操作符

    说明

    =

    查询某字段值等于某数值的日志。

    <>

    查询某字段值不等于某数值的日志。

    >

    查询某字段值大于某数值的日志。

    <

    查询某字段值小于某数值的日志。

    >=

    查询某字段值大于或等于某数值的日志。

    <=

    查询某字段值小于或等于某数值的日志。

    IN (‘value1’,’value2’)

    查询某字段值是value1或value2的日志。

    BETWEEN value1 and value2

    查询某字段值处于value1和value2范围内的日志。

    LIKE

    模糊查询某字段值的关键字,如like ’%one%’,%是统配符可以代替任意字符。

    IS NULL

    查询某字段值为NULL的日志。

    IS NOT NULL

    查询某字段值为NOT NULL的日志。

  • 示例

    找出数量超过3并且小于10的订单。

    1
    2
    SELECT  * FROM Orders
      WHERE units > 3 and units < 10; 
    

IN运算符

  • 语法格式
    1
    2
    3
    SELECT [ ALL | DISTINCT ]   { * | projectItem [, projectItem ]* }
      FROM tableExpression
      WHERE column_name IN (value (, value)* ) | query
    
  • 语法说明

    IN操作符允许在where子句中规定多个值。若表达式在给定的表子查询中存在,则返回 true 。

  • 注意事项

    子查询表必须由单个列构成,且该列的数据类型需与表达式保持一致。

  • 示例

    输出Orders中NewProducts中product的user和amount信息。

    1
    2
    3
    4
    5
    SELECT user, amount
    FROM Orders
    WHERE product IN (
        SELECT product FROM NewProducts
    );