读书笔记--SQL必知必会04--过滤数据
2023-09-14 09:00:40 时间
4.1 使用WHERE子句
在SELECT语句中,数据根据WHERE子句中指定搜索条件进行过滤。
搜索条件(search criteria)也称为(filter condition)。
WHERE子句在表名之后使用。同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后。
MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price=3.49;
+---------------------+------------+
| prod_name | prod_price |
+---------------------+------------+
| Fish bean bag toy | 3.49 |
| Bird bean bag toy | 3.49 |
| Rabbit bean bag toy | 3.49 |
+---------------------+------------+
3 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price = 3.49 ORDER BY prod_name;
+---------------------+------------+
| prod_name | prod_price |
+---------------------+------------+
| Bird bean bag toy | 3.49 |
| Fish bean bag toy | 3.49 |
| Rabbit bean bag toy | 3.49 |
+---------------------+------------+
3 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
4.2 WHERE子句操作符
等于: =
不等于:!= 或者 <>。 并非所有DBMS都同时支持这两种不等于操作符。
大于:>
小于:<
大于等于:>=
小于等于:<=
不大于:!>
不小于:!<
在指定的两个值之间:BETWEEN
为NULL值:IS NULL
4.2.1 检查单个值
MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price < 10;
+---------------------+------------+
| prod_name | prod_price |
+---------------------+------------+
| Fish bean bag toy | 3.49 |
| Bird bean bag toy | 3.49 |
| Rabbit bean bag toy | 3.49 |
| 8 inch teddy bear | 5.99 |
| 12 inch teddy bear | 8.99 |
| Raggedy Ann | 4.99 |
| King doll | 9.49 |
| Queen doll | 9.49 |
+---------------------+------------+
8 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
4.2.2 不匹配检查
如果将值与字符串类型的列进行比较,就需要使用单引号来限定字符串。
用来与数值列进行比较的值不用引号。
MariaDB [sqlbzbh]> SElECT vend_id, prod_name FROM Products WHERE vend_id <> 'DLL01';
+---------+--------------------+
| vend_id | prod_name |
+---------+--------------------+
| BRS01 | 8 inch teddy bear |
| BRS01 | 12 inch teddy bear |
| BRS01 | 18 inch teddy bear |
| FNG01 | King doll |
| FNG01 | Queen doll |
+---------+--------------------+
5 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
4.2.3 范围值检查
使用BETWEEN操作符检查某个范围的值时,必须指定范围的开始值和结束值,而且这两个值必须用AND关键字分隔。
MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;
+--------------------+------------+
| prod_name | prod_price |
+--------------------+------------+
| 8 inch teddy bear | 5.99 |
| 12 inch teddy bear | 8.99 |
| King doll | 9.49 |
| Queen doll | 9.49 |
+--------------------+------------+
4 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
4.2.4 空值检查
在一个列不包含值时,称为包含空值NULL,表示无值(no value)。
注意:在进行匹配过滤和非匹配过滤时,不会返回含NULL值的行。
MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE prod_price IS NULL;
Empty set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT cust_name FROM Customers WHERE cust_email IS NULL;
+---------------+
| cust_name |
+---------------+
| Kids Place |
| The Toy Store |
+---------------+
2 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
MariaDB [sqlbzbh]> SELECT cust_email FROM Customers;
+-----------------------+
| cust_email |
+-----------------------+
| sales@villagetoys.com |
| NULL |
| jjones@fun4all.com |
| dstephens@fun4all.com |
| NULL |
+-----------------------+
5 rows in set (0.00 sec)
MariaDB [sqlbzbh]> SELECT cust_email FROM Customers WHERE cust_email != 'sales@villagetoys.com';
+-----------------------+
| cust_email |
+-----------------------+
| jjones@fun4all.com |
| dstephens@fun4all.com |
+-----------------------+
2 rows in set (0.00 sec)
MariaDB [sqlbzbh]>
相关文章
- 大数据ClickHouse(十五):ClickHouse SQL语法之DDL 操作讲解
- Hsql 查询_sql数据查询
- Hive学习之路 (十二)Hive SQL练习之影评案例详解大数据
- Spark-Sql源码解析之二 Sqlparser:sql –> unresolved logical plan详解大数据
- 一键实现:SQL数据转换到Oracle的神器(sql转oracle工具)
- 追踪Oracle数据库的历史SQL(oracle历史sql)
- 优化深入浅出Oracle 高效SQL优化(oracle高效sql)
- MySQL日志跟踪:管理SQL查询性能(mysql跟踪sql语句)
- 从SQL格式数据快速导入MSSQL数据库(sql格式导入mssql)
- SQL Server网关:实现数据存取更加安全方便(sqlserver网关)
- 数据库访问框架SQL Server第三方数据库访问框架——打通你的数据桥梁(sqlserver第三方)
- 数据统计SQL Server 当月数据统计分析(sqlserver 当月)
- SQL Server与Visual Studio配合使用,打造完美数据库解决方案(sqlserver与vs)
- 精通Oracle元数据之SQL编程(oracle元数据sql)
- 在SQL中使用Redis实现数据存储(sql 操作redis)
- 语句妙用Oracle将SQL语句拼接妙趣横生(oracle中拼接sql)
- 探索Oracle中SQL查询差集的玄机(oracle中sql差集)
- 优化Oracle SQL调度的绝佳方法(oracle sql调度)
- 利用Oracle SQL替换高效解决数据问题(oracle sql替换)
- 基于Oracle SQL技术的数据延时处理(oracle sql延时)
- 者Oracle SQL初学者突破入门,打好基础(oracle sql初学)
- 跨服务器查询导入数据的sql语句
- Sql学习第一天——SQL练习题(建表/sql语句)