WHERE 关键字用于获取结果集中的过滤数据。
- 它用于根据特定标准获取数据。
- WHERE 关键字还可用于通过匹配模式来过滤数据。
基本语法:
SELECT column1,column2 FROM table_name WHERE column_name运算符值;
column1 , column2: fields int the table
table_name: name of table
column_name: name of field used for filtering the data
operator: operation to be considered for filtering
value: exact value or pattern to get related data in result
可与 where 子句一起使用的运算符列表:
operator | description |
> | Greater Than |
>= | Greater than or Equal to |
< | Less Than |
<= | Less than or Equal to |
= | Equal to |
<> | Not Equal to |
BETWEEN | In an inclusive Range |
LIKE | Search for a pattern |
IN | To specify multiple possible values for a column |
查询
- 获取年龄等于 20 岁的学生的记录
SELECT * FROM Student WHERE Age=20;
输出:
ROLL_NO NAME ADDRESS PHONE Age 3 SUJIT ROHTAK XXXXXXXXXX 20 3 SUJIT ROHTAK XXXXXXXXXX 20
- 获取 ROLL_NO 大于 3 的学生的姓名和地址
SELECT ROLL_NO,NAME,ADDRESS FROM Student WHERE ROLL_NO > 3;
输出:
ROLL_NO NAME ADDRESS 4 SURESH Delhi
BETWEEN运算符
它用于获取给定范围内的过滤数据,包括两个值。
基本语法:
SELECT column1,column2 FROM table_name WHERE column_name BETWEEN value1 AND value2;
BETWEEN: operator name
value1 AND value2:从 value1 到 value2 的精确值以获取相关数据
结果集。
查询
- 获取 ROLL_NO 介于 1 和 3(含)之间的学生的记录
SELECT * FROM Student WHERE ROLL_NO BETWEEN 1 AND 3;
输出:
ROLL_NO NAME ADDRESS PHONE Age 1 Ram Delhi XXXXXXXXXX 18 2 RAMESH GURGAON XXXXXXXXXX 18 3 SUJIT ROHTAK XXXXXXXXXX 20 3 SUJIT ROHTAK XXXXXXXXXX 20 2 RAMESH GURGAON XXXXXXXXXX 18
- 获取年龄在 20 到 30 岁(含)之间的学生的姓名、地址
SELECT NAME,ADDRESS FROM Student WHERE Age BETWEEN 20 AND 30;
输出:
NAME ADDRESS SUJIT Rohtak SUJIT Rohtak
LIKE运算符
它用于通过在 where 子句中搜索特定模式来获取过滤数据。
基本语法:
SELECT column1,column2 FROM table_name WHERE column_name LIKE 模式;
LIKE: operator name
模式:从模式中提取的精确值以获取相关数据
结果集。
注意:模式中的字符区分大小写。
查询
- 获取 NAME 以字母 S 开头的学生的记录。
SELECT * FROM Student WHERE NAME LIKE 'S%';
‘%’(通配符)表示后面的字符可以是任意长度和
值。更多关于通配符的内容将在后面的系列中讨论。输出:
ROLL_NO NAME ADDRESS PHONE Age 3 SUJIT ROHTAK XXXXXXXXXX 20 4 SURESH Delhi XXXXXXXXXX 18 3 SUJIT ROHTAK XXXXXXXXXX 20
- 获取 NAME 包含模式“AM”的学生的记录。
SELECT * FROM Student WHERE NAME LIKE '%AM%';
输出:
ROLL_NO NAME ADDRESS PHONE Age 1 Ram Delhi XXXXXXXXXX 18 2 RAMESH GURGAON XXXXXXXXXX 18 2 RAMESH GURGAON XXXXXXXXXX 18
IN运算符
它用于获取与通过 ‘=’运算符获取的过滤数据相同的数据,不同之处在于我们可以指定多个值,我们可以获得结果集。
基本语法:
SELECT column1,column2 FROM table_name WHERE column_name IN (value1,value2,..);
IN: operator name
value1,value2,..:匹配给定值的精确值并获取结果集中的相关数据。
查询
- 获取年龄为 18 或 20 岁的学生的姓名和地址。
SELECT NAME,ADDRESS FROM Student WHERE Age IN (18,20);
输出:
NAME ADDRESS Ram Delhi RAMESH GURGAON SUJIT ROHTAK SURESH Delhi SUJIT ROHTAK RAMESH GURGAON - 获取 ROLL_NO 为 1 或 4 的学生记录。
SELECT * FROM Student WHERE ROLL_NO IN (1,4);
输出:
ROLL_NO NAME ADDRESS PHONE Age 1 Ram Delhi XXXXXXXXXX 18 4 SURESH Delhi XXXXXXXXXX 18