sql大数据 基础

语法:

  1. select * from +表名;

例:select * from emp;

  1. select 列1,列2 … from + 表名;

例:select ename, job from emp

  1. select 列1,列2 … from + 表名 where + 条件;

请展示 部门编号为10的员工信息
select * from emp where deptno = 10 ;
**

知识点

  1. =,>,<,>=,<=,<>,!=

请找出 工资 大于2500的员工信息
select * from emp where sal > 2500;
不在20号部门的员工编号和部门编号
select empno,deptno from emp where deptno <> 20;

  1. not 取反 is null is not null

请展示没有奖金 的 员工编号,员工姓名,员工工资 select a.*,empno 员工编号 ,ename,sal from
emp a where comm is null;
不在20号部门的 员工编号和部门编号
select empno,deptno from emp where deptno <> 20;

  1. and / or /between and 在…之间

部门编号为20的员工里,工资大于2500的 员工信息
select * from emp where deptno = 20 and sal >2500;
部门编号为20的员工或者工资大于2500的 员工信息
select * from emp where deptno = 20 or sal >2500;

练习
1.显示工资大于1500的销售信息 SALESMAN
select * from emp where job = ‘SALESMAN’ and sal >1500;
2.工资在1000-2000之间的员工信息
select * from emp where sal between 1000 and 2000;
注:between and 包含边界值
3.展示员工编号在7300- 7500之间的员工信息
select * from emp where empno between 7300 and 7500;

  1. 数值类型的计算

±*/()
请展示年薪大于1万5的 员工信息
select * from emp where sal *12 >15000;

  1. 连接 ||

select empno,ename,empno||ename from emp ;
员工编号为:empno的员工是:ename.
select ‘员工编号为:’||empno||’ 的员工是:’||ename from emp ;

  1. 集合 in (值1,值2…)

部门10和部门20的员工信息
方法1:select * from emp where deptno =10 or deptno = 20;
方法2:select * from emp where deptno in (10,20);
请显示工种为SALESMAN和CLERK 的员工编号,员工姓名
select empno,ename from emp where job in (‘SALESMAN’,‘CLERK’);

  1. any / all 任意一个/所有

any(1000,2000,3000) 大于集合中任意一个 等价于 大于集合里面的最小值
<any
all(1000,2000,3000)大于集合中所有的值 等价于 大于集合里面的最大值
<all

  1. like /not like 模糊匹配

‘’ 精确匹配
请找出员工中以S开头的员工信息
select * from emp where ename like ‘S%’;
请找出A开头的,倒数第二位是E的员工信息
select * from emp where ename like ‘A%E_’;

9… 排序语法

select * from 表名 where 条件 order by + 列 asc | desc 😭 升序 | 降序 ) order by 后是按照列的先后顺序排序的
注:asc是默认的,可以不写

例1:select * from emp where deptno = 10 order by sal asc;
例2:按照部门、姓名升序排序 | 降序排序
select * from emp order by deptno desc ,ename desc ;

  1. 聚合函数

sum() avg() count() max() min()

例:10号部门的员工工资总和

select sum(sal) from emp where deptno =10;

练习:
求出20号部门的最大工资、工资总和、平均工资
select max(sal),sum(sal),avg(sal) from emp where deptno =20;
求员工的奖金总和
select sum(comm) from emp;
求多少个员工有奖金
select count(comm) from emp;

  1. 分组

select 列1,列2 聚合函数…
from 表名
where 条件
group by 列1,列2…
having 条件
注:1)group by 后面的列是有顺序的

  1. 汇总

select 列1,列2,聚合函数…
from 表名 where 条件
group by 列1,列2…
having 条件
order by
列1,列2… asc|desc;
注:对group by 后的结果进行条件过滤, 有having必有group by

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值