数据库:基础笔记3

#进阶三:排序查询
/*
语法
select
     查询列表 3
from
    表名  1
根据实际需要可以加 where 筛选条件  2
order by 排序列表 asc(升序)|desc(降序)4
特点
 1,  如果不写默认是升序
 2,排序列表支持单个字段,多个字段,表达式,函数,别名
 3,排序列表一般放在查询语句的最后面,limit子句除外
  
*/
#案例:查询工资升序排列后员工信息
SELECT
     *
FROM
    employees
ORDER BY 
       salary
ASC;
#案例:查询工资降序排列后员工信息
SELECT
       *
FROM
    employees
ORDER BY
       salary
DESC;
#-------------------------
#案例:查询部门编号 >= 90的员工信息,按入职时间的先后排序显示
SELECT
     *
FROM
     employees
WHERE
     department_id >= 90
ORDER BY
      hiredate
ASC;
#------------------------------------------
#案例3:按年薪的高低显示员工的信息和年薪[按表达式排]
SELECT
      *,
       salary * 12 * (1 + IFNULL(commission_pct,0)) AS 年薪
FROM 
     employees
ORDER BY
       salary * 12 * (1 + IFNULL(commission_pct,0))
DESC;
#案例3:按年薪的高低显示员工的信息和年薪[按别名排]
SELECT
      *,
       salary * 12 * (1 + IFNULL(commission_pct,0)) AS 年薪
FROM 
     employees
ORDER BY
       年薪
DESC;
#--------------------------------
#案例5:按姓名长度显示员工姓名和工资[按函数排序]
SELECT
     LENGTH(last_name) AS 长度,
     last_name,
     salary
FROM 
    employees
ORDER BY
       LENGTH(last_name)
ASC;
#------------------------------
#案例6:查询员工信息要求先按工资从小到大排序,再按员工标号排序[从大到下]
SELECT 
      *
FROM
     employees
ORDER BY 
       salary
ASC,
         manager_id
DESC;
#进阶4:常见函数
/*
概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
优点:1,隐藏了实现细节;2,提高代码的重用性
调用;select 函数名(实参列表) {from 表名}
特点
      1,函数名;2,函数功能
分类
   1,单行函数
    如 concat length....
   2,分组函数
   功能做统计使用,又称为统计函数,聚合函数,组函数
*/
#字符函数
#1,length 获取参数值的字节个数
SELECT
      LENGTH('asdfg');
SELECT 
      LENGTH('无语而已');#在mysql中一个汉子占3个字节
#--------------
#2,concat 拼接函数
SELECT
     CONCAT('1234','456');
#-------------
#3,变成大写用upper函数,变成小写lower()函数
SELECT
      UPPER('asd');
SELECT
     LOWER('YUI');
#------------------
#4,substr或则substring截取
#注意下标从1开始
SELECT
      SUBSTR('1234567',5) AS number;
SELECT
     SUBSTR('12345678',1,3) AS number;
#案例,姓名首字母大写,其他小写然后拼接显示
SELECT
     CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) AS 名字
FROM
    employees;#函数可以嵌套使用的
#instr:返回值字串在大的主串中的下标,如果找不到返回0
SELECT`performance_schema``performance_schema`
     INSTR('1234567','567');
#------------------------------------------
#trim 去除前后指定字符,默认去除空格
SELECT
      LENGTH(TRIM('    123      '));
SELECT
      TRIM('a' FROM 'aaaaaaaaaaaaaaaaa12a3aaaaaaaaaaaaa');
#------------------------------------
#lpad,用指定的字符实现左填充指定长度
SELECT
     LPAD('123',4,'*') AS out_ptr;#长度比实际长度小就从右边开始清除
#rpad,用指定的字符实现右填充指定长度
SELECT
     RPAD('123',2,'*') AS out_ptr;#长度比实际长度小就从右边开始清除
#-----------------------------------
#替换 replace
SELECT 
     REPLACE('123112233','1','0');
SELECT
     last_name
FROM
    employees;

 

你可能感兴趣的:(MySQL数据库)