二超的MySQL笔记(三)超简洁

个人用户说明 {在MySQL下创建一个库名为data,在库的下面建表user;}

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| data               |
| dbtest             |
| mysql              |
| performance_schema |
| sqltestdb          |
| test               |
+--------------------+
7 rows in set (0.01 sec)
mysql> use data
Database changed
mysql> show tables;
+----------------+
| Tables_in_data |
+----------------+
| info           |
| user           |
+----------------+
2 rows in set (0.00 sec)

mysql> select * from info;
+----+--------+-------+
| id | uname  | upass |
+----+--------+-------+
|  1 | 李世龙 | 学生  |
|  2 | 孙久超 | 老师  |
|  3 | 赵欣源 | 可乐  |
+----+--------+-------+
3 rows in set (0.00 sec)

mysql> select * from user;
+----+---------------+------------+------+
| id | uname         | upass      | type |
+----+---------------+------------+------+
|  1 | admin         | admin      |    1 |
|  2 | 李思影        | lsy        |    2 |
|  3 | zhanghuaichao | 5201314    |    3 |
|  4 | wangpeng      | 1314520    |    4 |
|  5 | huawei        | qiling9000 |    5 |
+----+---------------+------------+------+
5 rows in set (0.00 sec)

一.case用法

案例:case是通过用户给定的条件来查询相应的结果,并且可以生成单独的队列。
用法:
mysql> select uname,
    -> case
    -> when type!="3" then "超级用户" else "普通用户"
    -> end as 用户类别
    -> from user;
+---------------+----------+
| uname         | 用户类别 |
+---------------+----------+
| admin         | 超级用户 |
| 李思影        | 超级用户 |
| zhanghuaichao | 普通用户 |
| wangpeng      | 超级用户 |
| huawei        | 超级用户 |
+---------------+----------+
5 rows in set (0.00 sec)

二.在原有字段增减值

案例:对表中的某一类型的值增加100
用法:select id,uname,upass,type+100 from user;
		  select id,uname,upass,type-100 from user;
例图:
mysql> select id,uname,upass,type-100 from user;
+----+---------------+------------+----------+
| id | uname         | upass      | type-100 |
+----+---------------+------------+----------+
|  1 | admin         | admin      |      -99 |
|  2 | 李思影        | lsy        |      -98 |
|  3 | zhanghuaichao | 5201314    |      -97 |
|  4 | wangpeng      | 1314520    |      -96 |
|  5 | huawei        | qiling9000 |      -95 |
+----+---------------+------------+----------+
5 rows in set (0.00 sec)

mysql> select id,uname,upass,type+100 from user;
+----+---------------+------------+----------+
| id | uname         | upass      | type+100 |
+----+---------------+------------+----------+
|  1 | admin         | admin      |      101 |
|  2 | 李思影        | lsy        |      102 |
|  3 | zhanghuaichao | 5201314    |      103 |
|  4 | wangpeng      | 1314520    |      104 |
|  5 | huawei        | qiling9000 |      105 |
+----+---------------+------------+----------+
5 rows in set (0.00 sec)

三.聚合函数

(1).count函数的使用
	案例:统计表中有几个id用户(*其统计时不会把值为null的计入*)
	用法:select count(id) from user
(2).max/min/sum/avg求最大值,最小值,总和,平均值
	案例:求表中type的最大值,最小值,总和,平均值
	用法:@1.select max(id) from user;
	          @2.select min(id) from user;
	          @3.select sum(id) from user;
	          @4.select avg(id) from user;
	例图:`		
mysql> select count(id) from user;
+-----------+
| count(id) |
+-----------+
|         5 |
+-----------+
1 row in set (0.00 sec)
mysql> select max(type) from user;
+-----------+
| max(type) |
+-----------+
|         5 |
+-----------+
1 row in set (0.00 sec)

mysql> select min(type) from user;
+-----------+
| min(type) |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)

mysql> select sum(id) from user;
+---------+
| sum(id) |
+---------+
|      15 |
+---------+
1 row in set (0.00 sec)

mysql> select avg(id) from user;
+---------+
| avg(id) |
+---------+
|  3.0000 |
+---------+
1 row in set (0.00 sec)`

四.where子句

(1).关系表达式:
	>(大于),>=(大于等于),<(小于),<=(小于等于),!=(不等于),<>()
(2).多条件连接符:
	and(和),or(或),[not](非),between A and B(A到B之间)
(3).集合操作
	>all(set)比所有的大,<all(set)比所有的小,>any(set):比任何一个大,<any(set):比任何一个小
(4).模糊查询:like
	_   : 占位符,表示匹配任意一个字符
	%  :表示匹配任意N个字符,大于等于0

实例图

mysql> select * from user where id="1" or type="4";
+----+----------+---------+------+
| id | uname    | upass   | type |
+----+----------+---------+------+
|  1 | admin    | admin   |    1 |
|  4 | wangpeng | 1314520 |    4 |
+----+----------+---------+------+
2 rows in set (0.00 sec)

mysql> select * from user where id in("1","4");
+----+----------+---------+------+
| id | uname    | upass   | type |
+----+----------+---------+------+
|  1 | admin    | admin   |    1 |
|  4 | wangpeng | 1314520 |    4 |
+----+----------+---------+------+
2 rows in set (0.00 sec)

mysql> select * from user where id not in("1","4");
+----+---------------+------------+------+
| id | uname         | upass      | type |
+----+---------------+------------+------+
|  2 | 李思影        | lsy        |    2 |
|  3 | zhanghuaichao | 5201314    |    3 |
|  5 | huawei        | qiling9000 |    5 |
+----+---------------+------------+------+
3 rows in set (0.00 sec)

mysql> select * from user where id>=2 and id<=4;
+----+---------------+---------+------+
| id | uname         | upass   | type |
+----+---------------+---------+------+
|  2 | 李思影        | lsy     |    2 |
|  3 | zhanghuaichao | 5201314 |    3 |
|  4 | wangpeng      | 1314520 |    4 |
+----+---------------+---------+------+
3 rows in set (0.00 sec)

mysql> select * from user where between 2 and 4;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'between 2 and 4' at line 1
mysql> select * from user where id between 2 and 4;
+----+---------------+---------+------+
| id | uname         | upass   | type |
+----+---------------+---------+------+
|  2 | 李思影        | lsy     |    2 |
|  3 | zhanghuaichao | 5201314 |    3 |
|  4 | wangpeng      | 1314520 |    4 |
+----+---------------+---------+------+
3 rows in set (0.00 sec)

mysql> select * from user where upass like"___";
+----+--------+-------+------+
| id | uname  | upass | type |
+----+--------+-------+------+
|  2 | 李思影 | lsy   |    2 |
+----+--------+-------+------+
1 row in set (0.00 sec)

mysql> select * from user where upass like"____";
Empty set (0.00 sec)

mysql> select * from user where upass like"z%";
Empty set (0.00 sec)

mysql> select * from user where uname like"z%";
+----+---------------+---------+------+
| id | uname         | upass   | type |
+----+---------------+---------+------+
|  3 | zhanghuaichao | 5201314 |    3 |
+----+---------------+---------+------+
1 row in set (0.00 sec)

mysql> select * from user where uname like"%g%";
+----+---------------+---------+------+
| id | uname         | upass   | type |
+----+---------------+---------+------+
|  3 | zhanghuaichao | 5201314 |    3 |
|  4 | wangpeng      | 1314520 |    4 |
+----+---------------+---------+------+
2 rows in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值