重庆建设部网站官网,wordpress菜单怎么设置目录册,自己做剧本网站,户网站建设整改报告运算符 1.算术运算符2.比较运算符3.逻辑运算符 1.算术运算符
算数运算符主要用于数学运算#xff0c;其可以连接运算符前后的两个数值或表达式#xff0c;对数值或表达式进行 - * / 和 取模%运算 1.加减法运算符
mysql SELECT 100,100 0,100 - 0,100 50,100 50 - … 运算符 1.算术运算符2.比较运算符3.逻辑运算符 1.算术运算符
算数运算符主要用于数学运算其可以连接运算符前后的两个数值或表达式对数值或表达式进行 - * / 和 取模%运算 1.加减法运算符
mysql SELECT 100,100 0,100 - 0,100 50,100 50 - 30,100 35.5,100 - 35.5 FROM dual;
------------------------------------------------------------------------
| 100 | 100 0 | 100 - 0 | 100 50 | 100 50 - 30 | 100 35.5 | 100 - 35.5 |
------------------------------------------------------------------------
| 100 | 100 | 100 | 150 | 120 | 135.5 | 64.5 |
------------------------------------------------------------------------
1 row in set (0.00 sec)由此得出结论
一个整数类型的值对整数进行加减法操作结果还是一个整数一个整数类型的值对浮点数进行加减法操作结果还是一个浮点数加法和减法的优先级相同MySQL中只标识加减法如遇到非数值类型先转换成数值转换失败按0计算
2.乘除法运算符
mysql SELECT 100*1.0, 100/1.0, 100/2, 1002*5/2, 100/3, 100 DIV 0 FROM dual;
-----------------------------------------------------------
| 100*1.0 | 100/1.0 | 100/2 | 1002*5/2 | 100/3 | 100 DIV 0 |
-----------------------------------------------------------
| 100.0 | 100.0000 | 50.0000 | 105.0000 | 33.3333 | NULL |
-----------------------------------------------------------
1 row in set (0.00 sec)由此得出结论
一个数乘除浮点数结果是浮点数一个数除以整数后不管是否能除尽结果都为一个浮点数一个数除以另一个数除不尽时结果为一个浮点数并保留结果到小数点后四位乘除法优先级相同MySQL中一个数除以0为NULL
3.取模运算
mysql SELECT 12%3, 12 MOD 5 FROM dual;
----------------
| 12%3 | 12 MOD 5 |
----------------
| 0 | 2 |
----------------
1 row in set (0.00 sec)2.比较运算符
比较运算符用来对表达式左边的操作数和右边的操作数进行比较比较结果为真则返回1比较结果为假则返回0其他情况泽返回NULL
比较运算符常被用来作为SELECT查询语句得到条件来使用返回符合条件的结果记录。 1.等号运算符
mysql SELECT 11, 11, 10, aa, (53)(62), NULL, NULLNULL;
-----------------------------------------------------------
| 11 | 11 | 10 | aa | (53)(62) | NULL | NULLNULL |
-----------------------------------------------------------
| 1 | 1 | 0 | 1 | 1 | NULL | NULL |
-----------------------------------------------------------
1 row in set (0.00 sec)mysql SELECT 12, 0abc, 1abc FROM dual;
-----------------------
| 12 | 0abc | 1abc |
-----------------------
| 0 | 1 | 0 |
-----------------------
1 row in set, 2 warnings (0.00 sec)结论
等号运算符()判断等号两边的值、字符串或表达式是否相等如果相等则返回1不相等返回0在使用等号运算符时遵循如下规则 如果等号两边的值、字符串或表达式都为字符串则MySQL会按照字符串进行比较其比较的是每个字符串中字符的ANSII编码是否相等如果等号两边的值都是整数则MySQL会按照数值来比较两个值的大小如果等号两边的值是一个整数另一个是字符串则MySQL会将字符串转化为数字进行比较如果等号两边的值、字符串或表达式有一个为NULL则比较结果为NULL
2.安全等于运算符 安全等与运算符与等于运算符是相似的唯一区别是可以用来对NULL进行判断。在两个操作数均为NULL时其返回值为1而不是NULL当一个操作数为NULL返回值为0而不为NULL。
mysql SELECT 11, 10, aa, (53)(62), NULL, NULLNULL;
--------------------------------------------------------------
| 11 | 10 | aa | (53)(62) | NULL | NULLNULL |
--------------------------------------------------------------
| 1 | 0 | 1 | 1 | NULL | NULL |
--------------------------------------------------------------
1 row in set (0.00 sec)3.不等于运算符 不等于运算符(和!)用于判断两边的数字、字符串或表达式是否不相等如果不等于则返回1相等则返回0。不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL或两边都为NULL则结果为NULL。
mysql SELECT 11, 1!2, a!b, (34)(26), a!NULL,NULLNULL;
-----------------------------------------------------------
| 11 | 1!2 | a!b | (34)(26) | a!NULL | NULLNULL |
-----------------------------------------------------------
| 0 | 1 | 1 | 1 | NULL | NULL |
-----------------------------------------------------------
1 row in set (0.00 sec)此外还有非符号类型的运算符 4.空运算符 空运算符IS NULL或者ISNULL判断一个值是否为NULL如果为NULL则返回1否则返回0
mysql SELECT NULL IS NULL, ISNULL(NULL), ISNULL(a), 1 IS NULL;
----------------------------------------------------
| NULL IS NULL | ISNULL(NULL) | ISNULL(a) | 1 IS NULL |
----------------------------------------------------
| 1 | 1 | 0 | 0 |
----------------------------------------------------
1 row in set (0.00 sec)5.非空运算符 非空运算符IS NOT NULL判断一个值是否不为NULL如果不为NULL则返回1否则返回0
mysql SELECT NULL IS NOT NULL, a IS NOT NULL, 1 IS NOT NULL;
--------------------------------------------------
| NULL IS NOT NULL | a IS NOT NULL | 1 IS NOT NULL |
--------------------------------------------------
| 0 | 1 | 1 |
--------------------------------------------------
1 row in set (0.00 sec)6.最小值运算符 语法格式为LEAST(值1值2…值n)。其中“值n”表示参数列表中有n个值。在有两个或多个参数的情况下返回最小值
mysql SELECT LEAST (1,0,2),LEAST(b,a,c),LEAST(1,NULL,2);
----------------------------------------------------
| LEAST (1,0,2) | LEAST(b,a,c) | LEAST(1,NULL,2) |
----------------------------------------------------
| 0 | a | NULL |
----------------------------------------------------
1 row in set (0.00 sec)由此结果可以看出当参数是整数或浮点数时LEAST将返回其中最小的值当参数为字符串时返回字母表中顺序最靠前的字符当比较直列表中有NULL时不能判断大小返回NULL值
7.最大值运算符 语法格式为GREATEST(值1值2…值n)。其中n表示参数列表中有n个值。当有两个或多个参数时返回值为最大值。假如任意一个自变量为NULL则GREATEST()的返回值为NULL
mysql SELECT GREATEST(1,0,2),GREATEST(b,a,c),GREATEST(1,NULL,2);
------------------------------------------------------------
| GREATEST(1,0,2) | GREATEST(b,a,c) | GREATEST(1,NULL,2) |
------------------------------------------------------------
| 2 | c | NULL |
------------------------------------------------------------
1 row in set (0.00 sec)8.BETWEEN AND运算符 BETWEEN运算符使用的格式通常为SELECT D FROM TABLE WHERE C BETWEEN A AND B此时当C大于或等于A并且C小于或等于B时结果为1否则结果为0
mysql SELECT 1 BETWEEN 0 AND 1, 10 BETWEEN 11 AND 12, b BETWEEN a AND C;
------------------------------------------------------------------
| 1 BETWEEN 0 AND 1 | 10 BETWEEN 11 AND 12 | b BETWEEN a AND C |
------------------------------------------------------------------
| 1 | 0 | 1 |
------------------------------------------------------------------
1 row in set (0.00 sec)9.IN运算符 IN运算符用于判断给定的值是否是IN列表中的一个值如果是则返回1否则返回0。如果给定的值为NULL或者IN列表中存在NULL则结果为NULL
mysql SELECT a IN (a,b,c), 1 IN (2,3), NULL IN (a,b), a IN (a,NULL);
------------------------------------------------------------------------
| a IN (a,b,c) | 1 IN (2,3) | NULL IN (a,b) | a IN (a,NULL) |
------------------------------------------------------------------------
| 1 | 0 | NULL | 1 |
------------------------------------------------------------------------
1 row in set (0.00 sec)10.NOT IN运算符 NOT IN运算符用于判断给定的值是否不是IN列表中的一个值如果不是IN列表中的一个值则返回1否则返回0。
mysql SELECT a NOT IN (a,b,c), 1 NOT IN (2,3);
------------------------------------------
| a NOT IN (a,b,c) | 1 NOT IN (2,3) |
------------------------------------------
| 0 | 1 |
------------------------------------------
1 row in set (0.00 sec)11.LIKE运算符 LIKE运算符主要用来匹配字符串通常用于模糊匹配如果满足条件则返回1否则返回0.如果给定的值或者匹配条件为NULL则发挥结果为NULL。 LIKE运算符通常使用如下通配符
%匹配0个或多个字符_只能匹配一个字符
mysql SELECT NULL LIKE abc, abc LIKE NULL;
----------------------------------
| NULL LIKE abc | abc LIKE NULL |
----------------------------------
| NULL | NULL |
----------------------------------
1 row in set (0.00 sec)12.REGEXP运算符 REGEXP用来匹配字符串语法格式为REGEXP 匹配条件。如果满足返回1如果不满足则返回0若匹配条件任意一个为NULL则结果为NULL 常用通配符
^匹配该字符后面的字符开头得到字符串$匹配该字符前面的字符结尾的字符串.陪陪任何一单字符‘[…]‘匹配在括号内的任何字符。例如’[abc]‘匹配’a’,‘b’,‘c’为了命名字符的范围使用一个’-’.[a-z]匹配任何字母而[0-9]匹配任何数字。*匹配零个或多个在它前面的字符。例如x*匹配任意数量的’x’字符[0-9]*匹配任何数量的数字而*匹配任意数量的任何字符
mysql SELECT chengxuyuan REGEXP ^c, chengxuyuan REGEXP n$, chengxuyuan REGEXP eng;
----------------------------------------------------------------------------------
| chengxuyuan REGEXP ^c | chengxuyuan REGEXP n$ | chengxuyuan REGEXP eng |
----------------------------------------------------------------------------------
| 1 | 1 | 1 |
----------------------------------------------------------------------------------
1 row in set (0.00 sec)3.逻辑运算符
逻辑运算符主要用来判断表达式的真假在MySQL中逻辑运算符的返回结果为1、0或者NULL 支持一下四种逻辑运算符 1.逻辑非运算符 逻辑非NOT或运算符表示当给定的值为0时返回1当给定的值为非0值时返回0当给定的值为NULL时返回NULL
mysql SELECT NOT 1, NOT 0, NOT(11), NOT !1, NOT NULL;
------------------------------------------
| NOT 1 | NOT 0 | NOT(11) | NOT !1 | NOT NULL |
------------------------------------------
| 0 | 1 | 0 | 1 | NULL |
------------------------------------------
1 row in set, 1 warning (0.00 sec)2.逻辑与运算符 逻辑与(AND或)运算符是给定的所有值均为非0值并且都不为NULL时返回1当给定的一个值或者多个值0时则返回0否则返回NULL。
mysql SELECT 1 AND -1, 0 AND 1, 0 AND NULL, 1 AND NULL;
-------------------------------------------
| 1 AND -1 | 0 AND 1 | 0 AND NULL | 1 AND NULL |
-------------------------------------------
| 1 | 0 | 0 | NULL |
-------------------------------------------
1 row in set (0.00 sec)3.逻辑或运算符 逻辑或OR或||运算符是给定的值都不为NULL并且任何一个值为非0值时则返回1当一个值为NULL并且另一个值为非0值时返回1否则返回NULL两个值都为NULL时返回NULL。
mysql SELECT 1 OR -1, 1 OR 0, 1 OR NULL, 0 || NULL, NULL || NULL;
-----------------------------------------------------
| 1 OR -1 | 1 OR 0 | 1 OR NULL | 0 || NULL | NULL || NULL |
-----------------------------------------------------
| 1 | 1 | 1 | NULL | NULL |
-----------------------------------------------------
1 row in set, 2 warnings (0.00 sec)4.逻辑异或运算符 逻辑异或XOR运算符是给当定的值中任意一个值为NULL时则返回NULL如果两个非NULL的值都是0或者都不等于0时则返回0如果一个值为0另一个值不为0则返回1。
mysql SELECT 1 XOR -1, 1 XOR 0, 0 XOR 0, 1 XOR NULL, 1 XOR 1 XOR 1, 0 XOR 0 XOR 0;
----------------------------------------------------------------------
| 1 XOR -1 | 1 XOR 0 | 0 XOR 0 | 1 XOR NULL | 1 XOR 1 XOR 1 | 0 XOR 0 XOR 0 |
----------------------------------------------------------------------
| 0 | 1 | 0 | NULL | 1 | 0 |
----------------------------------------------------------------------
1 row in set (0.00 sec)练习
选择工资不在5000到12000的员工的姓名和工资选择在20或50号部门工作的员工姓名和部门号选择公司中没有管理者的员工姓名及job_id选择公司中有奖金的员工姓名工资和奖金级别选择员工姓名的第三个字母是a的员工姓名选择姓名中有字母a和k的员工姓名显示出表 employees 表中 first_name 以 e’结尾的员工信息显示出表 employees 部门编号在 80-100 之间的姓名、工种显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、工资、管理者id
#1.选择工资不在5000到12000的员工的姓名和工资
方法1
SELECT last_name ,salary
FROM employees
WHERE salary NOT BETWEEN 5000 and 12000
方法2
SELECT last_name, salary
FROM employees
WHERE salary 5000 OR salary 12000;#2.选择在20或50号部门工作的员工姓名和部门号
方法1
SELECT last_name,salary
FROM employees
WHERE department_id 20 OR department_id 50;
方法2
SELECT last_name, department_id
FROM employees
WHERE department_id IN(20, 50);#3.选择公司中没有管理者的员工姓名及job_id
SELECT last_name, job_id
FROM employees
WHERE manager_id IS NULL;#4.选择公司中有奖金的员工姓名工资和奖金级别
SELECT last_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;#5.选择员工姓名的第三个字母是a的员工姓名
SELECT last_name
FROM employees
WHERE last_name LIKE __a%;#6.选择姓名中有字母a和k的员工姓名
SELECT last_name
FROM employees
WHERE last_name LIKE %a%k% OR last_name LIKE %k%a%;#7.显示出表 employees 表中 first_name 以 e结尾的员工信息
方法1
SELECT *
FROM employees
WHERE first_name REGEXP e$;
方法2
SELECT *
FROM employees
WHERE first_name LIKE %e;#8.显示出表 employees 部门编号在 80-100 之间的姓名、工种
方法1
SELECT last_name,job_id
FROM employees
WHERE department_id BETWEEN 80 AND 100;
方法2
SELECT last_name,job_id
FROM employees
WHERE department_id 80 and department_id 100;#9.显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、工资、管理者id
SELECT last_name,salary,manager_id
FROM employees
WHERE manager_id IN (100,101,110);