ホームページ >データベース >mysql チュートリアル >MySQL の最適化 - 演算子の詳細な説明 (図)
MySQL の最適化 - 演算子の詳細な説明 (図)
安全な等号演算子 (96b4fef55684b9312718d5de63fb7121)
この演算子は = 演算子と同じ比較演算を実行しますが、<=> ; NULL 値を決定するために使用されます。
両方のオペランドが NULL の場合、戻り値は NULL ではなく 1 になります。
一方のオペランドが NULL の場合、戻り値は NULL ではなく 0 になります。
以下は SELECT NULL 96b4fef55684b9312718d5de63fb71211 SELECT196b4fef55684b9312718d5de63fb71210 SELECTNULL< ;=> NULL
両方のオペランドが NULL の場合、戻り値は NULL ではなく 1 になります。税形式記号
は次のとおりです: LEAST (値 1、値 2、...値 n)。ここで、値 n はパラメータ リストに n 個の値があることを示します。引数が2つ以上の場合は最小値を返します。いずれかの独立変数が NULL の場合、LEAST() の戻り値は NULL になります
LEAST 演算子を使用してサイズを決定します。SQL ステートメントは次のとおりです。結果から、パラメータが整数または浮動小数点数の場合、LEAST は最小値を返します
パラメータが文字列の場合、アルファベットの最上位の文字を返します
比較値リストでは、サイズを決定できません。戻り値は NULL ですGREATEST 演算子
構文形式は次のとおりです: GREATEST (値 1, 値 2,...値 n)、ここで、n は意味しますパラメータリストにはn個の値があります。
2つ以上のパラメータがある場合は、最大値を返します。
独立変数が NULL の場合、GREATEST() の戻り値は NULL になります
GREATEST 演算子を使用してサイズを決定します。SQL ステートメントは次のとおりです。
SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)
結果から、パラメータが整数または浮動小数点数の場合、GREATEST は最大値を返します。
パラメータが文字列の場合、アルファベット順の最後の文字が返されます。比較値リスト、サイズは決定できず、戻り値は NULL ですREGEXP 演算子
SQLSERVER には、この点に関しては確かに比較的完全な関数や演算子が使用されています。文字列と一致する場合の構文形式は次のとおりです: expr REGEXP 一致条件、expr が一致する場合は 1 を返します
一致しない場合は 0 を返します
expr または一致条件が NULL の場合、結果は NULL になります。
一般的に使用されるいくつかのワイルドカード:
文字の範囲には「-」を使用でき、「[a-z]」は任意の文字に一致し、「[0-9]」は任意の数字に一致します (5) 「*」はその前にある 0 個以上の文字に一致します。たとえば、「x*」は任意の数の「*」文字に一致し、「[0-9]*」は任意の数の数字に一致し、
および「.*」は任意の数の任意の文字に一致します。REGEXP 演算子を使用して文字列一致操作を実行します。 SQL ステートメントは次のとおりです。
SELECT GREATEST(2,0),GREATEST('a','b','c'),GREATEST(10,NULL)結果からわかるように、指定された一致文字列は ssky です。 '^s' は、文字 s で始まる任意の文字列と一致することを意味するため、一致条件が満たされ、1 が返されます。 'y$' は、文字 y で終わる任意の文字列を意味するため、一致条件が満たされます。そして 1 が返されます
'.sky'表示匹配任何以sky结尾,字符长度为4的字符串,因此满足匹配条件,返回1;
'^s'表示匹配任何以字母s开头的字符串,因此满足匹配条件,返回1;
'[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中没有字母a也没有字母b,因此不满足匹配条件,返回0;
注意:正则表达式是一个可以进行复杂查询的强大工具,相对于LIKE字符串匹配,他可以使用更多的通配符类型,查询结果更加灵活
逻辑运算符
逻辑与运算符:AND或者&&
逻辑或运算符:OR或者||
异或运算符:XOR
当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;
如果一个为0值,另一个为非0值,返回结果为1
使用异或运算符XOR进行逻辑判断,SQL语句如下
SELECT 1 XOR 1, 0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1
由结果可以看到‘1 XOR 1’和‘0 XOR 0’中运算符两边的操作数都为非零值,或者都是零值,因此返回0;
'1 XOR 0'中两边的操作数,一个为0值,另一个为非0值,返回结果为1;
'1 XOR NULL'中有一个操作数为NULL,返回结果为NULL;
'1 XOR 1 XOR 1'中有多个操作数,运算符相同,因此运算符从左到右依次计算,'1 XOR 1'的结果为0,再与1进行异或运算,因此结果为1。
注意: a XOR b的计算等同于(a AND (NOT b))或者(NOT a AND ( b))
位运算符
由于比较少用到,这里只做简单介绍
位运算符是用来对二进制字节中的位进行测试、移位或者测试处理
MYSQL中提供的位运算有
按位或(|)
按位与(&)
按位异或(^)
按位左移(63925bc6f8da241ea167fd1069c246ca>)
按位取反(~):反转所有比特
TIPS:可以使用BIN()=binary函数查看一个十进制数的二进制表示
例如20这个数字 SELECT BIN(20)
二进制表示为:10100
特别提示
某一些MYSQL中的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。
下面的特殊字符需要在输入时加反斜线符号开头
输入单引号需要:\'
输入双引号需要:\''
输入反斜杠:\\
输入回车符:\r
输入换行符:\n
输入制表符:\tab
输入退格符:\b
在插入这些特殊字符到数据库之前一定要进行转义处理
例如插入一个单引号,加了反斜杠,插入成功
INSERT INTO table_1(NAME) VALUES('\'') SELECT * FROM table_1
以上がMySQL の最適化 - 演算子の詳細な説明 (図)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。