暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【每日一练 002】SQL : where子句

原创 李美静 2020-06-16
2170

1 where子句语法

where子句是对select基本主干语句的扩充,用来在查询中过滤行。

语法:
select * | {[DISTINCT] column | expression [alias],…} from table
[where condition(s)];
where子句紧随FROM子句,where子句后可跟一个或多个条件表达式。

2 整体框架

image.png

3 where子句的内容

可以比较列的值,比较算术表达式的值或者函数的值。但是不能跟列的别名,满足where条件之后的值才会输出。

  • 列名:如果列的值是数值,可以直接写,如果列的值是字符或日期,需要加单引号。
    如:
    select ename,sal from emp where empno=7369;
    select ename,sal from emp where ename=‘SMITH’;
    SELECT last_name, job_id, department_id
    FROM employees
    WHERE last_name = ‘WHALEN’;
  • 比较运算表达式:
    可以使用>,<,=,>=,<=,<>,!=,between … and … ,in, like ,is null
    其中<>和!=都表示不等于
    between … and …表示区间等效于>= and <=
    in表示从列表中取值,等效于 or … or 语句。
    空值不能用等号或不等号来匹配。
    like模糊匹配,可以使用%匹配一个或多个字符,_匹配任意一个字符
    如:
    SELECT last_name FROM employees WHERE last_name BETWEEN ‘King’ AND ‘Smith’;
    SELECT employee_id, manager_id, department_id
    FROM employees
    WHERE last_name IN (‘Hartstein’, ‘Vargas’);
    找出2005年1月至12月入职的人员:此时日期格式为数据库默认的格式。
    SELECT last_name, hire_date
    FROM employees
    WHERE hire_date LIKE ‘%05’;
    列出没有奖金的人员信息
    select * from emp where comm is null;
  • 逻辑运算符:
    可以使用and ,or ,not
    如:
    查询工资大于等于1100并且工作是CLERK的员工信息
    select empno,ename,job,sal from emp
    where sal>=1100 and job=‘CLERK’;
  • 优先级规则:
    算数运算符>连接符>比较符>is [not] null,like,[not] in>[not] between>不等于>not>and>or
    小括号改变优先级
    如:
    查询工作是SALESMAN或者PRESIDENT的员工中,工资大于1500的员工。
    select ename,job,sal from emp
    where (job=‘SALESMAN’ or job=‘PRESIDENT’) and sal>1500;

4 练习题

查看如下表members结构:
Name Nulls Type
MEMBER_ID NOT NOLL VARCHAR2 (6)
FIRST_NAME VARCHAR2 (50)
LAST_NAME NOT NOLL VARCHAR2 (50)
ADDRESS VARCHAR2 (50)
CITY VARCHAR2 (25)
STATE VARCHAR2 (3)

列出state满足以字母A开头且后面只有一个字符的成员信息,如下哪个SQL正确?
A)SELECT * FROM MEMBERS WHERE state LIKE ‘%A_’ ;
B)SELECT * FROM MEMBERS WHERE state LIKE ’ A_% ’ ;
C)SELECT * FROM MEMBERS WHERE state LIKE ‘A_’;
D)SELECT * FROM MEMBERS WHERE state LIKE ‘A%’;

【答题小贴士】:
1、以墨天轮文章的形式解析题目并给出答案
2、将墨天轮文章链接发送到此文的评论区

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论