Maison  >  Article  >  base de données  >  Optimisation MySQL : explication détaillée des opérateurs (image)

Optimisation MySQL : explication détaillée des opérateurs (image)

黄舟
黄舟original
2017-03-10 10:02:221003parcourir

Optimisation MySQL - explication détaillée des opérateurs (photo)

Opérateur égal sûr (96b4fef55684b9312718d5de63fb7121)

Cet opérateur effectue la même opération de comparaison que l'opérateur =, mais 96b4fef55684b9312718d5de63fb7121

Lorsque les deux opérandes sont NULL, la valeur de retour est 1 au lieu de NULL ;

Lorsqu'un opérande est NULL, la valeur de retour est 0 au lieu de NULL .

Les éléments suivants sont SELECT NULL 96b4fef55684b9312718d5de63fb71211 SELECT196b4fef55684b9312718d5de63fb71210 SELECTNULL96b4fef55684b9312718d5de63fb7121NULL Le résultat de l'exécution de

est que lorsque les deux opérandes sont NULL, la valeur de retour est 1 au lieu de NULL ;

Le format de syntaxe est : MOINS (valeur 1, valeur 2,...valeur n), où la valeur n indique qu'il y a n valeurs dans la liste des paramètres. Dans le cas de deux arguments ou plus, renvoie la valeur minimale.

Si une variable indépendante est NULL, la valeur de retour de LEAST() est NULL

Utilisez l'opérateur LEAST pour déterminer la taille :


Comme vous pouvez le voir d'après les résultats, lorsque le paramètre est un nombre entier ou à virgule flottante, LEAST renverra la plus petite valeur ;

Lorsque le paramètre est une chaîne, le caractère ayant le rang le plus élevé dans l'alphabet est renvoyé ;

Lorsqu'il y a NULL dans la liste des valeurs de comparaison, la taille ne peut pas être déterminée et le retour la valeur est NULL

Opérateur GREATEST
SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)

Le format de syntaxe est : GREATEST(valeur 1, valeur 2,...valeur n), où n signifie qu'il y a n valeurs dans la liste des paramètres.

Avec deux arguments ou plus, renvoie la valeur maximale.

Si une variable indépendante est NULL, la valeur de retour de GREATEST() est NULL

Utilisez l'opérateur GREATEST pour déterminer la taille :

Comme vous pouvez le voir d'après les résultats, lorsque le paramètre est un nombre entier ou à virgule flottante, GREATEST renverra la plus grande valeur ;

Lorsque le paramètre est une chaîne, le dernier caractère de l'ordre alphabétique est renvoyé ;

Lorsqu'il y a NULL dans la liste des valeurs de comparaison, la taille ne peut pas être déterminée et la valeur de retour est NULL

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

Opérateur REGEXP


Il n'y a pas de fonction ou d'opérateur régulier dans SQLSERVER qui est en effet relativement complet à cet égard.

Utiliser Pour faire correspondre une chaîne, le format de syntaxe est : expr REGEXP matching condition. Si expr remplit la condition de correspondance, renvoie 1 ;

Si ce n'est pas le cas, renvoie 0 ; >

Si expr ou la condition de correspondance est NULL, le résultat est NULL

Plusieurs caractères génériques couramment utilisés : (1) '^' correspond à une chaîne commençant par le caractère après ce caractère (2 ) '$' correspond à une chaîne se terminant par le caractère après ce caractère

(3) '.' correspond à n'importe quel caractère (4 ) « [...] » correspond à tous les caractères entre crochets. Par exemple, "[abc]" correspond à a, b ou c. La plage de caractères

peut utiliser un '-', "[a-z]" correspond à n'importe quelle lettre et "[0-9]" correspond à n'importe quel nombre

(5) '*' correspond zéro un ou plusieurs caractères le précédant. Par exemple, "x*" correspond à n'importe quel nombre de caractères "*", "[0-9]*" correspond à n'importe quel nombre de chiffres,

et ".*" correspond à n'importe quel nombre de caractères.

Utilisez l'opérateur REGEXP pour effectuer des opérations de correspondance de chaînes. L'instruction SQL est la suivante :

Comme vous pouvez le voir dans les résultats, la chaîne correspondante spécifiée est ssky.

'^s' signifie correspondre à n'importe quelle chaîne commençant par la lettre s, donc la condition de correspondance est remplie et 1 est renvoyé

'y$' signifie correspondre à n'importe quelle chaîne se terminant par la lettre y ; , Par conséquent, la condition de correspondance est remplie et 1 est renvoyé

;

'.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



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn