Mysql学习笔记2

Mysql学习笔记2

条件查询

语法:

SELECT
             查询列表  #第三步
FROM
             表名  #第二步
WHERE
             筛选条件;   #运行时 第一步

分类:

 /*
     一· 按条件表达式筛选
            
           条件运算符 > < = != >= <=
           
     二· 按逻辑表达式筛选
     
         逻辑运算符:
           &&    ||   !
           and   or  not

     三·模糊查询
     
           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;

三·模糊查询

/*
   like      
   特点:
      一般和通配符搭配使用
      通配符:
            % 任意多个字符
            
   between and
   特点:
      提高语句整洁度
      包含临界值
      包含的两个临界值不要调换(值的类型必须一直且满足大小关系)
   in 
   含义:判断某字段的值是否属于in列表中的某一项
   特点:
      提高语句整洁度
      in列表的值类型必须统一(兼容)
   is null
      =或< >不能用于判断null值
      所以用is null或者is not null 来判断null的值
      
*/
#1.LIKE:

#案例1:查询员工名中包括字符a的员工信息
SELECT
            *
FROM
            employees
WHERE
            last_name LIKE ‘%a%’;   # %:通配符
#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名,工资
SELECT
            last_name
            salary
FROM
            employees
WHERE
            last_name LIKE ‘__n_l%’;
#案例3:查询员工名中第二个字符为_的员工名
SELECT
            last_name
FROM 
            employees
WHERE
            last_name LIKE ‘_\_%’; # \为转义字符java
         # last_name LIKE ‘_$_%’ ESCAPE ‘$’;
         # ESCAPE ‘’ :将‘’内的字符定义为转义字符
 
#2.BETWEEN AND:

 #案例1:查询员工编号在100到120之间的员工信息
 SELECT
            *
 FROM
            employees
 WHERE
            employee_id BETWEEN 100 AND 120;           
            
#3·in
#案例:查询员工的工种编号为 IT_PROG,AD_VP,AD_PRES的员工名和工种编号
SELECT  
            last_name,
            job_id
FROM
            employees
WHERE
            job_id IN ('IT_PROT','ad_vp','ad_pres');
 
#4·is null:
#案例1:查询没有奖金的员工名和奖金率
SELECT 
			last_name,
			commission_pct
FROM 
			employees
WHERE
			commission_pct IS NULL;
#案例2:查询有奖金的员工名和奖金率
SELECT 
			last_name,
			commission_pct
FROM 
			employees
WHERE
			commission_pct IS NOT 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仅仅可以判断null
<=>可以判断值和null 但可读性较差(毕竟是3个运算符组成) 所以推荐使用前者

你可能感兴趣的:(学习笔记,Mysql)