1 #条件查询 2 /* 3 4 语法 5 select 6 查询列表 7 from 8 表名 9 where 10 筛选条件 11 分类: 12 1. 按条件表达式筛选 13 条件运算符:> < = != <> >= <= 14 15 2. 逻辑表达式筛选 16 逻辑运算符:&& || ! 17 and or not 18 19 3.模糊查询 20 like 21 between and 22 in 23 is null 24 25 */ 26 #一.按条件表达式筛选 27 28 #案例1:查询工资大于12000员工信息 29 30 SELECT 31 * 32 FROM 33 employees 34 WHERE 35 salary > 12000; 36 37 #案例2:查询部门编号不等于90号的员工名和部门编号 38 39 SELECT 40 last_name, 41 department_id 42 FROM 43 employees 44 WHERE 45 department - id; 46 47 48 #二.按逻辑表达式筛选 49 50 #案例1:查询工资在lW到2W之间 51 52 SELECT 53 last_name, 54 salary, 55 commission_pct 56 FROM 57 employees 58 WHERE 59 salary >= 10000 AND salary <= 20000; 60 61 #案例2:查询部门编号不在90到110之间,或者工资高于15000的员工信息 62 63 SELECT 64 * 65 FROM 66 employees 67 WHERE NOT (department_id >= 90 AND departmkent_id <= 110) OR salary > 15000; 68 69 #三.模糊匹配 70 71 #1.like 72 /*特点: 73 和通配符配合使用 74 %匹配任意多个字符 75 _匹配单个字符 76 */ 77 #案例1:查询员工名中包含a的员工信息 78 79 SELECT 80 * 81 FROM 82 employees 83 WHERE last_name LIKE '%a%';#abc 84 85 #案例2:查询员工中名中但三个字符为n,第五个字符为l的员工名和工资 86 87 SELECT 88 last_name, 89 salary 90 FROM 91 employees 92 WHERE last_name LIKE '__n_l'; 93 94 #查询员工中第二个字符为_的员工名 95 96 SELECT 97 last_name 98 FROM 99 employees 100 WHERE last_name LIKE '_$_%' ESCAPE '$' ; #用关键字ESCAPE指定$符为转义符 101 #2.between and 102 /* 103 1).使用between and 可以提高语句的简洁度 104 2).包含临界值 105 3).两个临界值不能调换顺序 106 */ 107 #案例1:查询员工编号在100到120之间的员工信息 108 109 SELECT 110 * 111 FROM 112 employees 113 WHERE employee_id >= 100 AND employees_id <= 120 ; 114 115 #------------------------------------------------------------------------------ 116 117 SELECT 118 * 119 FROM 120 employees 121 WHERE employee_id BETWEEN 100 AND 120 ; 122 123 #3.in 124 125 #判断某字段值是否属于in列表中的某一项 126 /* 127 1).使用in 可以提高语句的简洁度 128 2).in 列表的值必须一致或兼容 129 3).in列表中不能用匹配符 130 */ 131 #案例1:查询员工的工种编号是 IT_RPOG AD_VP AD_PRES 中的一个员工名和工中编号 132 133 SELECT 134 last_name, 135 job_id 136 FROM 137 employees 138 WHERE jobs_id = 'IT_RPOG' OR 'AD_VP' OR 'AD_PRES'; 139 140 #-------------------------------------------------------------------------------- 141 SELECT 142 last_name, 143 jobs 144 FROM 145 employees 146 WHERE jobs_id IN ('IT_RPOG','AD_VP','AD_PRES'); 147 148 #4. is null 仅仅能判断null值 149 150 /* 151 1)= < > 不能判断null值 152 2)is null is not null 也不能判断null之外的值 153 */ 154 155 #案例1:查询没有奖金的员工名和奖金率 156 SELECT 157 last_name, 158 commission_pct 159 FROM 160 employees 161 WHERE commission_pct IS NULL ; 162 163 #案例2:查询有奖金的员工名和奖金率 164 SELECT 165 last_name, 166 commission_pct 167 FROM 168 employees 169 WHERE commission_pct IS NOT NULL ; 170 171 #5.安全等与 <=> #可读性差 172 173 #案例1:查询没有奖金的员工名和奖金率 174 175 SELECT 176 last_name, 177 commission_pct 178 FROM 179 employees 180 WHERE commission_pct <=> NULL ; 181 182 #案例2:查询工资为12000的员工信息 183 184 SELECT 185 last_name, 186 salary 187 FROM 188 employees 189 WHERE salary <=> 12000 ;
DQL语言