SQL 必知必会(一)

第 1 课 了解 SQL

  • 数据库(database)

    • 保存有组织的数据容器(通常是一个文件或一组文件)
  • DBMS: database manager system, 数据管理系统

  • 表(table): 某种特定类型的结构化清单。

  • 模式(schema): 关于数据库和表的布局及特性的信息。

  • 列(column): 表中的一个字段。所有表都是由一个或多个列组成。

  • 数据类型:所允许的数据类型。 每个表都有相应的数据类型,它限制(或允许)该列中存储的数据。

  • 行(row): 表中的一个记录。

  • 主键(primary key): 一列或一组列, 其值能够唯一标识表中每一行。

    • 主键列值不允许修改或更新。
    • 主键值不能重用。
    • 每一行都必须有一个主键。
  • SQL: 结构化查询语言(Structured Query Language)

第 2 课 检索数据

  • SELECT语句从表中检索一个或多个数据列。
  • 多条sql语句以分号(;)分隔,sql语句不区分大小写,sql语句忽略所有空格。
  • 检索多个列,列用,号隔开。检索所有列,用通配符 *
  • 检索不同的值用 DISTINCT
    • 警告:不能部分使用 DISTINCT
      DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。
  • 警告:第 0 行
    第一个被检索的行是第 0 行,而不是第 1 行。因此,LIMIT 1 OFFSET 1会检索第 2 行,而不是第 1 行。

第 3 课 排序检索数据

  • 警告:在多个列上降序排序
    如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。
    ORDER BY prod_price DESC, prod_name;
  • order by子句必须是SELECT语句中的最后一条子句。

第 4 课 过滤数据

  • where 子句操作符
    = != < > <= >= between is null

  • 在使用BETWEEN时,必须指定两个值 —— 所需范围的低端值和高端值。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值

  • 操作符( operator )

    • 用来联结或改变WHERE子句中的子句的关键字,也称为 逻辑操作符( logical operator )。
  • AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。

  • OR: WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。

  • IN: WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。

  • NOT: WHERE子句中用来否定其后条件的关键字。

第 6 课 用通配符进行过滤

通配符( wildcard )
用来匹配值的一部分的特殊字符。

搜索模式( search pattern )
由字面值、通配符或两者组合构成的搜索条件。

谓词( predicate )
操作符何时不是操作符?答案是,它作为谓词时。从技术上说,LIKE是谓词而不是操作符。虽然最终的结果是相同的,但应该对此术语有所了解,以免在 SQL 文献或手册中遇到此术语时不知所云。

  • 最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。(0-无穷次)
  • 警告:请注意 NULL
    通配符%看起来像是可以匹配任何东西,但有个例外,这就是NULL。子句WHERE prod_name LIKE '%'不会匹配产品名称为NULL的行。
  • 另一个有用的通配符是下划线(_)。下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。
  • 方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。否定集 [^]

第 7 课 创建计算字段

你可能感兴趣的:(SQL 必知必会(一))