1.单字段排序
select 字段... from 表名 order by 字段; // 默认是升序(在后面加desc可以指定为降序)
2.多字段排序
select 字段... from 表名 order by 字段1, 字段2(desc)... 先考虑前面的字段,如果前面的字段相等才会考虑后面的字段
3.单行处理函数(对字段的单个元素进行操作,互不影响)
upper 将元素中的字母全部转换成大写字母后输出 upper(字段)
lower 将元素中的字母全部转换成小写字母后输出 lower(字段)
// 需要注意的是mysql中下标是从1开始的
substr 取子串 substr(字段, 起始下标, 截取长度)
concat 进行字符串拼接 concat(字段1,字段2);
length 取长度 length(字段)
trim 去空格 trim('str'),str代指字符串,trim将其中的空格进行去除
round 四舍五入 round(数字, 保留小数位) 若为-1表示以10位为精度
rand 生成随机数 rand()
// 在数据库中,只要有null参与的数学运算最终结果就是null
ifnull 将null转换为一个具体值
ifnull(数据,被当成的值),当数据为null时将之当成一个指定值处理
case...when...then...when...then......else...end语句,给出一个实例:
如果表中有ename姓名,job工作,sal薪水三个字段,要求当job为某个条件时对薪水进行增加操作,则有:
select ename, job, sal as oldsal, (case job when 'manager' then sal *1.1 when 'saleman' then sal*1.5 else sal end) as newsal from emp;
表示从表中查询姓名字段,工作字段,薪水字段别名为之前的薪水,当工作时经理的时以薪水的1.1倍为新字段查询,当工作为销售员的时候薪水的1.5倍为新字段查询,其他情况还是以薪水为字段查询,并且起别名当前的薪水从员工表中进行查询