MySQL——DQL语言基础(2)

条件查询

语法:

select 

            查询列表

from

            表名

where

            筛选条件

/*分类:

            一、按条件表达式筛选

                    条件运算符:> , < , = , != , <>  , >= , <=

            二、按逻辑表达式筛选

                    逻辑运算符:

                                    && , ||   , !

                                    and, or , not

                                    &&和and:两个条件都为true,结果为true,反之为false;

                                    ||或or:只要有一个条件为true,结果为true,反之为false;

                                    !或not:如果连接的条件本身为false,结果为true,反之为false

            三、模糊查询

                                like

                                between and

                                in

                                is null  

*/

一、按条件表达式筛选

例1:查询工资>12000的员工信息

SELECT

  *

FROM

  employees

WHERE

  salary > 12000;

例2、查询部门编号不等于90号的员工名和部门编号

SELECT

  last_name,

  department_id

FROM

  employees

WHERE

  department_id<>90;

二、按逻辑表达式筛选

例1:查询工资在10000到20000之间的员工名、工资以及奖金

SELECT

  last_name,

  salary,

  commission_pct

FROM

  employees

WHERE

  salary >= 10000 AND salary <= 20000;

例2:查询部门编号不在90到110之间,或者工资高于15000的员工信息

SELECT

*

FROM

  employees

WHERE

  department_id<90 OR department_id>110 OR salary>15000;

或者也可以写成

SELECT

*

FROM

  employees

WHERE

  NOT(department_id>=90 AND department_id<=110) OR salary>15000;

三、模糊查询

1.like

特点:(1)一般和通配符搭配使用

                    通配符:

                        %  任意多个字符,包含0个字符

                        _  任意单个字符

例1:查询员工名中包含字符a的员工信息

SELECT

*

FROM

  employees

WHERE

  last_name LIKE '%a%';

例2:查询员工名中第三个字符为n,第五个字符为l,第五个字符为a的员工名和工资

SELECT

last_name,

salary

FROM

  employees

WHERE

  last_name LIKE '__n_l%';

例3:查询员工名中第二个字符为_的员工名

SELECT

last_name

FROM

  employees

WHERE

  last_name like '_$_%' escape '$';

2.between and

(1)使用between and 可以提高语句的简洁度

(2)包含临界值

(3)两个临界值不要颠倒位置——前边小于后边的

例1:查询员工编号在100到120之间的员工信息

正常来写的话用and就可以达到效果

SELECT

*

FROM

  employees

WHERE

  employee_id >= 100 and employee_id <= 120;

但是也可以写成

SELECT

*

FROM

  employees

WHERE

  employee_id between  100 and 120;

效果是一样的

3.in

含义:判断某字段的值是否属于in列表中的某一项

特点:

        (1)使用in提高语句简洁度

        (2)in列表的值类型必须一致或兼容

        (3)不支持模糊查询

例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

SELECT

last_name,

job_id

FROM

  employees

WHERE

  job_id = 'IT_PROG' or job_id='AD_VP' or job_id='AD_PRES';

使用or也是可以达到所查询的效果的,但是对于代码的简洁来说,还是差点意思

使用in的话可以平替

SELECT

last_name,

job_id

FROM

  employees

WHERE

  job_id IN('IT_PROG','AD_VP','AD_PRES');

4.is null

=或<>不能用于判断null值

is null 或 is not null 可以判断null值

例1:查询没有奖金的员工名和奖金率

SELECT

last_name,

commission_pct

FROM

  employees

WHERE

  commission_pct is null;

安全等于   <=>

例1:查询没有奖金的员工名和奖金率

SELECT

last_name,

commission_pct

FROM

  employees

WHERE

  commission_pct <=> null;

例2:查询工资为12000的员工信息

SELECT

last_name,

salary

FROM

  employees

WHERE

  salary <=> 12000;

is null 和<=>的比较

is null :仅仅可以判断NULL值,可读性较高。

<=>    :既可以判断NULL值,又可以判断普通的数值,可读性较低。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、下面语句是否可以执行成功 SELECT last_name,job_id,salary AS salFROM ...
    黄瓤大西瓜阅读 653评论 0 1
  • 基础查询 /*语法:select 查询列表 from 表名特点:1.查询列表可以是:表中的字段、常量值、表达式、函...
    晓晓桑阅读 575评论 0 2
  • 数据库学习笔记 DB:数据库(database):存储数据的“仓库” DBMS:数据库管理系统、数据库软件(产品)...
    xinmin阅读 247评论 0 0
  • 工作中,产品经理了解SQL有2个好处:一方面和数据开发提需求时,可以更合理的排期,减少和开发的沟通壁垒;另外开发太...
    王小野阅读 405评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,770评论 0 5