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
运算符之间的
它用于获取给定范围(包括两个值)中的过滤数据。
基本语法:
SELECT column1,column2 FROM table_name WHERE column_name BETWEEN value1 AND value2;
BETWEEN: operator name
值1和值2:从值1到值2的确切值,以获取相关数据
结果集。
查询
- 提取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岁(含20岁)之间的学生的NAME,ADDRESS
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