十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
進(jìn)行篩選的基本運(yùn)算符號(hào):
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、開江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為開江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
--查詢?cè)滦礁哂?000的員工的姓名和其月薪
--查詢員工SMITH的員工信息
--關(guān)鍵字,表名,列名:大小寫是不敏感(隨意寫)
--數(shù)據(jù):大小寫是敏感(不能隨意寫)
--查詢不在20號(hào)部門工作的員工信息
--查詢?cè)?0號(hào)部門工作并且月薪高于2000的員工信息
--查詢職位是MANAGER或者月薪不低于3000的員工信息
--查詢?cè)?0號(hào)部門工作月薪低于2000并且職位不是CLERK的員工信息
--查詢?cè)?0號(hào)部門工作或(20號(hào)部門工作并且月薪不低于1500)的員工信息
--and的優(yōu)先級(jí)要高于or 如果兩者混合使用,需要注意優(yōu)先級(jí)的問(wèn)題
--加括號(hào)解決優(yōu)先級(jí)問(wèn)題
--SQL注入:利用了and的優(yōu)先級(jí)高于or完成無(wú)密碼進(jìn)行登錄
--SQL片段:通過(guò)在密碼框中輸入下方的SQL片段,更改了原有SQL語(yǔ)句的邏輯 ' or lname = 'admin --or前的邏輯:賬號(hào)隨意,密碼為空 (登錄失?。?--or后的邏輯:用戶名是admin的賬號(hào) (調(diào)取了admin的信息)
--1.查詢10號(hào)部門職位是MANAGER的員工信息
--2.查詢?cè)滦降陀?000或月薪高于3000的員工信息
--3.查詢員工編號(hào)是7902的員工的所有下屬的員工信息
--4.查詢職位是CLERK或SALESMAN,并且月薪不低于1000的員工信息
--5.查詢?cè)率杖氩坏陀?500的員工信息
--6.查詢30號(hào)部門年收入低于10000的員工信息
--7.查詢員工SCOTT的月薪,獎(jiǎng)金和月收入
--8.查詢?cè)?982年之前入職的員工信息(選做)
--相當(dāng)于 = A and = B
--查詢?cè)滦皆?000-2000區(qū)間的員工信息
--82年入職的員工
--like '特定字符'
-- 特定字符:由轉(zhuǎn)義字符和搜索文本組成
-- 轉(zhuǎn)義字符: %: 0-n個(gè)字符(任意長(zhǎng)度的任意字符)
-- : 1個(gè)字符(1個(gè)長(zhǎng)度的任意字符)
-- 比如 姓李 特定字符的寫法 '李%'
-- 第二個(gè)字符是哈 特定字符的寫法 ' 哈%'
--查詢員工名字首字母是S的員工
--查詢名字中倒數(shù)第2個(gè)字符是T的員工
--查詢名字中包含字母T的員工
--查詢名字中包含兩個(gè)字母T的員工
--查詢有兩個(gè)連續(xù)的T
--查詢名字中有%字符的員工
--聲明標(biāo)識(shí)字符
--相當(dāng)于 = A or = B or = C...
--查詢?cè)?0號(hào)部門或20號(hào)部門工作的員工
--查詢?cè)?0號(hào)部門工作或月薪高于1200的員工
-- = null 無(wú)法篩選任何數(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
--查詢?cè)滦讲辉?000-2000區(qū)間內(nèi)并且名字中不包含字母T的員工信息
--order by 列名 或 列別名 或 表達(dá)式 或 列序號(hào)
--ASC 升序 由小到大
--DESC 降序 由大到小
--不寫 默認(rèn)是升序
--## 書寫順序:select...from...where...order by...
--## 執(zhí)行順序:from...where...select...order by...
--查詢所有員工的信息,按照月薪的升序排序
--再按照月薪的降序排序
--利用表達(dá)式排序
--利用列別名進(jìn)行排序
--利用列序號(hào)進(jìn)行排序(第4列)
--排序的原則:
--1.數(shù)值按照數(shù)值的大小
--2.文本按照字典順序
--3.日期按照未來(lái)的大
--#####order by 可以修飾多個(gè)列
-- ## order by A, B 先A的升序排序,如果A相同,再按B的升序排序
-- ## order by A desc, B desc 先A的降序排序,如果A相同,再按B的降序排序
--查詢?cè)滦礁哂?000的員工,按照部門的升序排序,再按照入職日期降序排序
--推薦在order by中使用列名或列別名
--1.查詢名字中包含字母T,并且月薪在1500-3000之間的員工姓名和月薪
--2.查詢公司的BOSS信息(mgr值為null的人)
--3.查詢員工姓名,月薪,獎(jiǎng)金,年收入,按照年收入降序進(jìn)行排序顯示
--4.查詢職位中包含MAN并且有獎(jiǎng)金收入(不是null不是0)的員工信息
--5.查詢?cè)谠?981年期間入職的員工信息,并按照月薪降序排序
--6.查詢員工信息,并按照職位升序,部門升序進(jìn)行排序顯示
--7.查詢不在10號(hào)或20號(hào)部門工作,月薪低于1500的員工信息
--8.查詢所有的職位名稱,去掉重復(fù)后按照名稱的升序排序顯示
--9.查詢員工SCOTT和ADAMS的員工信息
--10.查詢年收入高于45000的員工信息,并按照年收入降序排序顯示
顯示天數(shù)很簡(jiǎn)單,用當(dāng)前日期減去入職日期即可,如下:
select empno,ename,sysdate-hiredate from emp;
顯示年月日的話,得進(jìn)行一系列函數(shù)轉(zhuǎn)換,如下:
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會(huì)顯示工作期限的年數(shù)和月數(shù),我覺得沒有必要再顯示天數(shù)了,因?yàn)槊總€(gè)月的天數(shù)也不一致
SELECT * FROM 表 WHERE MONTHS_BETWEEN(sysdate-入職日期)=8;
MONTHS_BETWEEN (x, y)用于計(jì)算x和y之間有幾個(gè)月。如果x在日歷中比y早,那么MONTHS_BETWEEN()就返回一個(gè)負(fù)數(shù)。
這個(gè)語(yǔ)句只支持入職日期那一列為Date類型,不然會(huì)出現(xiàn)錯(cuò)誤。
不是DAE類型的話需要用to_date轉(zhuǎn)換
例如
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后入職的應(yīng)該是:
select ename,hiredate from emp where hiredate to_date('1982/1/1','yyyy/mm/dd')