【数据库学习】四 条件查询

    xiaoxiao2022-07-07  168

    目录

     

    语法

    分类

    实操

    一、按照条件表达式筛选

    1. 查询工资>12000的员工信息

     二、按照逻辑表达式筛选

    1.查询部门编号不等于90号的员工名和部门编号 

    2.查询工资在10000到15000之间的员工名、工资以及奖金

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

     三、模糊查询

    like关键字

    between  and关键字

    in关键字

    is null 关键字 

    <=>关键字 

    题目扩展:


    语法: 

       select          查询列表     from         表名     where         筛选条件;

    分类:

    一、按照条件表达式筛选 简单条件运算符:> < = != <> >=  <=    !=是不等号, 不过<>才是SQL中的正牌不等号 二、按照逻辑表达式筛选   逻辑运算符: &&   ||   !     可以用                         and  or  not   推荐用 三、模糊查询         like         between and         in         is null

    实操

    所使用数据库还是上一篇博客中所介绍数据库。

    一、按照条件表达式筛选

    1. 查询工资>12000的员工信息

    SELECT * FROM employees WHERE salary > 12000 ;

     二、按照逻辑表达式筛选

    1.查询部门编号不等于90号的员工名和部门编号 

    SELECT last_name, department_id FROM employees WHERE department_id <> 90 ;

    2.查询工资在10000到15000之间的员工名、工资以及奖金

    SELECT last_name, salary, commission_pct FROM employees WHERE salary >= 10000 AND salary <= 15000 ;

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

    SELECT * FROM employees WHERE department_id < 90 OR department_id > 110 OR salary > 15000 ;

     三、模糊查询

    like关键字

    一般和通配符发配使用     通配符:           % 任意多个字符           _ 任意单个字符

    1.查询员工名中包含字符a的员工名

    格式:

    SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern

    用%来作为通配符:

    SELECT * FROM employees WHERE last_name LIKE '%a%' ;

    2.查询员工名中第2个字符为a,第五个字符为b的员工名和工资

    SELECT last_name, salary FROM employees WHERE last_name LIKE '_a__b%' ;

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

    由于_在SQL中为模糊查询代表单个字符,因此如果查询_的话需要将它转义,使用\进行转义:

    SELECT last_name FROM employees WHERE last_name LIKE '_\_%' ;

    或者可以通过自己定义的字符进行转义,利用我们想用$作为转义符,可以这样做:

    SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';

    between  and关键字

    SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120 ;

     注意以下几点:

    1.这样书写可以提高简洁度 2.包含临界值 3.两个临界值不要调换顺序

    in关键字

    查询员工的工种编号是AD_VP、ST_MAN、PU_MAN中的一个的员工名和编号。

    如果按照我们之前学过的,可以这样进行查询:

    SELECT last_name job_id FROM employees WHERE job_id = 'AD_VP' OR job_id = 'ST_MAN' OR job_id = 'PU_MAN' ;

    但是如果需要查询的东西比较多,这样就会显得太麻烦,我们可以使用in关键字。

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

    特点:使用in可以提高代码的简洁度,in中值的类型必须统一或者兼容,不支持通配符。

    SELECT last_name job_id FROM employees WHERE job_id IN( 'AD_VP' , 'ST_MAN' ,'PU_MAN' );

    is null 关键字 

    = 或 <>不可以用来判断null的值 is null 或者 is not null 可以判断null值

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

    SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL ;

    查询有奖金的员工名和奖金率 

    SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NOT NULL ;

    <=>关键字 

    可读性差,也可以使用它进行查询是否为null。

    SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL ;

    并且还可以进行普通查询:

    例如查询员工工资为12000的员工姓名和工资:

    SELECT last_name,salary FROM employees WHERE salary <=> 12000 ;

    题目扩展:

    最新回复(0)