SQL—检索数据

  • 数据库(database):
    • 是一个以某种有组织的方式存储的数据集合。最简单的方法是将数据库想象为一个文件柜。

SELECT语句

使用select检索表数据

  • 检索单个列:(pro_name是列名,Products是表)
    - SELECT pro_name FROM Products;
  • 检索多个列
    - SELECT pro_id,pro_price,pro_name FROM Products;
  • 检索所有列:(* 是通配符)
    - SELECT * FROM Products;
  • 检索不同的值:(DISTINCT)
    - SELECT DISTINCT vendo_id FROM Products 注意不能部分使用DISTINCT。因为DISTINCT 作用于所有的列,不仅仅是跟在最后的那一列。比如:SELECT DISTINCT pro_id,pro_price,所有的列都会被检索出来。
  • 限制结果:(LIMIT)
    - SELECT pro_name FROM Products LIMIT 5 OFFSET 5 (注意:第1点、LIMIT 1 OFFSET 1会检索第2行,而不是第1行。第2点、LIMIT 4 OFFSET 3等价于LIMIT 3,4)
  • 使用注释:(--或#或/* /)
    - SELECT pro_name --这是一条注释 FROM Products (第一点:注释使用--(两个连字符)嵌在行内。--之后就是注释。 第二点:在一行的开始使用#。这一整行都将作为注释。第三点:注释从/
    开始,到/结束,/和*/之间的任何内容都是注释)



排序检索数据

排序数据(ORDER BY)

保证ORDER BY是SELECT语句中最后一条语句,如果不是,就会出现错误信息。

  • 按单个列排序:(pro_name是列名,Products是表)
    - SELECT pro_name FROM Products ORDER BY pro_name ;
  • 按多个列排序
    - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_name,pro_price;
  • 按列位置排序
    - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY 2,3;
  • 指定排序方向
    - SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_price DESC; // 降序排序 (注意:如果想在多个列进行降序排序,必须对每一列指定DESC关键字)



过滤数据

使用WHERE语句

数据库一般包含大量的数据,很少需要表中的所有行。通常只会根据特定的操作或报告的需要提取表中数据的子集。只检索所需数据需要的指定的搜索条件(search criteria),搜索条件也称为过滤条件(filter condition),在SELECT语句中,数据根据WHERE语句中指定的搜索条件进行过滤。WHERE语句在表名(FROM语句)之后给出。
- SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price = 3.67;

WHERE语句操作符

操作符 说明 操作符 说明
= 等于 > 大于
<> 不等于 >= 大于等于
!= 不等于 !> 不大于
< 小于 BETWEEN 在指定的两个值之间
<= 小于等于 IS NULL 为NULL值
!< 不小于 nil
  • 检查单个值
    • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7;
  • 不匹配检查
    • SELECT vend_id,pro_name FROM Products WHERE vend_id <> 'DLL02';
  • 范围值检查:(指定开始日期和结束日期之间的所以日期或者价格区间)
    • SELECT pro_price,pro_name FROM Products WHERE pro_price BETWEEN 5 AND 8;
  • 空值检查
    • SELECT cust_name FROM Customers WHERE cust_email IS NULL;



高级过滤数据

组合WHERE子句

主要有两种方式:即以AND子句或者OR子句的方式使用。区别在AND要满足多个条件,而OR在WHERE子句的第一个条件得到满足的情况下就不会计算第二个条件了(不管第二个条件是否满足,相应的行22都会被检索出来) 。如果WHERE子句中,有AND也有OR,优先2处理AND操作符。

  • AND操作符
    • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 AND pro_name = 'DLL02';
  • OR操作符
    • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02';
  • 求值顺序
    • SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02' AND pro_id = '3';

IN操作符

IN操作符用来指定条件范围,范围中的每个条件度可以匹配。IN取一组由逗号分隔、扩在圆括号中的合法值。

  • SELECT pro_price,pro_name FROM Products WHERE vend_id IN ('DLL02','BRS02');

NOT操作符

WHERE子句中的NOT也有且只有一个功能,那就是否定其后所跟的任何条件

  • SELECT pro_price,pro_name FROM Products WHERE NOT vend_id = 'DLL02' ORDER BY pro_name ;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL与MySQL简介 数据库基础 从SQL的角度来看,数据库就是一个以某种有组织的方式存储的数据集合。我们可以采...
    heming阅读 3,146评论 1 8
  • 于是又到了梧桐絮飘满校园的四月,又到了梧桐色相簿的季节,我们迎来了实习生招聘。 “范老湿从不写代码”,“范老湿从不...
    Lance_Van阅读 756评论 0 1
  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,654评论 0 33
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 515评论 0 0
  • 导读: 2017年09月29日,总局发布关于公开征求《国家食品药品监督管理总局关于修改部分规章的决定(征求意见稿)...
    百岁无忧亦阅读 422评论 0 0