查詢語句

查詢語句express

一.子查詢函數

where型子查詢:把內層查詢的結果做爲外層查詢的比較條件code

二.exists  對象

      存在即保留排序

三.函數 字符串

      單行函數:一條數據返回一個結果string

      多行函數|組函數|聚合函數:多條數據返回一個結果it

 3-1.日期函數io

      sysdate | current_date:以date類型返回當前的日期模板

      sysdate +|- ** :幾天後或幾天前的時刻

      add_months(d,x):返回加上x月後的日期d的值

      LAST_DAY(d):返回的所在月份的最後一天

      Months_between(date1,date2):返回date1和date2之間月的數目

      Next_day(sysdate,’星期一’):下一個星期一的時間

3-2.日期對象與字符串之間的轉換

     to_date(‘字符串’,識別日期字符串模板):

     設定一個特定的時間(用一個特定的時間字符串轉換爲日期):

例:select to_date('2019-07-30 10:11:13','yyyy-mm-dd hh24:mi:ss') from dual;

例:select to_date('2019年07月30日 10:11:13','yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

     To_char():將日期轉爲特殊格式的字符串:

例:select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

 3-3.其餘函數

      nvl(string1,string2)->若是string1位null,則結果爲string2的值

      decode(condition,case1,express1,case2,express2,…casen,expressn,expression)

      decode(判斷字段,檢驗字段值1,結果1,檢驗字段值2,結果2..,默認值)

四.組函數

      --對肯定的結果集使用函數得結果

      --注意:1.select後 組函數不能和非組函數或分組字段一塊兒使用

                2.where 不能使用組函數

                3.組函數僅在選擇列表和Having字句中有效

      --說明:1.組信息與單條記錄不能同時查詢

                2.組函數不能用在where中,能使用的地方select having

                3.null不參與運算

      經常使用函數

Count()  sum()  max()  min()  avg()

五.分組

--select 數據 from 數據源 where 行過濾條件 group by 分組字段 having 組過濾信息 order by 排序字段

--執行順序:from—where—group by—having—select—order by

 

group by:分組

1)  select出現分組函數,就不能使用非分組信息,能夠使用group by字段

2)  group by字段 能夠不出現select中,反之select除組函數外的,其餘字段必須出如今group by中

過濾組 having:

where:過濾行記錄,不能使用組函數   having:過濾組,能夠使用組函數

--先過濾再分組:

select max(sal) from emp where deptno in(10,30) group by deptno ;

--先分組再過濾:

select max(sal),deptno  from emp group by deptno having deptno in(10,30);

六.rowid 和 rownum  都是僞列

       rowid :

--rowid至關於表中每一條記錄的地址,數據插入到列表中的時候就已經存在,後續不會改變

--去重,沒有主鍵,沒有惟一的字段,能夠存在多條數據重複,想達到去重,能夠使用rowid

rownum : 會根據返回記錄生成一個序列化的數字 必須排序,不能直接取大於1的數

七.92語法

       1.笛卡爾積 : 交叉相乘

  2.等值鏈接:能夠是兩個表中相同字段作鏈接,能夠是不一樣字段作鏈接,但類型要保持一致

例:select * from emp,dept where emp.deptno=dept.deptno;

  3.非等值鏈接:

例:select * from emp,salgrade where sal between losal and hisal;

  4.自鏈接:特殊的等值鏈接(來自於同一張表)

  5.外鏈接: 看+和,主表在,的左邊就叫左外鏈接 主表在,的右邊叫右鏈接

相關文章
相關標籤/搜索