Mysql运算符使用实战

一 实战需求

创建数据表,并对表中的数据进行运算操作,掌握各种运算符的使用方法。

创建表tmp15,其中包含VARCHAR类型的字段note和INT类型的字段price,使用运算符对表tmp15中不同的字段进行运算;使用逻辑操作符对数据进行逻辑操作;使用位操作符对数据进行位操作。

使用数据表tmp15,首先创建该表,SQL语句如下:

mysql> CREATE TABLE tmp15 (note VARCHAR(100), price INT);
Query OK, 0 rows affected (0.31 sec)

向表中插入一条记录,note值为“Thisisgood”,price值为50,SQL语句如下:

mysql> INSERT INTO tmp15 VALUES("Thisisgood", 50);
Query OK, 1 row affected (0.04 sec)

二 操作过程

对表tmp15中的整型数值字段price进行算术运算,执行过程如下:

mysql> SELECT price, price + 10, price -10, price * 2, price /2, price%3 FROM tmp15 ;
+-------+------------+-----------+-----------+----------+---------+
| price | price + 10 | price -10 | price * 2 | price /2 | price%3 |
+-------+------------+-----------+-----------+----------+---------+
|    50 |         60 |        40 |       100 |  25.0000 |       2 |
+-------+------------+-----------+-----------+----------+---------+
1 row in set (0.00 sec)

对表tmp15中的整型数值字段price进行比较运算,执行过程如下:

mysql> SELECT price, price> 10, price<10, price != 10, price =10, price <=>10,price <>10 FROM tmp15 ;
+-------+-----------+----------+-------------+-----------+-------------+------------+
| price | price> 10 | price<10 | price != 10 | price =10 | price <=>10 | price <>10 |
+-------+-----------+----------+-------------+-----------+-------------+------------+
|    50 |         1 |        0 |           1 |         0 |           0 |          1 |
+-------+-----------+----------+-------------+-----------+-------------+------------+
1 row in set (0.00 sec)

判断price值是否落在30~80区间;返回与70,30相比最大的值,判断price是否为IN列表(10, 20, 50, 35)中的某个值,执行过程如下:

mysql> SELECT price, price BETWEEN 30 AND 80, GREATEST(price, 70,30), price IN (10, 20, 50,35) FROM tmp15 ;
+-------+-------------------------+------------------------+--------------------------+
| price | price BETWEEN 30 AND 80 | GREATEST(price, 70,30) | price IN (10, 20, 50,35) |
+-------+-------------------------+------------------------+--------------------------+
|    50 |                       1 |                     70 |                        1 |
+-------+-------------------------+------------------------+--------------------------+
1 row in set (0.00 sec)

对tmp15中的字符串数值字段note进行比较运算,判断表tmp15中note字段是否为空;使用LIKE判断是否以字母’t’开头;使用REGEXP判断是否以字母’y’结尾;判断是否包含字母’g’或者’m’,执行过程如下:

mysql> SELECT note, note IS NULL, note LIKE 't%', note REGEXP '$y' ,note REGEXP '[gm]' FROM tmp15 ;
+------------+--------------+----------------+------------------+--------------------+
| note       | note IS NULL | note LIKE 't%' | note REGEXP '$y' | note REGEXP '[gm]' |
+------------+--------------+----------------+------------------+--------------------+
| Thisisgood |            0 |              1 |                0 |                  1 |
+------------+--------------+----------------+------------------+--------------------+
1 row in set (0.00 sec)

将price字段值与NULL,0进行逻辑运算,执行过程如下:

mysql> SELECT price, price && 1, price && NULL, price||0, price AND 0, 0 AND NULL, price OR NULL FROM tmp15 ;
+-------+------------+---------------+----------+-------------+------------+---------------+
| price | price && 1 | price && NULL | price||0 | price AND 0 | 0 AND NULL | price OR NULL |
+-------+------------+---------------+----------+-------------+------------+---------------+
|    50 |          1 |          NULL |        1 |           0 |          0 |             1 |
+-------+------------+---------------+----------+-------------+------------+---------------+
1 row in set (0.00 sec)


mysql>  SELECT price,!price,NOT NULL,price XOR 3, 0 XOR NULL, price XOR 0 FROM tmp15 ;
+-------+--------+----------+-------------+------------+-------------+
| price | !price | NOT NULL | price XOR 3 | 0 XOR NULL | price XOR 0 |
+-------+--------+----------+-------------+------------+-------------+
|    50 |      0 |     NULL |           0 |       NULL |           1 |
+-------+--------+----------+-------------+------------+-------------+
1 row in set (0.00 sec)

将price字段值与2、4进行按位与、按位或操作,并对price进行按位操作,执行过程如下:

mysql> SELECT price, price&2 , price|4, ~price FROM tmp15 ;
+-------+---------+---------+----------------------+
| price | price&2 | price|4 | ~price               |
+-------+---------+---------+----------------------+
|    50 |       2 |      54 | 18446744073709551565 |
+-------+---------+---------+----------------------+
1 row in set (0.00 sec)

将price字段值分别左移和右移两位,执行过程如下:

mysql> SELECT price, price<<2, price>>2  FROM tmp15 ;
+-------+----------+----------+
| price | price<<2 | price>>2 |
+-------+----------+----------+
|    50 |      200 |       12 |
+-------+----------+----------+
1 row in set (0.00 sec)

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值