1. 程式人生 > >資料庫的常見查詢操作

資料庫的常見查詢操作

–員工表資訊
select *from emp;
–部門表的所有資訊
select from dept;
–查詢員工表的所有編號,名字,工資
select empno,ename,sal from emp;
–查詢員工表的編號,名字,工資,年薪
select empno,ename,sal,sal
12 from emp;
–as別名小名
select empno as 員工編號,ename as 員工姓名,sal as 員工工資 from emp;
–雙引號的作用
select empno “en”from emp;
–連線符||
select ename ||’的月薪是’||sal from emp;
–去除重複的行
select distinct ename,sal from emp;
–order by 進行排序asc 升序desc降序
–查詢所有資料對工資進行升序排序
select *from emp order by sal asc;
–降序
select *from emp order by sal desc;
–多欄位排序分主次
select *from emp order by sal asc,empno desc;
select ename as 姓名,empno as 編號 ,sal as 工資 from emp sal order by 編號 desc, 工資 asc;
–where條件查詢
–查詢名叫SCOTT的員工資訊
select *from emp where ename =’SCOTT’;
–查詢工資為1250
select *from emp where sal=1250;
–查詢入職時間1981-2-22的資訊
select *from emp where hiredate=’22-2月-81’;
–大於
select *from emp where hiredate >’1-1月-81’;
–小於
select *from emp where hiredate <’1-1月-81’;
–查詢工資在1250及以上的員工
select *from emp where sal>=1250;
–查詢工資不等於800的員工
select *from emp where sal!=800;
select *from emp where sal<>800;
–查詢工資在800-1000;
select *from emp where sal between 800 and 1000;
select *from emp where sal between 800 and 1000;
–in集合
–查詢800-900-1000-1250的員工資訊
select *from emp where sal in(800,1000,900,1250);
–查詢獎金為空的員工資訊
select *from emp where comm is null;
select *from emp where comm=”;
–查詢獎金不為空的
select *from emp where comm is not null;
select *from emp where comm !=”;
–like模糊查詢萬用字元
–查詢以s開頭的
select *from emp where ename like ‘S%’;
select *from emp where ename like ‘D__%’;
–用escape來強調是,
select *from emp where ename like ‘%%’escape’\’;
–and or not 運算子
–查詢工資大於900並且以s開頭
select from emp where sal>900 and ename like ‘S%’;
–或者以s
select from emp where sal>900 or ename like ‘S%’;
–常用字元函式
–查詢員工表的姓名並且首字母大寫
select initcap(ename)from emp;
–小寫
select lower(ename)from emp;
–全大寫
select upper(ename)from emp;
–左移除
select ltrim(‘scdn’,’sc’)from dual;
–右邊移除
select rtrim(‘csdn’,’dn’)from dual;
–左右移除空格
select ltrim(rtrim(’ bfdhugf ‘))from dual;
–翻譯
select translate(‘dfsff’,’df’,’lj’)from dual;
–替換
select replace(‘dfsfd’,’df’,’dss’)from dual;
–查找出現的位置
select instr(‘fdsafs’,’s’)from dual;
–擷取
select substr(‘sgfyusg’,3,2)from dual;
–連線
select concat(‘dfdsfd’,’fdsfd’)from dual;
select ‘dfdf’||’dfdfa’from dual;
–絕對值
select abs(-15)from dual;
–x的y次冪
select power(2,3)from dual;
–向上取整
select ceil(12.5)from dual;
–向下取整
select floor(12.5)from dual;
–截斷保留
select trunc(12.456,2)from dual;
–四捨五入
select round(122.456,2)from dual;
–開平方
select sqrt(4)from dual;
–取餘數
select mod(10,3)from dual;
–取符號
select sign(-25)from dual;
select sign(12)from dual;
–兩個日期間隔月份
select months_between(sysdate,’8-12月-1998’)from dual;
–修改月份
select add_months(sysdate,1)from dual;
select add_months(sysdate,-1)from dual;
–返回指定的一個星期幾的日期
select next_day(‘16-8月-17’,’星期日’)from dual;
–日期的四捨五入
select round (sysdate,’year’)from dual;
select round (sysdate,’month’)from dual;
select round (sysdate ,’day’)from dual;
–日期轉字串
select to_char(sysdate,’yyyy-mm-dd’)from dual;
–字串轉日期
select to_date(‘2017年8月16日’,’yyyy”年”mm”月”dd”日”’)from dual;
–字串轉數值型
select to_number(‘123,549,654,12.789′,′123,549,654,12.789′,′999,999,999,99.999’)from dual;
select to_number(‘¥123,456,46.4567’,’L999,999,99.9999’)from dual;
–數值轉字串
select to_char(12345678.123,’L999,999,99.999’)from dual;
–時間比較問題
select from emp where hiredate>’1-1月-81’;
select from emp where hiredate>to_date(‘1981-1-1’,’yyyy-mm-dd’);
select from emp where to_char(hiredate,’yyyy-mm-dd’)>’1998-1-1’;
–空轉數
select ename,nvl(comm,0)from emp;
–nvl2(e,n,m)e為空m不為空轉n
select ename,nvl2(comm,comm,0)from emp;
select decode(sal,1250,’有錢’,5000,’真有錢’,’窮鬼’)from emp;
–case when else end (if else)
select (case
when sal >=5000 then ‘有錢’
when sal>=4000 then ‘1有錢’
when sal>=3000 then ‘2有錢’
else ‘窮’
end)from emp;
select (case sex when 0 then’男’when 1 ‘女’ end)from dual;
–sum求和 max最大值min最小值avg平均值count統計
select max(sal)from emp;
select min(sal)from emp;
select avg(sal)from emp;
select sum(sal)from emp;
select count(sal)from emp;
–多少員工
select count(

)from emp;
–聚合函式可以寫在一行上
select max(sal),min(sal),sum(sal),avg(sal),count(
)from emp;
–統計所有(

select count()from emp;
select count (distinct sal)from emp;
–查尋部門編號為10的員工資訊
select from emp;
select from emp where deptno like ‘10%’;
–查尋年薪大於三萬姓名雨部門編號
select ename,empno,sal
12 from emp where sal
12>30000;
–查詢佣金為null姓名工資
select ename as 姓名,sal as 工資 from emp where comm is null;
–查詢工資大於1500and有佣金的人
select ename as 姓名, sal as 工資 from emp where sal>1500 and comm is not null;
–查詢工資大於1500or有佣金的人
select ename as 姓名, sal as 工資 from emp where sal>1500 or comm is null;
–查詢姓名裡有S的員工的資訊工資名字
select ename as 姓名, sal as 工資 from emp where ename like ‘S%’;
–查詢以j開頭第二個字元是o 的
select ename as 姓名, sal as 工資 from emp where ename like ‘jo%_’;
select
from emp where ename like ‘%’;