SQL – WHERE 语句

SQL WHERE 子句

WHERE关键字用于在结果集中获取过滤后的数据.

  • 它用于根据特定标准获取数据。
  • WHERE关键字也可用于通过匹配模式来过滤数据。

基础语法: SELECT column1,column2 FROM table_name WHERE column_name operator value;

column1 , column2: 表中的字段
table_name: 表的名称
column_name: 用于过滤数据的字段名
operator: 要考虑过滤的操作
value: 在结果中获得相关数据的确切值或模式

可与where子句一起使用的运算符列表:

运算符 描述
>= 大于或等于
\<= 小于或等于
= 等于
\<> 不等于
BETWEEN 在一个包含范围内
LIKE 搜索模式
IN 为列指定多个可能值的步骤

SQL WHERE 子句

查询

  • 获取年龄等于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 运算符

它用于获取给定范围内包含两个值的过滤数据。 Basic 语法: SELECT column1,column2 FROM table_name WHERE column_name BETWEEN value1 AND value2;

BETWEEN: 运算符名称

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子句中搜索特定模式来获取过滤后的数据。 Basic 语法: SELECT column1,column2 FROM table_name WHERE column_name LIKE pattern;

LIKE: 运算符名称

pattern: 从模式中提取精确值以获取结果集中的相关数据。 注意 : pattern中的字符区分大小写。

查询

  • 获取姓名以字母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
  • 获取姓名包含模式 “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 运算符

它用于获取与由 ‘=’ 运算符获取相同的过滤数据,只是不同之处在于,在这里我们可以指定可以获取结果集的多个值。 Basic 语法: SELECT column1,column2 FROM table_name WHERE column_name IN (value1,value2,..);

IN: 运算符名称

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程