要从表中选择特定行,在 SELECT 语句之后使用 WHERE 子句指定要选择的行必须满足的条件。从表中选择行的标准是搜索条件。
搜索条件由一个或多个谓词组成。谓词指定关于某一行是真或是假(或未知)的条件。可使用下列基本谓词在 WHERE 子句中指定条件:
在构造搜索条件时,要注意只对数字数据类型执行算术运算,并只在相容数据类型之间进行比较。例如,不能将字符串与数字进行比较。
如果正在基于字符值来选择行,则该值必须用单引号括起来(例如,WHERE JOB = 'Clerk'),并且输入的每个字符值必须与数据库中的完全一样。如果数据值在数据库中是小写的,而您用大写形式来输入它,则将不选择行。如果正在基于数字值来选择行,则该值不得用引号括起来(例如,WHERE DEPT = 20)。
下列示例只从 STAFF 表中选择部门 20 的行:
SELECT DEPT, NAME, JOB
FROM STAFF
WHERE DEPT = 20
此语句产生下列结果:
下一示例使用 AND 来指定多个条件。可以指定任意多个条件。该示例从 STAFF 表中选择部门 20 中的 clerk:
SELECT DEPT, NAME, JOB
FROM STAFF
WHERE JOB = 'Clerk'
AND DEPT = 20
此语句产生下列结果:
未在其中输入值且不支持缺省值的列中出现空值。将值特别设置为空值的地方也可以出现空值。空值只能在定义为支持空值的列中出现。在表中定义和支持空值在创建表中讨论。
使用谓词 IS NULL 和 IS NOT NULL 来检查空值。
下列语句列出佣金未知的雇员:
SELECT ID, NAME
FROM STAFF
WHERE COMM IS NULL
此语句产生下列结果:
值零与空值不相同。下列语句选择表中佣金为零的每个人:
SELECT ID, NAME
FROM STAFF
WHERE COMM = 0
因为样本表中的 COMM 列中没有零值,所以返回的结果集为空。
下一个示例选择 STAFF 表中 YEARS 的值大于 9 的所有行:
SELECT NAME, SALARY, YEARS
FROM STAFF
WHERE YEARS > 9
此语句产生下列结果: