1.查詢語句中使用函數sql
1)數字函數ide
round() 用於數字的四捨五入函數
trunc() 用於截取spa
2)日期函數 sysdate排序
select sysdate from dual;--dual爲虛表字符串
2.日期函數相減it
計算員工入職多少天table
select hiredate,name,(sysdate-hiredate) days from emp_xxx;class
計算員工入職多少個月date
select hiredate,name,months_between(sysdate,hiredate) months from emp_xxx;
3.轉換函數
to_char(日期數據,格式)把日期數據轉換爲字符數據
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;
sqlplus中日期的默認格式是:DD-MON-RR
to_date 將字符串數據按指定格式轉換爲日期數據
4.查詢結果排序 order by
5.數據字典 user_tables
當前帳戶下有多少個表
select count(*) from user_tables;
6.組函數count() avg() sum() max() min()
與單行函數如round() to_date() to_char() 等不一樣,單行函數是每行數據返回一個結果
,組函數是多行數據返回一行結果。
7.分組查詢 group by 列名:表示按指定列分組查詢
select 後出現的列,凡是沒有被組函數包圍的列,必須出如今group by 短語中
按職位分組,每一個職位的最高,最低薪水和人數?
select job,max(salary)max_s,
min(salary)min_s,
count(*) emp_num from emp_xxx group by job order by emp_num;
having子句
用於對分組後的數據進行過濾。
注意區別where是對錶中數據的過濾;having 是對分組獲得的結果數據進一步過濾
平均薪水大於5000元的部門數據,沒有部門的不算在內
select deptno,avg(nvl(salary,0)) avg_s from emp_xxx
where deptno is not null
group by deptno
having avg_s > 5000;