查询所有列数据
select * from 表名;
查询指定列数据 效率高于查询所有列数据
select 列名,列名,列名 from 表名; --先执行from后面的代码,找到表,在执行select后面的代码,找到指定的列
distinct查询且不包含重复记录 可用于聚合函数
select distinct 列1 from 表名; 如:查询公司设置了哪些岗位 select job from emp;
select distinct 列1,列2 from 表名; --把列1和列2都相同的去掉重复
如:把两个以上的列完全相同的去掉 select distinct job,deptno from emp;
基本查询(按条件查询)
select * from 表名 where 条件 --查询所有满足条件的
如:查询部门编号为11的员工 select * from emp where deptno=11;
如:查询部门编号为11且工资大于4000的员工 select * from emp where deptno=11 and sal>4000;
聚合函数 用于统计 max min avg count sum 使用了聚合函数,就不能在该语句中查询其它的列(除开分组的)
求一列的和
select sum(列名) from 表名;
给列起别名
select sum(列名) 起的名字 from 表名; = select sum(列名) as 起的名字 from 表名;
select 列名1 起的名字1,列名2 起的名字2,列名3 起的名字3 from 表名;
给表起别名
select 表的别名.列1,表的别名.列2 from 表名 表的别名;
求数量
查表有多少条记录 select count(*) from 表名;
select count(*) 起的名字 from 表名;
如:查询编号为11的部门的人数 select count(*) 人数 from emp where deptno=11;
如:查询公司设置了几个岗位 select count(distinct job) from emp; --先除去重复的,再求数量
求最高、最低、平均值
如:最大的数是多少
select max(列名) from 表名;
select max(列名) 最大 from 表名;
如:最小的数是多少
select min(列名) from 表名;
select min(列名) 最小 from 表名;
如:平均数是多少
select avg(列名) from 表名;
select avg(列名) 平均 from 表名;
如:select max(sal) 最高 ,min(sal) 最低 ,avg(sal) 平均 from emp;
分组group by 集合函数一般和分组一起使用 分组可以理解为分类
如:select count(列名) from 表名 where sex='男';
select 列名,count(列名)每组人数 from 表名 group by 列名;
如:select job,count(job)每组人数 from emp group by job;
如:部门分组(dno部门编号,sal薪水,emp表名)
select dno,sum(sal)部门工资,avg(sal)部门平均工资 from emp group by dno;
select 分组的列,聚合函数 from 表名 group by 分组的列
注意:如果别名中包含特殊字符或别名是关键字,则必须使用双引号
“+”加法运算符,只能加数字,不能加字符串
数字+null=null,运用一个nvl函数,把为null的设置为0
如:select ename,nvl(comm,0) from emp;
如:select ename,sal,comm,sal+nvl(comm,0) 总工资 from emp;
加固定的值(不能加字符串,会报错)
select ename sal+10000 from emp; --没有修改数据库
数值型字符会自动转换为数字
如:select ename sal+'10000' from emp;
“||”连接运算符,可以连接任何类型数据
如:select ename || '他这个月发了'||sal||'块钱' from 表名;