篩選大於當前天oracle - CSDN

2020-11-23 CSDN技術社區

練習一:導入數據
將上機作業中school.dmp文件中的數據導入到資料庫中。
該文件中包含4個表數據,分別是:StudentInfo表,TeacherInfo表,ClassInfo表,StudentExam表。
select * from studentinfo;


練習二:單行函數練習
1、查詢所有學員從入學到今天,一共度過了多少天
select studentinfo.*, ceil(sysdate-stujointime) as time from studentinfo;


2、查詢每月2號入學的學員信息
select * from
(select studentinfo.*,to_char(stujointime,'mm') from studentinfo ) where to_char(stujointime,'mm')=2

select * from studentinfo where to_char(stujointime,'dd')=2

select * from studentinfo where to_char(stujointime,'mm')=3
3、查詢所有學員的畢業日期,假定按每個學員入學時間1年半之後將畢業。
select stuname,add_months(stujointime,18) from studentinfo
4、查詢星期四入學的學員姓名,性別,年齡,班級編號
select stuname,stusex,stuage,sclassid from studentinfo where to_char(stujointime,'day')='星期四'


5、查詢『2007-3-10』之前入學的學員信息
select * from studentinfo where stujointime < to_date('2007-3-10','yyyy-mm-dd')
6、查詢所有學員姓名的長度
select studentinfo.stuname,length(stuname) from studentinfo
7、查詢身份證中第9,10位為『89』的學員信息(要求使用字符串函數)

select * from studentinfo where substr(stucard,instr(stucard,'89'),2)='89'


8、修改班主任信息,將郵箱中的『yahoo』替換為『accp』
select * from teacherinfo
select replace(teacheremail,'yahoo','accp') from teacherinfo


9、查詢所有班主任的郵箱的用戶名
select substr(teacheremail,1,instr(teacheremail,'@')-1) from teacherinfo
10、查詢所有班主任的郵箱的所屬網站
提示:如果郵箱為qtz@yahoo.com,用戶名即qtz,所屬網站即yahoo。可先查找出『@』和『.』的下標,再截取
select substr(teacheremail,instr(teacheremail,'@')+1,instr(teacheremail,'.')-instr(teacheremail,'@')-1)
from teacherinfo

11、編寫查詢語句去掉字符串『 愛你 要你 我 愛 你 』中的空格
select replace(' 愛你 要你 我 愛 你 ',' ','') from dual
12、計算每個學員身份證中字符『1』出現的次數
select length(stucard)-length(replace(stucard,'1')) from studentinfo where stuid = 8
13、求小於-58.9的最大整數
select ceil(examresult) from studentexam where examresult<60


14、求大於78.8的最小整數
select floor(examresult) from studentexam where examresult>78.8
15、求64除以7的餘數
select mod(64,7) from dual
16、查詢所有學員入學時間,要求顯示格式為『2007年03月02日』
select to_char(stujointime,'yyyy"年"mm"月"dd日')期
17、查詢當前時間,要求顯示格式為『22時57:37』
select to_char(sysdate,'hh"時"mi":"ss') from dual;
18、查詢2007年入學的學員信息
select * from studentinfo where to_char(stujointime,'yyyy') = '2007'
triggers
練習三:分組函數練習
1、查詢所有學員的平均年齡(要求保留兩位小數)
select trunc(avg(stuage),2) from studentinfo ;
2、查詢所有考試的總成績
select examsubject, avg(examresult) from studentexam group by examsubject

3、查詢SQL考試的最低分數
select * from studentexam
select examresult from ( select row_number()over(order by examresult)r,studentexam.* from studentexam where examsubject='SQL')
where r=1

4、查詢Java考試成績最高的學員姓名
select examresult from (select dense_rank()over(order by examresult desc)r ,studentexam.* from studentexam where examsubject='Java')
where r=1


5、查詢學員『火雲邪神』一共參加了幾次考試
select * from studentinfo
select * from studentexam

select count(*) from studentinfo,studentexam where studentinfo.stuid=studentexam.estuid and stuname='火雲邪神'
6、查詢各科目的平均成績
select examsubject ,avg(examresult) from studentexam group by examsubject

7、查詢每個班級學員的最小年齡

select sclassid,min(stuage) from studentinfo group by sclassid;
8、查詢考試不及格的人數
select count(*) from studentexam where examresult<60
9、查詢各學員的總成績,要求篩選出總成績在140分以上的
select * from studentexam
select * from (select sum(examresult)>140 from studentexam where group by estuid ) group by estuid

select * from ( select sum(examresult),estuid from studentexam
group by estuid )m where


select * from
(select sum(examresult) total,estuid from studentexam
group by estuid
)where total>140

10、查詢男女學員的平均年齡
select stusex ,avg(stuage) from studentinfo group by stusex
11、查詢每門功課的平均分,要求顯示平均分在80分以上的(包括80分)

select * from (select avg(examresult)total from studentexam group by examsubject) where total>80

12、按班主任姓名分組,查所帶班級的總成績分(假定每個班主任只帶一個班級)(提示:4表連接)


--查去來的值,類型也是一樣的
select sclassid from studentinfo --這個一個真正的集合,值是唯一的
union
select classid from classinfo;

select sclassid from studentinfo
union all
select classid from classinfo;--這是別種一集合,沒有過濾相同的值,沒有對值進行

select * from studentexam
union all
select * from teacherinfo;


select sclassid from studentinfo
intersect
select classid from classinfo; -- 這是一個交集


select sclassid from studentinfo
minus
select classid from classinfo;


練習四:分析函數練習
查詢學員成績,按成績排序,並計算出名次
1、 要求不論成績是否相同,名次是連續的序號
select studentexam.* , row_number()over(order by examresult)rown from studentexam

2、 要求成績相等的排位相同,名次隨後跳躍
select studentexam.* ,rank()over(order by examresult)rank_ from studentexam
3、 要求成績相等的排位相同,名次是連續的

select studentexam.* , dense_rank()over(order by examresult)denserank from studentexam

相關焦點

  • oracle 查詢昨天記錄專題及常見問題 - CSDN
    在Metalink Note:3427424.8 文檔中,Oracle定義的平臺影響為:Generic (all / most platforms affected)Q.計數器溢出,看了看job 中基本都是1天左右執行一次,如果設置 3 天執行一次的 job , 是否出問題的uptime 應該是 497*3 之後呢 ?
  • 零基礎學Oracle之2:開始使用oracle
    而oracle則力推java,把java虛擬機內嵌到oracle中。[oracle@wl database]$ ./runInstaller 在資料庫軟體目錄下執行這個安裝,類似於windows的setup
  • 5天,2W+字整理資料庫實操指令,附練習題,再說資料庫學不明白
    3、oralce的歷史介紹 參照PPT第三節課:oralce的安裝及oracle目錄結構介紹及卸載1、oracle的安裝:參照百度搜索「oracle11g安裝圖解」全局資料庫名:默認是orcl,是用來唯一標示資料庫的名字SID:在程序中唯一標示數據的名字2、oracle的服務:(需要開啟的服務)
  • oracle 查詢 今天、昨天、本周、本月、本季度的所有記錄
    在Metalink Note:3427424.8 文檔中,Oracle定義的平臺影響為:Generic (all / most platforms affected)Q.計數器溢出,看了看job 中基本都是1天左右執行一次,如果設置 3 天執行一次的 job , 是否出問題的uptime 應該是 497*3 之後呢 ?
  • Oracle資料庫參數優化參考
    下面為一些參數調優參考:一、db_file_multiblock_read_count:oracle讀取數據有兩種方式:1)通過rowid(即索引掃描)2)通過全表掃描如果是全表掃描時,oracle會一次讀取多個blocks,每次讀取的塊數將受初始化參數db_file_multiblock_read_count和作業系統的
  • 零基礎學Oracle之6:Oracle數字字典和動態視圖的理解
    2、數字字典(DD)1)在執行數據定義語言(definition language,DDL)語句或有些數據操縱語言 (data manipulation language ,DML) 語句時會更新數據字典2)有幾個特點存儲在system表空間它是由sys擁有由oracle server自動維護。
  • 零基礎學Oracle之4:理解oracle的啟動與關閉
    spfile.ora, 啟動instance3) 查找initSID.ora這個文件並啟動instance4) 使用預設pfile,也就是在敲命令時STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora,直接用指定的pfile啟動instance2、 oracle
  • Oracle 19C rac集群靜默安裝操作手冊v2.0 for centos7
    Infrastracture所需空間:12GB3.安裝Oracle Database所需空間:7.3GB4.此外安裝過程中分析、收集、跟蹤文件所需空間:10GB5.建議總共至少100GB(此處不包含ASM或NFS的空間需求) 1.2.2.內存檢查1.內存大小:至少8GB2.Swap大小:3.當內存為4GB-16GB時,Swap需要大於等於系統內存
  • 【乾貨】ORACLE-AWR報告分析
    AWR每小時對v$active_session_history視圖(內存中的ASH採集信息,理論為1小時)進行採樣一次,並將信息保存到磁碟中,並且保留7天,7天後舊的記錄才會被覆蓋。這些採樣信息被保存在wrh$_active_session_history視圖(寫入AWR庫中的ASH信息,理論為1小時以上)中。
  • Excel篩選數字、以某字開頭與顏色及多條件與公式高級篩選怎麼用
    單擊 E 選中「1月銷量」列,選擇「數據」選項卡,單擊「篩選」,則 E1 單元格右下角出現一個篩選圖標,單擊該圖標,依次選擇「數字篩選 → 大於或等於」,打開「自定義自動篩選方式」窗口,在「大於或等於」右邊輸入 500,單擊「確定」,則篩選出大於或等於 500 的服裝,操作過程步驟,如圖1所示:圖1
  • Excel數據透視表高級篩選用欄位和公式組合多個條件並篩選到新表
    在 Excel數據透視表中也可以進行高級篩選,並能把篩選結果得到到一個新工作表中。像在 Excel 普通表格一樣,高級篩選條件區域既可以用單個條件也可以用多個條件;多個條件的組合方式分為用欄位組合與用公式組合;如果條件比較複雜,用欄位不好組合,可以用公式組合。在數據透視表中,除可篩選普通的欄位外,還可以把分類匯總結果一起篩選。
  • 如何在Oracle中使用遊標來實現多重循環
    【IT168 伺服器學院】這篇文章,是最近在寫一個項目中所用的存儲過程,由於是第一次接觸oracle,其間花費了許多功夫,才把功能實現!特記錄下來,以供參考!
  • Excel中的「高級篩選」功能都不掌握,那就真的Out了
    Excel中的自動篩選相信大家都用過,也非常的好用,但是在實際的工作中,我們的需求往往是自動篩選無法實現的,這時候很多同學不知從何下手……其實,Excel早就為大家準備了N個超級貼心的【高級篩選】功能……今天學習之後再也不能「束手就擒」了。一、同時滿足多條件篩選。
  • 踩坑oracle dbms_job簡單使用
    用sql創建時必須顯示指定,系統會自己算(Pass:此處指oracle資料庫的系統時間,暗中觀察比實際時間要稍慢,引起原因多種多樣,一時說不清,所以不要大驚小怪即可= =)也就是sysdate,用job window創建時可以不指定,同樣都是默認用創建job的時間。重頭戲之時間設置。
  • ORACLE序列:基本概念和使用說明
    從1開始計數  NOMAXVALUE -- 不設置最大值  NOCYCLE -- 一直累加,不循環  CACHE 10  NOORDER; --並行時取得序列的順序  一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL  CURRVAL=返回 sequence的當前值
  • DB2常用函數與Oracle比較
    ','yyyy-mm-dd') from dual;    DB2:      select date('2008-01-01') from sysibm.sysdummy1    2、時間日期:year, quarter, month, week, day, hour, minute ,second    dayofyear(arg):返回arg在年內的天值
  • 數據篩選的關鍵,讓比較(關係)運算正確表達你的心中所想
    無論是原始數據,還是統計的結果,數據篩選和排序一樣,對於數據分析有著重要的作用,特別是數據篩選,篩選方式簡單實用,篩選條件配置靈活。對於學習和應用Excel來說,數據篩選都是必修課。一個條件表達式對應為一個條件,結合數據篩選而言就是一個篩選條件。例如,A1>=B1,在這個條件表達式中,A1、B1為比較的內容,「>=」為比較運算符,稱為大於等於。在條件表達式返回真時(True),會執行相應的操作。類似大於等於這樣的比較運算共有六個,分別為等於(=),不等於(<>),大於(>),小於(<),大於等於(>=),小於等於(<=)。
  • 【紅藥丸】為什麼男子氣概大於天
    女性化的男性換一句話說在女權眼裡就是工具人般的存在,與金錢主題工具人(供養者)不同,女性化的男性是女權用來馴化男性化男性的一個手段工具人,比如前段時間的丁真,比如蔡徐坤這一系列的小鮮肉,讓女權們都會吹捧跪舔,讓男性化的男性認為女人喜歡這樣的男人,從而達到被女權篩選成女性化男性,那你覺得這樣就完了嗎?
  • Oracle分組查詢group by的用法及講解
    三,分組查詢的篩選where和having示例:查詢出性別為男的學生並按照年齡分組,並篩選出年齡大於21歲的我們首先實現錢半部分:查詢出性別為男的學生並按照年齡分組SELECT SNAME,SAGE FROM STUDENT where SSEX='男' GROUP BY SNAME,SAGE然後使用having語句篩選:
  • Excel表格巧用條件格式和格式查找,實現快速批量篩選和橫向篩選
    在Excel表格中數據的篩選是我們經常會用到的功能。簡單地按列縱向篩選、一個個勾選要篩選的內容不僅效率慢,而且有時不能滿足我們的需要。今天為朋友們分享一種巧用條件格式和格式查找,實現的批量篩選和橫向篩選。