進行篩選的基本運算符號:
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、開江網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5高端網(wǎng)站建設、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為開江等各大城市提供網(wǎng)站開發(fā)制作服務。
--查詢月薪高于2000的員工的姓名和其月薪
--查詢員工SMITH的員工信息
--關鍵字,表名,列名:大小寫是不敏感(隨意寫)
--數(shù)據(jù):大小寫是敏感(不能隨意寫)
--查詢不在20號部門工作的員工信息
--查詢在20號部門工作并且月薪高于2000的員工信息
--查詢職位是MANAGER或者月薪不低于3000的員工信息
--查詢在10號部門工作月薪低于2000并且職位不是CLERK的員工信息
--查詢在10號部門工作或(20號部門工作并且月薪不低于1500)的員工信息
--and的優(yōu)先級要高于or 如果兩者混合使用,需要注意優(yōu)先級的問題
--加括號解決優(yōu)先級問題
--SQL注入:利用了and的優(yōu)先級高于or完成無密碼進行登錄
--SQL片段:通過在密碼框中輸入下方的SQL片段,更改了原有SQL語句的邏輯 ' or lname = 'admin --or前的邏輯:賬號隨意,密碼為空 (登錄失?。?--or后的邏輯:用戶名是admin的賬號 (調(diào)取了admin的信息)
--1.查詢10號部門職位是MANAGER的員工信息
--2.查詢月薪低于2000或月薪高于3000的員工信息
--3.查詢員工編號是7902的員工的所有下屬的員工信息
--4.查詢職位是CLERK或SALESMAN,并且月薪不低于1000的員工信息
--5.查詢月收入不低于2500的員工信息
--6.查詢30號部門年收入低于10000的員工信息
--7.查詢員工SCOTT的月薪,獎金和月收入
--8.查詢在1982年之前入職的員工信息(選做)
--相當于 = A and = B
--查詢月薪在1000-2000區(qū)間的員工信息
--82年入職的員工
--like '特定字符'
-- 特定字符:由轉義字符和搜索文本組成
-- 轉義字符: %: 0-n個字符(任意長度的任意字符)
-- : 1個字符(1個長度的任意字符)
-- 比如 姓李 特定字符的寫法 '李%'
-- 第二個字符是哈 特定字符的寫法 ' 哈%'
--查詢員工名字首字母是S的員工
--查詢名字中倒數(shù)第2個字符是T的員工
--查詢名字中包含字母T的員工
--查詢名字中包含兩個字母T的員工
--查詢有兩個連續(xù)的T
--查詢名字中有%字符的員工
--聲明標識字符
--相當于 = A or = B or = C...
--查詢在10號部門或20號部門工作的員工
--查詢在10號部門工作或月薪高于1200的員工
-- = null 無法篩選任何數(shù)據(jù)
-- is null 篩選null值
-- not between A and B 不在A與B區(qū)間內(nèi)
-- not like '%A%' 名字里面沒有A
-- not in(A,B,C) 不是A,B,C其中之一
-- is not null 不為null
--查詢月薪不在1000-2000區(qū)間內(nèi)并且名字中不包含字母T的員工信息
--order by 列名 或 列別名 或 表達式 或 列序號
--ASC 升序 由小到大
--DESC 降序 由大到小
--不寫 默認是升序
--## 書寫順序:select...from...where...order by...
--## 執(zhí)行順序:from...where...select...order by...
--查詢所有員工的信息,按照月薪的升序排序
--再按照月薪的降序排序
--利用表達式排序
--利用列別名進行排序
--利用列序號進行排序(第4列)
--排序的原則:
--1.數(shù)值按照數(shù)值的大小
--2.文本按照字典順序
--3.日期按照未來的大
--#####order by 可以修飾多個列
-- ## order by A, B 先A的升序排序,如果A相同,再按B的升序排序
-- ## order by A desc, B desc 先A的降序排序,如果A相同,再按B的降序排序
--查詢月薪高于1000的員工,按照部門的升序排序,再按照入職日期降序排序
--推薦在order by中使用列名或列別名
--1.查詢名字中包含字母T,并且月薪在1500-3000之間的員工姓名和月薪
--2.查詢公司的BOSS信息(mgr值為null的人)
--3.查詢員工姓名,月薪,獎金,年收入,按照年收入降序進行排序顯示
--4.查詢職位中包含MAN并且有獎金收入(不是null不是0)的員工信息
--5.查詢在在1981年期間入職的員工信息,并按照月薪降序排序
--6.查詢員工信息,并按照職位升序,部門升序進行排序顯示
--7.查詢不在10號或20號部門工作,月薪低于1500的員工信息
--8.查詢所有的職位名稱,去掉重復后按照名稱的升序排序顯示
--9.查詢員工SCOTT和ADAMS的員工信息
--10.查詢年收入高于45000的員工信息,并按照年收入降序排序顯示
顯示天數(shù)很簡單,用當前日期減去入職日期即可,如下:
select empno,ename,sysdate-hiredate from emp;
顯示年月日的話,得進行一系列函數(shù)轉換,如下:
select empno,ename,
to_char(floor(to_number((sysdate-hiredate)/365)))||' years '||
to_char(ceil(months_between(sysdate,hiredate)-(floor(to_number((sysdate-hiredate)/365)))*12))||' months '
from emp
上面的sql會顯示工作期限的年數(shù)和月數(shù),我覺得沒有必要再顯示天數(shù)了,因為每個月的天數(shù)也不一致
SELECT * FROM 表 WHERE MONTHS_BETWEEN(sysdate-入職日期)=8;
MONTHS_BETWEEN (x, y)用于計算x和y之間有幾個月。如果x在日歷中比y早,那么MONTHS_BETWEEN()就返回一個負數(shù)。
這個語句只支持入職日期那一列為Date類型,不然會出現(xiàn)錯誤。
不是DAE類型的話需要用to_date轉換
例如
SELECT * FROM 表 WHERE MONTHS_BETWEEN(sysdate-to_date(入職日期,'mm'))=8
希望能幫到您!
select ename,hiredate from emp where hiredate =to_date('1982/1/1','yyyy/mm/dd')
如果是要查詢1982-1-1后入職的應該是:
select ename,hiredate from emp where hiredate to_date('1982/1/1','yyyy/mm/dd')
當前名稱:oracle怎么查詢?nèi)肼?oracle查詢一個月前入職的員工
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article10/hggcgo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、全網(wǎng)營銷推廣、App開發(fā)、用戶體驗、網(wǎng)頁設計公司、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)