005 运算null 排序 模糊查询 聚合函数

 

 

/*
时间:2020/09/09
功能:
    一 运算有null
    二 排序:
    三 模糊查询
    四 聚合函数  
*/              

 


一 运算有null

select ename "姓名", sal "月收入", sal * 12 + isnull(comm, 0) "年收入"
    from emp

 

 

二 排序:

/*
    order by:
        1 顺序: 升序 order by; 降序 order by desc 
        2 条件: 单个 组合
*/

 

-- 升序
select sal 
    from emp
    order by sal

-- 降序
select sal 
    from emp
    order by sal desc

-- 升序 + 降序
select ename, deptno, sal
    from emp
    order by deptno, sal desc

 

 

三 模糊查询

-- 模糊查询
select ename
    from emp
    where ename like '%a%'    -- 字符串含a

select ename
    from emp
    where ename like '%'    -- 全部输入

select ename
    from emp
    where ename like '%.%'    -- 字符串含.

 

 

select ename
    from emp
    where ename like 'A%'    -- A字母开头

select ename
    from emp
    where ename like '%S'    -- S字母结尾

select ename
    from emp
    where ename like '_A%'    -- 第二个字符为a

 

 

select ename
    from emp
    where ename like '[a-f]%'    -- 第一个字符为任意字符: a b c d e f
    order by ename                -- 排序: 升序

select ename
    from emp
    where ename like '[a, f]%'    -- 第一个字符为: a或f
    order by ename desc            -- 排序: 降序

select ename
    from emp
    where ename like '[^a-g]%'    -- 第一个字符: 不是a到g之间
    order by ename                 -- 排序: 升序

select ename
    from emp
    where ename like '[^a, s]%'    -- 第一个字符: 不是a或s之间
    order by ename                 -- 排序: 升序

 

 

insert into emp(empno, ename) values (8762, 'kkk')
insert into emp(empno, ename) values (8763, 'c%d')
insert into emp(empno, ename) values (8764, 'd_d')
insert into emp(empno, ename) values (8765, 'e$')
insert into emp(empno, ename) values (8766, 'f%*d')
insert into emp(empno, ename) values (8767, 'f_%*d\%')

-- 转义字符
select ename
    from emp
    where ename like '%\%%' escape '\'

select ename
    from emp
    where ename like '%\$%' escape '$'

 

 

四 聚合函数

-- 聚合函数
-- 多行函数
select lower(ename), upper(ename)-- 字符串: 小写 大写
    from emp

 

 

 

-- 单行函数
select max(sal) "最高工资", min(sal) "最低工资", 
    round(avg(sal), 2) "平均工资" -- 保留两位小数
    from emp

select count(*) "总共行数"
    from emp

select count(deptno) "部门个数"    -- 没有去重
    from emp

select count(distinct(deptno)) "部门个数"    -- 去重
    from emp

select count(comm) "奖金"    -- 过滤 null
    from emp

 

posted @ 2020-09-09 13:56  火焰马  阅读(199)  评论(0编辑  收藏  举报