二、《SQL必知必会》内容复习和提炼

69 阅读2分钟

1.了解SQL

  数据库:文件柜。
  表:在文件柜中创建文件夹,储放某种特定类型的数据
  列
  行/数据库记录
  主键:其值能唯一标识表中每一行
  表中任何列都可以作为主键,只要满足以下特点:两一定两不允许

  • 任意两行一定不具有相同主键;
  • 每一行一定具有一个主键值;
  • 主键值不允许修改或更新;
  • 主键值不允许重用(如果某行从表中被删除,它的主键值不可被赋给新行)。
     SQL(发音sequel或S-Q-L)是Structured Querty Language(结构化查询语句)的缩写。

2.检索数据

  2.1 SELECT语句

  语法规范:一般关键字大写,对列名、表名小写。

  2.2 检索单个列

  2.3 检索多个列

  2.4 检索所有列

  2.5 检索不同值

SELECT DISTINCT prod_id
FROM  products

  2.6 限制结果

  LIMIT 3 OFFSET 5     --注释:第一个被检索的行是0行。故该语句会从第6行开始检索返回不超过3行的数据。

   2.7 使用注释

  --之后的,用来描述CREATE TABLE语句中的列很不错

  /*   之间的,一般给代码注释      */

3.排序检索数据库

  3.1&3.2 按单个列或多个列排序数据库

  ORDER BY prod_name; /* 该语句应为SELECT语句中最后一个子句。查询多多个列时加上逗号与相应列即可 */

  3.3 按列位置排序

SELECT prod_id, prod_price,prod_name
FROM Products
order by 2,3;

  3.4 指定排序方向

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;       
/*DESC关键词只应用到直接位于其前面的列。故要按多个排序且价格降序的话 
ORDER BY prod_price DESC, prod_name;*/

4.过滤数据

  4.1 使用WHERE子句

  WHERE子句在表明(FROM子句)之后给出

  4.2 WHERE子句操作符

表4-1WHERE子句操作符

  PS:如果将值与字符串类数据比较时,必须加上限定引号。与数值比较时不用。

    例如:WHERE ven_id != 'DLL01';

       WHERE prod_price <=10;

     范围检查用法:

    WHERE prod_price BETWEEN 5 AND 10;

 5.高级数据过滤

  5.1 组合WHERE子句

  关于AND 和OR的使用。

  优先级:圆括号>AND>OR

  PS:任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。使用圆括号没什么坏处,它能消除歧义。

  5.2 IN操作符

  功能与OR类似,但有多组时更直观清晰、性能好执行的快、最大优点可以包含其他SELEST语句(见11章)

  用法:WHERE vend_id IN('DLL01','BRS01')

  5.3 NOT操作字符

  功能与!=和<>类似,简单的WHERE子句中没有优势,复杂的子句中可与IN联合使用。

  用法:WHERE NOT vend_id = 'DLL01'

6.用通配符进行过滤

  6.1 LIKE操作符

  %通配符:表示任何字符出现任意次数

****_ 通配符:表示任何字符出现1次 (只匹配单个字符串)

  [] 通配符:必须匹配指定位置的一个字符。例如找出所有以J或M开头的联系人:LIKE ‘[JM]%’  

例子:

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '_ inch teddy bear';

 

  • 联结、