>  기사  >  데이터 베이스  >  MySQL 최적화 - 연산자에 대한 자세한 설명(그림)

MySQL 최적화 - 연산자에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2017-03-10 10:02:221002검색

MySQL 최적화 - 연산자 상세 설명(그림)

안전한 등호 연산자(96b4fef55684b9312718d5de63fb7121)

이 연산자는 = 연산자와 동일한 비교 연산을 수행하지만 96b4fef55684b9312718d5de63fb7121를 사용하여 NULL 값을 결정할 수 있습니다.

두 피연산자가 모두 NULL인 경우 반환 값은 NULL 대신 1입니다.

한 피연산자가 NULL인 경우 반환 값은 NULL 대신 0입니다.

다음은 SELECT NULL 96b4fef55684b9312718d5de63fb71211 SELECT196b4fef55684b9312718d5de63fb71210 SELECTNULL96b4fef55684b9312718d5de63fb7121NULL

의 실행 결과는 두 피연산자가 모두 NULL인 경우 반환 값은 NULL이 아닌 1입니다.

구문 형식은 LEAST(값 1, 값 2,...값 n)입니다. 여기서 n 값은 매개변수 목록에 n개의 값이 있음을 나타냅니다. 인수가 2개 이상인 경우 최소값을 반환합니다.

독립 변수가 NULL이면 LEAST()의 반환 값은 NULL입니다

LEAST 연산자를 사용하여 크기를 결정하는 SQL 문은 다음과 같습니다.


SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)

결과에서 볼 수 있듯이 매개변수가 정수 또는 부동 소수점 숫자인 경우 LEAST는

매개변수가 문자열인 경우 알파벳 순서가 가장 높은 문자를 반환합니다.

비교값 목록에 NULL이 있는 경우 크기를 알 수 없으며 반환값이 반환됩니다. NULL

GREATEST 연산자

구문 형식은 GREATEST(값 1, 값 2,...값 n)입니다. 여기서 n 매개변수 목록에 n개의 값이 있다는 뜻입니다.

2개 이상의 인수를 사용하면 최대값을 반환합니다.

독립 변수가 NULL이면 GREATEST()의 반환 값은 NULL입니다

GREATEST 연산자를 사용하여 크기를 결정하는 SQL 문은 다음과 같습니다.

SELECT GREATEST(2,0),GREATEST('a','b','c'),GREATEST(10,NULL)

결과에서 볼 수 있듯이 매개변수가 정수 또는 부동 소수점 숫자인 경우 GREATEST는 가장 큰 값을 반환합니다. >

파라미터가 문자열인 경우 알파벳순으로 마지막 문자를 반환합니다.

비교값 목록에 NULL이 있는 경우 크기를 알 수 없고 반환값이 NULL입니다. 🎜>

REGEXP 연산자


SQLSERVER에는 실제로 이와 관련하여 일반적인 함수나 연산자가 없습니다.


은 문자열 일치에 사용되며 구문 형식은 다음과 같습니다. expr REGEXP 일치 조건, expr이 일치 조건을 충족하면 1을 반환합니다.

충족하지 않으면 0을 반환합니다. 🎜>expr 또는 일치 조건이 NULL이면 결과는 NULL입니다.

일반적으로 사용되는 여러 와일드카드 문자:

(1) '^'는 이 문자 뒤의 문자로 시작하는 문자열과 일치합니다.

(2)' $'는 이 문자 뒤의 문자로 끝나는 문자열과 일치합니다. (3) '.'은 단일 문자와 일치합니다 (4) '[. ..]'는 대괄호 안에 있는 모든 문자와 일치합니다. 예를 들어 "[abc]"는 a, b 또는 c와 일치합니다.

문자 범위는 '-'를 사용할 수 있으며, "[a-z]"는 모든 문자와 일치하고 "[0-9]"는 모든 숫자와 일치합니다. (5) '*'는 모든 숫자와 일치합니다. 앞에 하나 이상의 문자가 0입니다. 예를 들어, "x*"는 임의 개수의 '*' 문자와 일치하고, "[0-9]*"는 임의 개수의 자릿수와 일치하고,

및 ".*"는 임의 개수의 임의 문자와 일치합니다.

REGEXP 연산자를 사용하여 문자열 일치 작업을 수행합니다. SQL 문은 다음과 같습니다.

SELECT 'ssky' REGEXP '^s','ssky' REGEXP 'y$' ,'ssky' REGEXP '.sky','ssky' REGEXP '[ab]';

결과에서 볼 수 있듯이 지정된 일치 문자열은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.