初學SQL語句練習1

2022-04-03 00:56:20 字數 1539 閱讀 7931

--【1 】查詢出每個月倒數第三天受僱的所有員工

select * from emp where hiredate=last_day(hiredate)-2;

--【2 】找出早於30 年前受僱的員工

select to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') 年數 from emp where to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') >30;

--【3 】以首字母大寫的方式顯示所有員工的姓名

select ename, initcap(ename) from emp;

--【4 】顯示不帶有'r'的員工的姓名

select ename from emp where ename not like '%r%';

--【5 】顯示正好為5 個字元的員工的姓名

select ename from emp where length(ename)=5;

--【6 】顯示所有員工姓名的前三個字元

select ename, substr(ename,1,3) from emp ;

--【7 】顯示所有員工的姓名,用'a'替換所有的'a'

select ename,replace(ename,'a','a')from emp;

--【8 】顯示滿30 年的服務年限的員工的姓名和受僱日期

select ename,hiredate from emp where to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') >30;

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

select * from emp order by ename;

--【10 】顯示員工的姓名和受僱日期,根據其服務年限,將最老的員工排在最前面

select ename,hiredate from emp order by hiredate;

--顯示所有員工的姓名,加入公司的年份和月份,按 受僱日期所月排序,若月份相同則將最早年份的員工排在最前面

select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm') from emp order by to_char(hiredate,'mm'), hiredate;

--顯示所有員工的姓名,工作,工資,按工作的降序排列,若工作相同則按工資排序

select ename,job,sal from emp order by job desc,sal;

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

select * from emp where to_char(hiredate,'mm')=2;

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

select ename ,round(sysdate-hiredate) from emp

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

select ename from emp where ename like '%a%';

SQL語言 where語句練習(1)

接下來兩篇總結將針對where語句的練習。相關練習的資料庫請參看 http www.sqlzoo.cn 1 1.htm 練習題答案及分析 1.france 的人口數.select population from bbc where name france 2.國土大國的國名和人口密度 select ...

SQL語句練習

建立一張表,記錄 呼叫員的工作流水,記錄呼叫員編號,對方號碼,通話開始時間,結束時間。建表,插資料等都自己寫出sql 要求 輸出所有資料中通話時間最長的5條記錄。輸出所有資料中撥打長途號碼 對方號碼以0開頭 的總時長 輸出本月通話時長最多的前三個呼叫員的編號 輸出本月撥打 次數最多的前三個呼叫員的編...

SQL 語句練習

mysql select from persons limit 5 oracle select from persons where rownum 5 select from persons where name like l select from persons where name not l...