MySQL操作符
| 
					 1 2 3  | 
						简要介绍MySQL操作符   常用:     算术运算符、比较操作符、逻辑操作符、位运算符……  | 
					
| 
					 1 2 3 4 5 6  | 
						一、算术运算符   +:加   -:减   *:乘   /:除,返回商   %,mod():除,返回余数  | 
					
| 
					 1 2 3 4 5 6  | 
						mysql> select  3%2,mod(3,2); +------+----------+ | 3%2  | mod(3,2) | +------+----------+ |    1 |        1 | +------+----------+  | 
					
| 
					 1  | 
						注意:除法运算中,若除数为0(无意义),是非法除数,返回结果为null。  | 
					
| 
					 1 2 3 4 5  | 
						二、比较操作符   ---利用比较操作符在DQL语句中实现按条件的检索 <img src="/blog/6253a40837bce.png" alt="" width="595" height="524" /> 示例用表:球员信息表player、比赛信息表matches <img src="/blog/6253a4089dab0.png" alt="" />  | 
					
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  | 
						1、获得联盟会员号码为7060的球员信息 mysql> select * from player where leagueno=’7060’; 2、获得没有联盟会员号码的球员信息 mysql> select * from player where leagueno=null; error……报错 mysql> select * from player where leagueno <=> null; 或 mysql> select * from player where leagueno is null; “<=>”安全的等于运算符:和“=”类似,在操作数相等时值为 1,不同之处在于即使 操作的值为 NULL 也可以正确比较。 3、找出获胜局数等于2且输掉局数等于3的比赛信息 条件中可以进行列值的成对比较 mysql> select * from matches where (won,lost)=(2,3); 注意:条件(2,4)>(1,3)并不等于(2>1) and (4>3),而是等于(2>1) or (2=1 and 4>3) <img src="/blog/6253a408e63be.png" alt="" width="263" height="429" /> 说明:使用不同运算符的成对比较在转换为标量表达式比较时,都有各自的转换规则。 4、between的范围比较:使用BETWEEN …AND… 操作符可以测试列值是否在一个取值范围之内  例:找出1962—1964年之间出生的球员的编号、出生日期 mysql> select playerno,birth_date from players where birth_date between '1962-01-01' and '1964-01-01'; 5、in操作符:测试一个列值是否在一个值列表中(值列表中可以是字面量、列或标量子查询)  例1:得到那些出生在1962、1963或1970的球员的编号、出生年份 mysql> select playerno,year(birth_date) from players where year(birth_date) in (1962,1963,1970); 例2:两局获胜或者两局输掉的所有比赛 mysql> select * from matches where 2 in (won,lost); 例3:比分为3比1和3比2的所有比赛(in的成对比较) mysql> select * from matches where (won,lost) in ((3,1),(3,2)); 说明:在MySQL内部,in转换成or操作,not in转换成and操作 6、 like操作符:实现模式匹配查询或者模糊查询 like “匹配模式字符串”测试一个列值是否匹配给出的模式 特殊含义的通配字符:   %:表示0个或者任意多个字符   _:只表示一个任意字符 例1:找出名字以大写字母B开头的球员 mysql> select * from players where name like ‘B%’; 例2:得到名字以小写字母r结尾的球员 mysql> select * from players where name like ‘%r’; 例3:得到名字的第二个字母为e的球员的名字和编号 mysql> select name,playerno from players where name like ‘_e%’; 例4:找出名字中包含一个下划线的球员 mysql> select playerno,name from players where name like ‘%/_%’ escape ‘/’; 注意:如果转义字符指定反斜杠,必须是escape ‘\’(反斜杠在进行模式匹配时,会被剥离一次) 例如: mysql> select * from table_name where col_name like ‘%\%’ escape ‘\’;  | 
					
| 
					 1  | 
						##反斜杠会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜杠接受匹配.  | 
					
| 
					 1 2 3  | 
						7、regexp操作符(regular expression)   --比like功能更加强大---正则 <img src="/blog/6253a40932e4c.png" alt="" width="838" height="647" />  | 
					
| 
					 1 2 3 4 5 6 7 8  | 
						例1:得到名字以ba开头的球员信息 mysql> select * from players where name regexp '^ba'; 例2:得到名字包含了字母a、b或c的球员信息 mysql> select * from players where name regexp '[abc]'; 例3:对于名字中有字母m、e、n中的一个,并且连续出现2次的球员信息 mysql> select * from players where name regexp '[men][men]';  | 
					
| 
					 1  | 
						
| 
					 1 2 3  | 
						三、逻辑操作符   ---逻辑运算符又称为布尔运算符,用来确认表达式的真和假 <img src="/blog/6253a40973f8d.png" alt="" width="733" height="511" />  | 
					
| 
					 1 2  | 
						  如果在where中同时用到了and 和or运算符,先算and后算or,因为and优先级高;   可以使用小圆括号来改变运算的顺序。  | 
					
| 
					 1 2 3 4 5  | 
						例1: 得到那些住在Stratford或者出生于1963年的球员的编号、姓名、出生日期,但是不包括那些住在Stratford并且出生于1963年的球员 mysql> select playerno,name,birth_date from players where (town='Stratford' or year(birth_date)='1963') and not (town='Stratford' or year(birth_date)='1963'); 例2:得到那些住在Stratford或者出生于1963年的球员的编号、姓名、出生日期,但是不包括那些住在Stratford并且出生于1963年的球员 mysql> select playerno,name,birth_date from players where (town='Stratford') xor (year(birth_date)='1963');  | 
					
| 
					 1  | 
						
| 
					 1 2 3  | 
						四、位运算符     ---位运算是将给定的操作数转化为二进制后, 对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果 <img src="/blog/6253a409b3dbb.png" alt="" />  | 
					
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						mysql> SELECT 29 & 15; +---------+ | 29 & 15 | +---------+ |      13 | +---------+ 1 row in set (0.01 sec) mysql> SELECT 1 << 2; +--------+ | 1 << 2 | +--------+ |      4 | +--------+ 1 row in set (0.00 sec)  | 
					
| 
					 1  | 
						位运算符其实也就是位函数,通过mysql> ? Bit Functions了解使用,用得不多,但是要有个印象,要用的时候查看帮助  | 
					
@author:http://www.cnblogs.com/geaozhang/