走进MySQL(3)

接上篇文章查询

写在最前,本篇文章大部分来源于动力节点MySQL入门基础的提炼,并附带自己的理解。主要是为了复习此前学了又忘的数据库。如果同时还能对其他人有所裨益,那就更好不过了。如果有谬误的地方,还请不吝指出。

排序

排序指令:order by, 默认升序(但也可加asc指定升序)

mysql> select sal from emp order by sal
    -> ;
+---------+
| sal     |
+---------+
|  800.00 |
|  950.00 |
| 1100.00 |
| 1250.00 |
| 1250.00 |
| 1300.00 |
+---------+

降序:在后面加 desc

mysql> select sal from emp order by sal desc;
+---------+
| sal     |
+---------+
| 1300.00 |
| 1250.00 |
| 1250.00 |
| 1100.00 |
|  950.00 |
|  800.00 |
+---------+

多字段排序

比如:薪资为第一次序,名字为第二次序。

mysql> select ename, sal from emp order by sal,ename;

按代码顺序来排列

按字段位置排序(了解)

select sal from emp order by 2按列数排序,但并不健壮。

综合条件排序

mysql>  select ename,sal from emp where sal between 1250 and 3000 order by sal;
+--------+---------+
| ename  | sal     |
+--------+---------+
| WARD   | 1250.00 |
| MARTIN | 1250.00 |
| MILLER | 1300.00 |
| TURNER | 1500.00 |
| ALLEN  | 1600.00 |
| CLARK  | 2450.00 |
| BLAKE  | 2850.00 |
| JONES  | 2975.00 |
| SCOTT  | 3000.00 |
| FORD   | 3000.00 |
+--------+---------+

注意:不能改换order bywhere的顺序,排序总是在最后执行。

数据处理函数

又被称为单行处理函数
特点:一个输入(一条记录)对应一个输出

多行处理函数:多个输入(多条记录)对应一个输出,例如sum函数

常见单行处理函数

lower 转为小写,upper转为大写
注意:字段名本身也会改名,使用as关键字更改别名。

substr 取子串,substr(source, 起始下标, 截取长度),注意起始下标为1而不为0。

length字符串长度

trim 去空格

select后面如果跟着的是字面量(字符串和数值),会根据表的row的数量来生成一个表,比如

mysql> select 'abc' from emp;
+-----+
| abc |
+-----+
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
| abc |
+-----+

也就是说可以通过函数手动生成一个表

rand生成0-1的随机数

round 第一个参数为表名(或数字),第二个参数为保留小数的个数(-1则会保留到整数部分,以此类推)

通过ifnull可以避免null+其他值为null的情况。第一个参数为字段,第二个参数为将null替换的值

case条件显示,模拟if语句,可以匹配某一个字段的列,并根据某个条件来显示,比如:

mysql> select ename, job, sal, (case job when 'manager' then sal*100 else sal end) as new_sal from emp;
+--------+-----------+---------+-----------+
| ename  | job       | sal     | new_sal   |
+--------+-----------+---------+-----------+
| SMITH  | CLERK     |  800.00 |    800.00 |
| ALLEN  | SALESMAN  | 1600.00 |   1600.00 |
| WARD   | SALESMAN  | 1250.00 |   1250.00 |
| JONES  | MANAGER   | 2975.00 | 297500.00 |
| MARTIN | SALESMAN  | 1250.00 |   1250.00 |
| BLAKE  | MANAGER   | 2850.00 | 285000.00 |
| CLARK  | MANAGER   | 2450.00 | 245000.00 |
| SCOTT  | ANALYST   | 3000.00 |   3000.00 |
| KING   | PRESIDENT | 5000.00 |   5000.00 |
| TURNER | SALESMAN  | 1500.00 |   1500.00 |
| ADAMS  | CLERK     | 1100.00 |   1100.00 |
| JAMES  | CLERK     |  950.00 |    950.00 |
| FORD   | ANALYST   | 3000.00 |   3000.00 |
| MILLER | CLERK     | 1300.00 |   1300.00 |
+--------+-----------+---------+-----------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值