备注:当Null与Null用<比较的时候仍然返回NULL【例5.34】使用‘>=’进行比较判断,SQL语句如下:
SELECT 'good'>='god', 1>=2, 4>=4, 5.5>=5, (1+3) >= (2+1),NULL>=NULL;
备注:当Null与Null用>=比较的时候仍然返回NULL
【例5.35】使用‘>’进行比较判断,SQL语句如下:
SELECT 'good'>'god', 1>2, 4>4, 5.5>5, (1+3) > (2+1),NULL>NULL;
备注:当Null与Null用>比较的时候仍然返回NULL
总结:null与null比较 除了安全等于的比较返回为1(真)其他情况下返回NULL
【例5.36】使用IS NULL,ISNULL和IS NOT NULL判断NULL值和非NULL值,SQL语句如下:
SELECT NULL IS NULL, ISNULL(NULL),ISNULL(10), 10 IS NOT NULL;
备注:null 和null 使用is 返回1(真)
【例5.37】使用BETWEEN AND 进行值区间判断,输入SQL语句如下:
SELECT 4 BETWEEN 4 AND 6, 8 BETWEEN 6 AND 8,12 BETWEEN 9 AND 10;
【例5.38】使用LEAST运算符进行大小判断,SQL语句如下:
SELECT least(2,0), least(20.0,3.0,100.5), least('a','c','b'),least(10,NULL);
备注:语法:least(值1,值2,值3)返回最小值 有一个为空,返回空值
【例5.39】使用GREATEST运算符进行大小判断,SQL语句如下:
SELECT greatest(2,0), greatest(20.0,3.0,100.5),
greatest('a','c','b'),greatest(10,NULL);
备注:语法:greatest(值1,值2,值3)返回最大值 有一个为空,返回空值
【例5.40】使用IN,NOT IN运算符进行判断,SQL语句如下:
SELECT 2 IN (1,3,5,'thks'), 'thks' IN (1,3,5,'thks');
备注:当在左侧表达式为null的情况下,或者表中找不到匹配项返回null
【例5.41】存在NULL值时的IN查询,SQL语句如下:
SELECT NULL IN (1,3,5,'thks'),10 IN (1,3,NULL,'thks');
备注:当使用in时null在左侧无论右侧组中是否有null都返回null,
当左侧不为空,右侧组中有空值,左侧存在于组中返回1,不存在返回null
左侧和右侧组中都不是null,存在返回1,不存在返回0
【例5.42】使用运算符LIKE进行字符串匹配运算,SQL语句如下:
SELECT 'stud' LIKE 'stud', 'stud' LIKE 'stu_','stud' LIKE '%d','stud' LIKE 't_ _ _', 's' LIKE NULL;
备注:%匹配任何书目的字符,_只匹配一个字符
【例5.43】使用运算符REGEXP进行字符串匹配运算,SQL语句如下:
SELECT 'ssky' REGEXP '^s', 'ssky' REGEXP 'y$', 'ssky' REGEXP '.sky', 'ssky' REGEXP '[ab]';
备注:regexp运算符用来匹配字符串
【例5.44】分别使用非运算符“NOT”和“!”进行逻辑判断,SQL语句如下:
SELECT NOT 10, NOT (1-1), NOT -5, NOT NULL, NOT 1 + 1;
备注:当操作数是0时所得值是1,当操作数位非0时所得值也是0当操作数位null所得值为空
【例5.45】分别使用与运算符“AND”和“&&”进行逻辑判断,SQL语句如下:
SELECT 1 AND -1,1 AND 0,1 AND NULL, 0 AND NULL;
备注:当一个或者多个操作数为0时,所得结果为0,其余情况返回null
【例5.46】分别使用或运算符“OR”和“||”进行逻辑判断,SQL语句如下:
SELECT 1 OR -1 OR 0, 1 OR 2,1 OR NULL, 0 OR NULL, NULL OR NULL;
备注:有null但没有非0值时返回null 都是null返回null
非0 和非null都可以看做为true,只有0为false
【例5.47】使用异或运算符“XOR”进行逻辑判断,SQL语句如下:
SELECT 1 XOR 1, 0 XOR 0, 1 XOR 0, 1 XOR NULL, 1 XOR 1 XOR 1;
备注:a xor b相当于 (a and (not b))或者((not a)and b)
习题:创建表 tmp15 其中包括varchar类型的字段note 和int类型的字段price ,使用运算
符对表中不同的字段进行计算;使用逻辑操作符对数据进行逻辑操作;
1.对tmp15表中的整数值字段price进行算术运算
2.对tmp15中的整型数值字段price进行比较运算
3.判断price值是否落在30~80区间;返回与70,30相比最大的值,判断price是否为IN列表(10, 20, 50, 35)中的某个值
4..对tmp15中的字符串数值字段note进行比较运算,判断表tmp15中note字段是否为空;使用LIKE判断是否以字母'd'开头;使用REGEXP判断是否以字母'y'尾;判断
是否包含字母'g'或者'm'
5.将price字段值与NULL,0进行逻辑运算