频道栏目
首页 > 资讯 > MySQL > 正文

mysql---过滤数据

17-06-12        来源:[db:作者]  
收藏   我要投稿

mysql---过滤数据,通过WHERE指定搜索条件。

1. WHERE语句

SELECT prod_name, prod_price
FROM products
WHERE prod_price=2.50;

只返回prod_price值为2.50的行

WHERE如果和ORDER BY一同使用需要让ORDER BY置于WHERE之后

2. WHERE操作符

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间

2.1 检查单个值

SELECT prod_name, prod_price
FROM products
WHERE prod_name = 'fuses'
SELECT prod_name, prod_price
FROM products
WHERE prod_price < 10;

何时使用引号 单引号用来限定字符串,如果将值与串类型的列进行比较,需要使用引号。
用来与数值列进行比较的值不需要引号。

2.2 不匹配检查

SELECT vend_id, prod_name
FROM products
WHERE vend_id <> 1001;

2.3 范围检查

SELECT prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;

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

2.4 关于NULL

一个NULL代表一个缺失未知的值。前面提到,NULL并不代表0,也不代表一个包含一个或多个空格的字符串。
- 零具有多种含义。可以表示账户余额状态,产品数量等。
- 对于SQL而言,一个空格就是一个有效字符,一个三个空格组成的字符串与三个字母组成的字符串一样合法。
- 一个零长度字符串,即两个连续的单引号(”),对于SQL语言也是可以接受的值,并且在特定场景下具有意义。例如,对于员工表,另长度字符串就可以表征员工没有中间名。

NULL的值

缺失值

通常由认为失误造成,例如忘记输入

未知值

出现未知值的原因:
- 字段所需要的特定值尚未明确
- 某些信息的确是未知的
- 某字段所有的值都不适用与某特定的记录,例如头发颜色,对于没有头发的人来说,可以使用NULL来代表,但使用N/A会更合适

表中是否出现NULL取决于使用数据的方式

NULL带来的问题

NULL会影响数据运算,含有NULL的数学运算,最终的结果都是NULL。

空值检查

在创建表的过程中,可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。

NULL 无值(no value) 它与字段包含0,空字符串或仅仅包含空格不同。

SELECT语句使用IS NULL检查具有NULL值的列

SELECT prod_name
FROM products
WHERE prod_price IS NULL;

NULL与不匹配 在通过过滤选择出不具有特定值的行时,可能希望返回具有NULL值的行。但是,这样不可以,因为未知具有特殊的含义,数据库不知道他们是否匹配,所以在匹配过滤或不匹配过滤时不返回他们。
因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行。

相关TAG标签
上一篇:Centos7安装MariaDB
下一篇:mysql---数据排序检索
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站