MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
一、组合WHERE子句
1.AND操作符
下面的语句检索由供应商1003制造且价格小于等于10美元的所有产品的名称和价格。
SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price<=10;
此语句的输出如下图所示:
2.OR操作符
OR操作符与AND操作符不同,它指示MySQL检索匹配任一条件的行。
SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003;
此语句的输出如下图所示:
3.计算次序
WHERE可包含任意数目的OR操作符与AND操作符。允许两者结合以进行复杂和高级的过滤。以下SQL语句选择由供应商1002或者1003制造的且价格都在10美元(含)以上的任何产品。
SELECT prod_name,prod_price FROM products WHERE (vend_id=1002 OR vend_id=1003) AND prod_price>=10;
此语句的输出如下图所示:
二、IN操作符(与OR操作符功能相同)
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。下面的语句检索供应商1002和1003制造的所有产品。
SELECT vend_id,prod_name,prod_price FROM products WHERE vend_id IN (1002,1003) ORDER BY prod_name;
此语句的输出如下图所示:
IN操作符优点:
(1)在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
(2)在使用IN时,计算的次序更容易管理。
(3)IN操作比OR操作符清单执行快。
(4)IN的最大优点是可以包含其他SELECT语句,使得能够更动态的建立WHERE子句。
三、NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。列出除了1002和1003之外的所有供应商制造的产品,可编写如下的代码:
SELECT vend_id,prod_name,prod_price FROM products WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;
此语句的输出如下图所示: