Oracle

列别名:
当SELECT子句中一个字段是函数或者表达式,那么在结果集中该字段的名字就是这个函数或表达式,可读性差,为此可以为列提供一个别名,这样在结果集中会使用该别名作为该字段的名字。应当养成一个好习惯,即:凡是表达式或函数都指定一个别名。

别名本身不区分大小写,若希望别名区分大小写或者别名中包含空格,那么需要使用双引号将其括起来。
SELECT ename,sal+NVL(comm,0) "sal"FROM emp


OR,AND用于连接多个条件使用:
OR的优先级低于AND,所以若希望提高OR的优先级,可以使用括号。查看工资高于1000,并且职位是CLERK或者SALESMAN的员工?

SELECT  
    ename,job,sal
FROM 
    emp
WHERE 
    sal>1000
AND 
    (job='SALESMAN' OR job='CLERK')

LIKE用于模糊匹配字符串支持两个通配符:
       %:0-多个字符(任意个字符)
        _:单一的一个字符

查看名字第二个字母是A的员工?

SELECT 
    ename,sal,deptno
FROM
    emp
WHERE 
    ename LIKE '_A%'

IN(list) 和 NOT IN(listr)判断在列表中和不在列表中
IN,NOT IN常被用在子查询上使用。

查看职位是CLERK和SALESMAN的员工?

SELECT 
    ename,job,sal
FROM 
    emp
WHERE 
    job IN('CLERK','SALESMAN')

BETWEEN...AND...判断在一个区间范围内:

查看工资在1500到3000之间的员工?

SELECT 
    ename,sal
FROM 
    emp
WHERE 
    sal BETWEEN 1500 AND 3000

查看工资在1000-3000之间,20和30号部门名字中含有A的员工?

SELECT 
    ename,sal,deptno,job
FROM 
    emp
WHERE 
    sal BETWEEN 1000 AND 3000 AND deptno IN (20,30) AND ename LIKE '%A%'


ANY(list),ALL(list):
ANY,ALL是配合>,>=,<,<=使用的
>ANY(list):大于列表之一,大于最小
>ALL(list):大于列表所有,大于最大
<ANY(list):小于列表之一,小于最大
<ALL(list):小于列表所有,小于最小
ANY,ALL的列表中不会给定固定值,没有
实际意义,它们通常配合子查询使用。

SELECT 
    empno, ename, job,sal, deptno
FROM 
    emp
WHERE sal>ANY(3500,4000,4500)

DISTINCT关键字:
DISTINCT可以将结果集中指定字段值一样的记录去重。

查看公司有哪些职位?

SELECT DISTINCT job FROM emp

可以按照多字段去重,那么这些字段值的组合没有重复记录出现在结果集中。

SELECT DISTINCT deptno,job FROM emp

ORDER BY子句:
ORDER BY用于对查询的结果集按照指定
字段的值进行排序。
排序分为:升序(ASC),降序(DESC).
默认为升序
ORDER BY子句必须定义在SELECT语句中
的最后一个子句上。

查看公司中工资的排名?

SELECT 
    ename,sal,job
FROM 
    emp
ORDER BY 
    sal DESC

查看20号部门的工资排名?

SELECT 
    ename,sal,deptno
FROM 
    emp
WHERE 
    deptno=20
ORDER BY 
    sal DESC

多字段排序时,ORDER BY是有排序的优先级的,首先按照第一个字段先进行排序,当该字段中有记录值重复时,再将这些记录按照第二个字段排序。依此类推。

SELECT 
    ename,deptno,sal
FROM 
    emp
ORDER BY 
    deptno DESC,sal DESC

若排序的字段中含有NULL值,NULL被认定为最大值。

SELECT ename,comm FROM emp ORDER BY comm


聚合函数:
聚合函数又称为分组函数,多行函数。聚合函数的作用是对结果集指定字段的值进行统计工作的。MAX(),MIN(),SUM(),AVG()求最大值,最小值,总和,平均值,还有一个是对记录数的统计COUNT()。


查看公司的最高工资是多少?

SELECT MAX(sal) FROM emp

SELECT MAX(sal),MIN(sal),SUM(sal),AVG(sal) FROM emp

查看公司共多少人?

SELECT COUNT(ename) FROM emp
SELECT COUNT(*) FROM emp
SELECT COUNT(1) FROM emp

聚合函数忽略NULL值。

SELECT SUM(comm),AVG(comm)FROM emp

SELECT AVG(NVL(comm,0)) FROM emp

分组:
GROUP BY子句
GROUP BY子句可以将结果集按照给定的字段值一样的记录进行分组。配合聚合函数使用可以完成分组统计工作。

查看每个部门的平均工资?

SELECT 
    AVG(sal),
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值