• lyt经典版MySQL基础——进阶2:条件查询


      1 #进阶2:条件查询
      2 /*
      3 语法:
      4     select
      5         查询列表
      6     from
      7         表名
      8     where
      9         筛选条件;
     10         
     11 分类:
     12     一、按条件表达式筛选
     13     条件运算符:> < = != <> >= <=
     14     
     15     二、按逻辑表达式筛选
     16     逻辑运算符:
     17     作用:用于连接条件表达式
     18         && || !
     19         and or not
     20     &&和and:两个条件都为true,结果为true,反之为false
     21     ||和or:只要有一个条件为true,结果为true,反之为false
     22     !和not:如果连接的条件本身为false,结果为true,反之为false
     23         
     24     三、模糊查询
     25         like
     26         between and
     27         in 
     28         is null
     29 */
     30 
     31 #案例1:查询工资>12000的员工信息
     32 SELECT
     33     *
     34 FROM
     35     employees
     36 WHERE 
     37     salary>12000;
     38     
     39 #案例2:查询部门编号不等于90号的员工名和部门编号
     40 SELECT 
     41     last_name,department_id
     42 FROM 
     43     employees
     44 WHERE 
     45     department_id != 90;
     46     
     47 #二、按逻辑表达式筛选
     48 #案例1:查询工资在10000到20000之间的员工名、工资以及奖金
     49 SELECT 
     50     last_name,salary,commission_pct 
     51 FROM 
     52     employees
     53 WHERE salary BETWEEN 10000 AND 20000; 
     54 #案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
     55 SELECT * FROM employees
     56 WHERE department_id <90 OR department_id>110 OR salary>15000;
     57 
     58 #三、模糊查询
     59 /*
     60 like
     61 特点:
     62 (1)一般和通配符搭配使用
     63     通配符:
     64     % 任意多个字符,包含0个字符
     65     _ 任意单个字符
     66     
     67 between and
     68 in
     69 is null | is not null
     70 */
     71 #1.like
     72 #案例1:查询员工名中包含字符a的员工信息
     73 SELECT * FROM employees 
     74 WHERE last_name LIKE '%a%';
     75 #案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
     76 SELECT last_name,salary FROM employees
     77 WHERE last_name LIKE '__n_l%';
     78 #案例3:查询员工名中第二个字符为_的员工名
     79 SELECT last_name FROM employees
     80 WHERE last_name LIKE '_\_%';
     81 
     82 SELECT last_name FROM employees
     83 WHERE last_name LIKE '_a_%' ESCAPE 'a';  -- ESCAPE转义
     84 
     85 #2.between and
     86 /*
     87 (1)使用between and可以提高语句的简洁度
     88 (2)包含两个临界值
     89 (3)两个临界值不能调换顺序
     90 */
     91 #案例1:查询员工编号在100到120之间的员工信息
     92 SELECT * FROM employees 
     93 WHERE employee_id >=100 AND employee_id<=120;
     94 
     95 SELECT * FROM employees 
     96 WHERE employee_id BETWEEN 100 AND 120;
     97 
     98 #3.in
     99 /*
    100 含义:判断某字段的值是否属于in列表中的某一项
    101 特点:
    102     (1)使用in提高语句简洁度
    103     (2)
    104 */
    105 #案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
    106 SELECT last_name,employee_id FROM employees
    107 WHERE job_id='IT_PROG' OR job_id='AD_VP' OR job_id='AD_PRES';
    108 
    109 SELECT last_name,employee_id FROM employees
    110 WHERE job_id IN('IT_PROG','AD_VP','AD_PRES');
    111 
    112 #4.is null
    113 /*
    114 =或<>不能用于判断null值
    115 is null或is not null可以判断null值
    116 */
    117 #案例1:查询没有奖金的员工名和奖金率
    118 SELECT last_name,commission_pct FROM employees 
    119 WHERE commission_pct IS NULL;
    120 #案例2:查询有奖金的员工名和奖金率
    121 SELECT last_name,commission_pct FROM employees 
    122 WHERE commission_pct IS NOT NULL;
    123 
    124 #5.安全等于 <=>
    125 #案例1:查询没有奖金的员工名和奖金率
    126 SELECT last_name,commission_pct FROM employees 
    127 WHERE commission_pct <=> NULL;
    128 #案例2:查询工资为12000的员工信息
    129 SELECT * FROM employees 
    130 WHERE salary<=>12000;
    131 
    132 #is null pk <=>
    133 /*
    134 IS NULL:仅仅可以判断NULL值
    135 <=>:既可以判断NULL值,又可以判断普通的数值,可读性较低
    136 */
    137 
    138 #练习:
    139 #2.查询员工号为176的员工的姓名和部门号和年薪
    140 SELECT last_name,department_id,
    141 salary*12*(1+IFNULL(commission_pct,0)) AS '年薪'
    142 FROM employees;
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    2012搜狗校园招聘笔试题(2)
    T-SQL中只截取日期的日期部分和日期的时间部分
    Delphi XE4 TStringHelper用法详解
    TScreen 类
    TScreen 类
    Delphi中Form的position属性与代码自定义窗体位置
    如何让窗口显示在电脑屏幕中间
    C#中整型数据类型
    C# WinForm开发系列
    SQL中EXCEPT和Not in的区别?
  • 原文地址:https://www.cnblogs.com/yiruliu/p/13373279.html
Copyright © 2020-2023  润新知