公司做网站域名的好处,邢台市网上家长学校,如何为产品做网站,自己做的网站怎么赚钱吗文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 )2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 3.3 不等于运算符 ( 或者 !)3.4 小于等于运算符… 文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 )2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 3.3 不等于运算符 ( 或者 !)3.4 小于等于运算符 3.5 小于运算符 3.6 大于等于运算符 3.7 大于运算符 3.8 是否为空 IS NULL和 IS NOT NULL3.9 介于两者之间 BETWEEN AND3.10 IN和NOT IN 【 4. 位运算符 】4.1 位或 |4.2 位与 位异或 ^位左移 位右移 位取反 ~ 【 5. 运算符优先级 】【 6. 函数 】 MySQL 所提供的运算符可以直接对表中数据或字段进行运算进而实现用户的新需求增强了 MySQL 的功能。 例如学生表中存在一个 birth 字段这个字段表示学生的出生年份。如果想得到这个学生的实际年龄可以使用 MySQL 中的算术运算符用当前的年份减学生出生的年份求出的结果就是这个学生的实际年龄了。 【 1. 算术运算符 】
MySQL中的算术运算符
运算符作用使用方法加法运算用于获得一个或多个值的和-减法运算用于从一个值中减去另一个值*乘法运算使数字相乘得到两个或多个值的乘积/除法运算返回商用一个值除以另一个值得到商%MOD求余运算返回余数用一个值除以另一个值得到余数
实例1加、减 创建表 temp定义数据类型为 INT 的字段 num。 CREATE TABLE temp(num INT);向字段 num 插入数据 64。 INSERT INTO temp VALUE (64);对 num 的值进行加法和减法运算。对 temp 表中的 num 字段的值进行加法和减法的运算而且由于和-的优先级相同因此先加后减或者先减后加之后的结果是相同的。 SELECT num,num10,num-35,num36.5 FROM temp; 实例2乘、除 对 temp 表中的 num 进行乘法、除法运算。 对 num 进行除法运算时由于 64 无法被 3 整除因此 MySQL 对 num/3 求商的结果保存到了小数点后面四位结果为 21.333364 除以 3 的余数为 1因此取余运算 num%3 的结果为 1。 SELECT num,num*2,num/2,num/3,num%3 FROM temp; 实例3取余 对于取余运算还可以使用 MOD(a,b) 函数MOD(a,b) 相当于 a%b。 SELECT MOD (num,3) FROM temp; 实例4除数为0 数学运算中除数为 0 的除法是没有意义的。所以在除法运算和取余运算中如果除数为 0那么返回结果为 NULL在除法运算和取余运算中除数为 0 对 num 进行除法求商或者求余运算的结果均为 NULL。 SELECT num,num/0,num%0 FROM temp;
【 2. 逻辑运算符 】
逻辑运算符 (布尔运算符)用来确定表达式的真和假。
运算符作用NOT 或者 !逻辑非AND 或者 逻辑与OR 和XOR逻辑异或
2.1 逻辑非 (NOT 或者 !)
NOT 和 ! 都是逻辑非运算符返回和操作数相反的结果具体语法规则为 当操作数为 0假时!01 当操作数为非零值时!非零0 当操作数为 NULL 时!NULLNULL 。 实例 分别使用非运算符 NOT 或者 ! 进行逻辑判断。NOT 11和! 11的返回值不同这是因为 NOT 与 ! 的优先级不同 NOT 的优先级低于 因此NOT 11相当于NOT(11)先计算11然后再进行 NOT 运算由于操作数不为 0因此NOT 11的结果是 0相反! 的优先级别要高于 因此! 11相当于(!1)1先计算!1结果为 0再加 1最后结果为 1。 SELECT NOT 10,NOT(1-1),NOT-5,NOT NULL,NOT 11; SELECT !10,!(1-1),!-5,!NULL,!11; SELECT !11;
2.2 逻辑与运算符 (AND 或者 )
AND 和 都是逻辑与运算符具体语法规则为 当 所有操作数都为非零值并且不为 NULL 时(非零且非NULL) (非零且非NULL)1 当 操作数中存在一个或多个操作数为 0 时(零) (任意)0 操作数中有任何一个为 NULL 时(NULL) (非零)NULL 。 实例 分别使用与运算符 AND 和 进行逻辑判断AND 和 的作用相同。 SELECT 1 AND -1,1 AND 0,1 AND NULL, 0 AND NULL; SELECT 1 -1,10,1NULL,0NULL;
2.3 逻辑或 (OR 或者 ||)
OR 和 || 都是逻辑或运算符具体语法规则为 如果有任意一个操作数为非零值则 (非零)||(任意)1 如果有任意一个操作数为 NULL 另一个操作数是NULL或者零时则 (NULL)||(NULL或者零)NULL 。 实例 分别使用或运算符 OR 和 || 进行逻辑判断由结果可以看到OR 和 || 的作用相同。下面是对各个结果的解析 SELECT 1 OR -1 OR 0,1 OR 2,1 OR NULL, 0 OR NULL, NULL OR NULL; SELECT 1 || -1 || 0,1||2,1||NULL,0||NULL,NULL||NULL;
2.4 异或运算 (XOR) XOR 表示逻辑异或具体语法规则为 当任意一个操作数为 NULL 时则 (NULL)XOR(任意)NULL 对于非 NULL 的操作数如果两个操作数都是非 0 值或者都是 0 值则 (非NULL且非零)XOR(非NULL且非零)0 (零)XOR(零)0 如果一个为0值另一个为非 0 值则 (零)XOR(非零)1 。 实例 SELECT 1 XOR 1,0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1;
【 3. 比较运算符 】
MySQL 允许用户对表达式的左边操作数和右边操作数进行比较比较运算符可以用于比较数字、字符串和表达式的值。注意字符串的比较是不区分大小写的。 比较结果为真则返回 1比较结果为假则返回 0比较结果不确定则返回 NULL。
运算符作用等于安全的等于 或者 !不等于小于等于大于等于大于IS NULL 或者 ISNULL判断一个值是否为空IS NOT NULL判断一个值是否不为空BETWEEN AND判断一个值是否落在两个值之间
3.1 等于 等于运算符 用来比较两边的操作数是否相等相等的话返回 1不相等的话返回 0。具体的语法规则如下若有一个或两个操作数为 NULL则比较运算的结果为 NULL。NULL 不能用于 比较。即 (NULL) (任意) 的结果为NULL若两个操作数都是字符串则按照字符串进行比较。若两个操作数均为整数则按照整数进行比较。若一个操作数为字符串另一个操作数为数字则 MySQL 可以自动将字符串转换为数字。实例 SELECT 10,22,22,0.020,bb,(13)(22),NULLnull;
3.2 安全等于运算符 安全等于操作符 和 操作符类似不过 可以用来判断 NULL 值具体语法规则为当两个操作数均为 NULL 时其返回值为 1 而不为 NULL即 (NULL)(NULL) 的结果为1而当一个操作数为 NULL 时其返回值为 0 而不为 NULL即 (NULL)(非NULL) 的结果为0 SELECT 10,22,22,0.020,bb,(13)(22),NULLnull;
3.3 不等于运算符 ( 或者 !)
与 的作用相反 和 ! 用于判断数字、字符串、表达式是否不相等。 如果两侧操作数不相等返回值为 1否则返回值为 0 - 如果两侧操作数有一个是 NULL那么返回值也是 NULL即 (NULL) (任意) 的结果为 NULL
3.4 小于等于运算符 是小于等于运算符用来判断左边的操作数是否小于或者等于右边的操作数 如果小于或者等于返回值为 1否则返回值为 0如果两侧操作数有一个是 NULL那么返回值也是 NULL。即 (NULL) (任意) 的结果为 NULL实例 SELECT goodgod,12,44,5.55,(13)(21),NULLNULL;
3.5 小于运算符 小于运算符 用来判断左边的操作数是否小于右边的操作数 如果小于返回值为 1否则返回值为 0如果两侧操作数有一个是 NULL那么返回值也是 NULL。即 (NULL) (任意) 的结果为 NULL 实例 SELECT goodgod12445.55(13)(21)NULLNULL
3.6 大于等于运算符 大于等于运算符 用来判断左边的操作数是否大于或者等于右边的操作数 如果大于或者等于返回值为 1否则返回值为 0如果两侧操作数有一个是 NULL那么返回值也是 NULL。即 (NULL) (任意) 的结果为 NULL 实例 SELECT goodgod,12,44,5.55,(13)(21),NULLNULL;
3.7 大于运算符 大于运算符 用来判断左边的操作数是否大于右边的操作数 如果大于返回值为 1否则返回值为 0如果两侧操作数有一个是 NULL那么返回值也是 NULL。即 (NULL) (任意) 的结果为 NULL 实例 SELECT goodgod,12,44,5.55,(13)(21),NULLNULL;
3.8 是否为空 IS NULL和 IS NOT NULL
IS NULL 或 ISNULL 运算符用来检测一个值是否为 NULL如果为 NULL返回值为 1否则返回值为 0。 ISNULL 可以认为是 IS NULL 的简写去掉了一个空格而已两者的作用和用法都是完全相同的。IS NOT NULL 运算符用来检测一个值是否为非 NULL如果是非 NULL返回值为 1否则返回值为 0。实例 SELECT NULL IS NULL,ISNULL(NULL),ISNULL(10),10 IS NOT NULL;
3.9 介于两者之间 BETWEEN AND
BETWEEN AND 运算符用来判断表达式的值是否位于两个数之间或者说是否位于某个范围内。 它的语法格式如下 在端点值区间内或者等于其中一个端点值BETWEEN AND 表达式返回值为 1。
expr BETWEEN min AND max实例 SELECT 4 BETWEEN 2 AND 5,4 BETWEEN 4 AND 6,12 BETWEEN 9 AND 10;
3.10 IN和NOT IN
MySQL 中的 IN 运算符用来判断表达式的值是否位于给出的列表中如果是返回值为 1否则返回值为 0。NOT IN 的作用和 IN 恰好相反NOT IN 用来判断表达式的值是否不存在于给出的列表中如果不是返回值为 1否则返回值为 0。基本语法 expr 表示要判断的表达式value1, value2, value3 … valueN 表示列表中的值MySQL 会将 expr 的值和列表中的值逐一对比。
expr IN ( value1, value2, value3 ... valueN )
expr NOT IN ( value1, value2, value3 ... valueN )实例1 SELECT 2 IN (1,3,5,thks),thks IN (1,3,5, thks); SELECT 2 NOT IN (1,3,5,thks),thks NOT IN (1,3,5, thks); 实例2对空值 NULL 的处理 当 IN 运算符的两侧有一个为空值 NULL 时 如果找不到匹配项则返回值为 NULL如果找到了匹配项则返回值为 1。 SELECT NULL IN (1,3,5,thks),10 IN (1,3,NULL,thks); SELECT NULL IN (1,3,5,thks),10 IN (1,10,NULL,thks); 实例3对非空值 NOT NULL 的处理 NOT IN 恰好与 IN 相反 当 NOT IN 运算符的两侧有一个为空值 NULL 时如果找不到匹配项则返回值为 NULL如果找到了匹配项则返回值为 0。 SELECT NULL NOT IN (1,3,5,thks),10 NOT IN (1,0,NULL,thks); SELECT NULL NOT IN (1,3,5,thks),10 NOT IN (1,10,NULL,thks);
【 4. 位运算符 】
位运算 就是按照内存中的比特位Bit进行操作这是计算机能够支持的最小单位的运算。程序中所有的数据在内存中都是以二进制形式存储的位运算就是对这些二进制数据进行操作。 位运算一般用于操作整数对整数进行位运算才有实际的意义。整数在内存中是以补码形式存储的正数的补码形式和原码形式相同而负数的补码形式和它的原码形式的数值位取反1。MySQL 中的位运算符
运算符说明使用形式举例|位或a | b5 | 8位与a b5 8^位异或a ^ b5 ^ 8~位取反~a~5位左移a b5 2表示整数 5 按位左移 2 位位右移a b5 2表示整数 5 按位右移 2 位
4.1 位或 |
参与|运算的两个二进制位有一个为 1 时结果就为 1两个都为 0 时结果才为 0。 例如1|1结果为 10|0结果为01|0结果为1这和逻辑运算中的||非常类似。实例 10 的补码为 101015 的补码为 1111按位或运算之后结果为 1111即整数 159 的补码为 10014 的补码为 01002 的补码为 0010按位或运算之后结果为 111即整数 15。-7 的补码为 60 个‘1’加 1001-1 的补码为 64 个‘1’按位或运算之后结果为 64 个‘1’即整数 18446744073709551615。 SELECT 10|15,9|4|2; SELECT -7|-1;
4.2 位与
参与运算的两个二进制位都为 1 时结果就为 1否则为 0。 例如1|1结果为 10|0结果为 01|0结果为 0这和逻辑运算中的非常类似。实例 10 的补码为 101015 的补码为 1111按位与运算之后结果为 1010即整数 109 的补码为 10014 的补码为 01002 的补码为 0010按位与运算之后结果为 0000即整数 0。-7 的补码为 60 个‘1’加 1001-1 的补码为 64 个‘1’按位与运算之后结果为 60 个‘1’加 1001即整数 18446744073709551609。 SELECT 10 15,9 4 2; SELECT -7-1;
位异或 ^
参与^运算的两个二进制位不同时结果为 1相同时结果为 0。 例如1|1结果为 00|0结果为 01|0结果为1。实例 10 的补码为 101015 的补码为 111按位异或运算之后结果为 0101即整数 51 的补码为 00010 的补码为 0000按位异或运算之后结果为 00011 和 1 本身二进制位完全相同因此结果为 0。-7 的补码为 60 个‘1’加 1001-1 的补码为 64 个‘1’按位异或运算之后结果为 110即整数 6。 SELECT 10^15,1^0,1^1; SELECT -7^-1;
位左移
位左移是按指定值的补码形式进行左移左移指定位数之后左边高位的数值被移出并丢弃右边低位空出的位置用 0 补齐。 基本语法 其中n 指定值 expr 要移位的位数n 必须为非负数。
expr n实例 1 的补码为 0000 0001左移两位之后变成 0000 0100即整数 44 的补码为 0000 0100左移两位之后变成 0001 0000即整数 16。-7 的补码为 60 个‘1’加 1001左移两位之后变成 56 个‘1’加 1110 0100即整数 18446744073709551588。 SELECT 12,42; SELECT -72;
位右移
位右移 是按指定值的补码形式进行右移右移指定位数之后右边低位的数值被移出并丢弃左边高位空出的位置用 0 补齐。实例 1 的补码为 0000 0001右移 1 位之后变成 0000 0000即整数 016 的补码为 0001 0000右移两位之后变成 0000 0100即整数 4。-7 的补码为 60 个‘1’加 1001右移两位之后变成 0011 加 56 个‘1’加 1110即整数 4611686018427387902。 SELECT 11,162; SELECT -72;
位取反 ~
位取反 是将参与运算的数据按对应的补码进行反转也就是做 NOT 操作即 1 取反后变 00 取反后变为 1。实例 常量 1 的补码为 63 个‘0‘加 1 个’1‘位取反后就是 63 个’1‘加一个’0‘转换为二进制后就是 18446744073709551614。 SELECT ~1,~18446744073709551614;可以使用 BIN() 函数查看 1 取反之后的结果BIN() 函数的作用是将一个十进制数转换为二进制数SQL 语句如下: SELECT BIN(~1); 实例2 使用位取反运算符进行运算。 逻辑运算5~1 中由于位取反运算符‘~’的级别高于位与运算符‘’因此先对 1 进行取反操作结果为 63 个‘1’加一个‘0’然后再与整数 5 进行与运算结果为 0100即整数 4。 SELECT 5 ~1;
【 5. 运算符优先级 】
运算符的优先级决定了不同的运算符在表达式中计算的先后顺序一般情况下级别高的运算符优先进行计算如果级别相同MySQL 按表达式的顺序从左到右依次计算。另外在无法确定优先级的情况下可以使用圆括号“()”来改变优先级并且这样会使计算过程更加清晰。
优先级由低到高排列运算符1(赋值运算、:2II、OR3XOR4、AND5NOT6BETWEEN、CASE、WHEN、THEN、ELSE7(比较运算、、、、、、、!、 IS、LIKE、REGEXP、IN8|910、11-(减号、12*、/、%13^14-(负号、〜位反转15!
【 6. 函数 】
MySQL 函数 是 MySQL 数据库提供的 内部函数这些内部函数可以帮助用户更加方便地处理表中的数据。函数就像预定的公式一样存放在数据库里每个用户都可以调用已经存在的函数来完成某些功能。函数可以很方便的地实现业务逻辑的重用并且 MySQL 数据库允许用户自己创建函数以适应实际的业务操作。正确使用函数会让读者在编写 SQL 语句时起到事半功倍的效果。 SELECT、INSERT、UPDATE 和 DELETE 语句及其子句例如 WHERE、ORDER BY、HAVING 等中都可以使用 MySQL 函数。 例如数据表中的某个数据是负数现在需要将这个数据显示为整数这时就可以在 SELECT 语句中使用绝对值函数。 函数类型描述数学函数主要用于处理数字。这类函数包括绝对值函数、正弦函数、余弦函数和获得随机数的函数等。字符串函数主要用于处理字符串。其中包括字符串连接函数、字符串比较函数、将字符串的字母都变成小写或大写字母的函数和获取子串的函数等。日期和时间函数主要用于处理日期和时间。其中包括获取当前时间的函数、获取当前日期的函数、返回年份的函数和返回日期的函数等。条件判断函数主要用于在 SQL 语句中控制条件选择。其中包括 IF 语句、CASE 语句和 WHERE 语句等。系统信息函数主要用于获取 MySQL 数据库的系统信息。其中包括获取数据库名的函数、获取当前用户的函数和获取数据库版本的函数等。加密函数主要用于对字符串进行加密解密。其中包括字符串加密函数和字符串解密函数等。其他函数主要包括格式化函数和锁函数等。
MySQL常用函数汇总MySQL 官方参考文档