SQL單錶查詢

2022-06-19 08:45:15 字數 4206 閱讀 2135

[sql]view plain

copy

--1,選擇不猛30中的雇員  

select *  

from emp  

where deptno = 30;  

--2,列出所有辦事員的姓名,編號和部門  

select ename,empno,deptno   

from emp  

where job = 'clerk';  

--3,找出佣金高於薪金的雇員  

select *  

from emp  

where nvl(comm,0) > sal;  

--4,找出佣金高出薪金的60%的雇員  

select *   

from emp   

where nvl(comm,0) > sal * 0.6;  

--5,找出部門10中所有經理和部門20中所有辦事員的詳細資料  

select *   

from emp  

where (deptno = 10 and job = 'manager')  

or (deptno = 20 and job = 'clerk');  

--  

select *   

from emp   

where deptno = 10  

and job = 'manager'  

union  

select *  

from emp  

where deptno = 20  

and job = 'clerk';    

--6,找出部門10中所有經理,部門20中所有辦事員  

--以及既不是經理又不是辦事員但其薪金大於或等於2000  

--的所有雇員的詳細資料  

select *  

from emp  

where (deptno = 10 and job = 'manager')  

or (deptno = 20 and job = 'clerk')  

or (job not in ('manager','clerk')   

and sal >= 2000);  

--  

select *   

from emp  

where deptno = 10   

and job = 'manager'  

union  

select *  

from emp  

where deptno = 20  

and job = 'clerk'  

union  

select *  

from emp  

where job != 'manager'  

and job != 'clerk'  

and sal >= 2000;  

--7,找出收取佣金的員工的不同工作  

select distinct job  

from emp  

where nvl(comm,0) > 0;  

--8,找出不收取佣金或收取的佣金低於100的員工  

select *   

from emp  

where nvl(comm,0) 

or comm is null;  

--9,找出各月倒數第三天受僱的所有員工  

select *  

from emp  

where hiredate = last_day(hiredate) -2;  

--10,找出早於12年前受僱的員工  

select *  

from emp  

where hiredate 

--11,以首字母大寫的方式顯示所有員工的姓名  

select initcap(ename) as 姓名  

from emp;  

--12,顯示正好為5個字元的員工的姓名  

select ename   

from emp  

where length(ename) = 5;  

--  

select ename  

from emp  

where ename like '_____';  

--13,顯示不帶『r』的員工的姓名  

select ename   

from emp  

where ename not like '%r%';   

--14,顯示所有員工姓名的前三個字元  

select substr(ename,1,3) as ename  

from emp;  

--15,顯示所有員工的姓名,用a替換所有『a』  

select replace(ename,'a','a') as ename  

from emp;  

--  

select translate(ename,'a','a') as ename  

from emp;  

--16,顯示滿10年服務年限的員工的姓名和受僱日期  

select ename,hiredate  

from emp  

where months_between(sysdate,hiredate) > 120;--!大時間寫在後  

--  

select ename,hiredate   

from emp  

where sysdate > add_months(hiredate,12 * 10);  

--17,顯示員工的詳細資料,按姓名排序  

select *   

from emp  

order by ename;  

--18,顯示員工的姓名和受僱日期,根據其服務年限,  

--將最老的員工排在最前面  

select ename,hiredate  

from emp  

order by hiredate;  

--19,顯示所有員工的姓名、工作和薪金,按工作的  

--降序排列,若工作相同則按薪金排序  

select ename,job,sal  

from emp  

order by job desc,sal;  

--20,顯示所有員工的姓名、加入公司的年份和月份,  

--按受僱日期所在月排序,若月份相同則將最早  

--年份的員工排在最前面  

select ename,to_char(hiredate,'yyyy"年"mm"月"')  

from emp   

order by to_char(hiredate,'mm'),to_char(hiredate,'yyyy')  

--21,顯示在乙個月為30天的情況所有員工的日薪金,  

--忽略餘數  

select ename,trunc(sal/30)  

from emp;  

--22,找出在(任何年份的)2月受聘的所有員工  

select *   

from emp  

where to_char(hiredate,'mm') = '02';  

--23,對於每個員工,顯示其加入公司的天數  

select ename,floor(sysdate - hiredate)  

from emp;  

--24,顯示姓名欄位的任何位置包含『a』的所有員工的姓名  

select *  

from emp  

where ename like '%a%';  

--25,以年月日的方式顯示所有員工的服務年限(大概)  

select empno,ename,  

(  '在職'||trunc((months_between(sysdate,hiredate)/12))||'年'||  

trunc(mod((months_between(sysdate,hiredate)),12))||'個月'||  

round(sysdate-(add_months(hiredate,months_between  

(sysdate,hiredate))))||'天'         

)  from emp;  

SQL單錶查詢

1 單錶查詢 從資料庫中查詢資料 專業的稱謂又稱為投影 基本查詢語句結構 select 列 from 表 注 所有列不是所有其他東西 查詢所有資料 例 select from employees 當然你首先資料庫裡得有著張employees表才能查詢出來 如果你需要執行比較細的操作 那就再加上條件篩...

SQL語句 單錶查詢

select from tableselect col1,col2 from tableselect from table where condition 篩選數字屬性列 篩選字串屬性列 通過limit選取部分結果 選取前n行的記錄 select from table where condition...

sql中單錶查詢

use test 查詢大氣質量表中的全部內容。select from all 查詢北京的大氣質量資料。select from all where 城市名 北京 查詢不同月份pm2.5的最大值。select 月份 max pm2.5 from all group by 月份 降序查詢不同城市pm10的...