日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

empinfo Oracle数据库,Oracle数据库中相关技术详细操作

發布時間:2024/9/27 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 empinfo Oracle数据库,Oracle数据库中相关技术详细操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Distinct消除重復行數據:SELECT?DISTINCT?DEPTNO?FROM?EMP

2.NULL操作

如果某條記錄中有缺少的數據值,就是空值(NULL值)??罩挡坏扔?或者空格,空值是指未賦值、未知或不可用的值。

任何數據類型的列都可以包括NULL值,除非該列被定義為非空或者主鍵。

在查詢條件中NULL值用IS NULL作條件,非NULL值用IS NOT NULL做條件:SELECT?ENAME,JOB,SAL,COMM?FROM?EMP?WHERE?SAL<2000?AND?COMM?IS?NULL;

3.IN 操作在Where子句中可以使用IN操作符來查詢其列值在指定的列表中的行。對應IN操作的還有NOT IN,用法一樣,結果相反。:SELECT?ENAME,JOB,SAL?FROM?EMP???WHERE?job?IN?('SALESMAN',?'PRESIDENT',?'ANALYST');

4.BETWEEN…AND

5.

在WHERE子句中,可以使用BETWEEN操作符來查詢列值包含在指定區間內的行。BWTWEEN操作所指定的范圍也包括邊界。SELECT?ename,job,sal?FROM?EMP?WHERE?sal?BETWEEN?1000?AND?2000

oracle 集合運算

?集合運算就是將兩個或者多個結果集組合成為一個結果集。集合運算包括:

INTERSECT(交集),返回兩個查詢共有的記錄。

UNION ALL(并集),返回各個查詢的所有記錄,包括重復記錄。

UNION(并集),返回各個查詢的所有記錄,不包括重復記錄。

MINUS(補集),返回第一個查詢檢索出的記錄減去第二個查詢檢索出的記錄之后剩余的記錄。

當使用集合操作的時候,要注意:查詢所返回的列數以及列的類型必須匹配,列名可以不同。

例子:查詢出dept表中哪個部門下沒有員工。只需求出dept表中的部門號和emp表中的部門號的補集即可SELECT?DEPTNO?FROM?DEPT?MINUS?SELECT?DEPTNO?FROM?EMP

?把一個結果集插入到另一張結構相同的表中 ,使用union把若干條記錄一次性插入到一張表中

INSERT INTO DEPT ? SELECT 50,'公關部','臺灣' FROM DUAL ? UNION ? ?SELECT 60,'研發部','西安' FROM DUAL ? UNION ? SELECT 70,'培訓部','西安' FROM DUAL

?like模糊查詢

一般like模糊查詢 如下:select?b.*?from?b_city_info?b?where?b.c_name?like?'%西藏%';---用時:0.062?,此查詢將會進行全表掃描

修改為如下的語句:select?b.*?from?b_city_info?b?where?b.c_name?like?'西藏%';--用時:0.009

查詢執行計劃將會變成(INDEX RANGE SCAN),成功的利用了name字段的索引

使用rowId實現分頁

--分頁第一步 獲取數據物理地址select?t.rowid?rid,?t.c_id?from?b_city_info?t?order?by?t.c_id?desc;

--分頁第二步 取得最大頁數select?rownum?rn,?rid

from?(select?t.rowid?rid,?t.c_id?from?b_city_info?t?order?by?t.c_id?desc)

where?rownum?<=?10;

--分頁第三步 取得最小頁數select?rn,rid

from?(select?rownum?rn,?rid

from?(select?t.rowid?rid,?t.c_id?from?b_city_info?t?order?by?t.c_id?desc)

where?rownum?<=?10)

where?rn?>?5;

--分頁第四步 再根據物理地址,查詢出具體數據select?t1.*,t1.rowid

from?b_city_info?t1

where?t1.rowid?in

(select?dt.rid

from?(select?rownum?rn,?rid

from?(select?t.rowid?rid,?t.c_id?from?b_city_info?t?order?by?t.c_id?desc)

where?rownum?<=?10000)dt

where?rn?>?5000);

Oracle日期和字符串、數字的格式化

1.select SYSDATE from dual t;--系統日期

2.select TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') from dual t;--格式化日期

3.select TO_DATE('20140630 18:28:20','YYYY/MM/DD HH24:MI:SS') from dual t;--格式化日期

4.select sysdate,sysdate - interval '7' MINUTE from dual;--當前時間減去7分鐘的時間

5.select sysdate - interval '7' hour from dual;--當前時間減去7小時的時間

6.select sysdate - interval '7' day from dual;--當前時間減去7天的時間

7.select sysdate,sysdate - interval '7' month from dual;--當前時間減去7月的時間

8.select sysdate,sysdate - interval '7' year from dual;--當前時間減去7年的時間

9.select sysdate,sysdate - 8*interval '7' hour from dual;--時間間隔乘以一個數字

10.select to_number('222.2') from dual t;--輸出222.2

11.select to_char(10000000000,'$999,999,999,99') from dual;--按格式輸出

12.select to_char(1000000,'L99,999,99') from dual;--輸出 RMB10,000,00

13.select trunc(to_number('1000000.123'),3) from dual;--保留三位有效數字

?Dual虛擬表,只有一列

當查詢時間或者日期這些對象的時候就需要使用這個表select?sysdate?from?dual

查詢當前連接用戶select?user?from?dual;

?把字符串按照分割符分解成不同的部分select?regexp_substr('A,B,C,D,E',?'[^,]+',?1,?level,?'i')?as?str

from?dual

connect?by?level?<=

length('A,B,C,D,E')?-?length(regexp_replace('A,B,C,D,E',?',',?''))?+?1;

?將一張表的數據導入到另一張表中

前提:兩表結構一樣insert?into?表A?select?*?from?表B

如果兩表的數據結構不一樣

INSERT INTO 表1(字段1,字段2,字段n)

select 表2.字段1,表2.字段2,表2.字段n from 表2

?oracle 表數據恢復

第一中方式:創建一個備份表,存放三小時前的數據create?table?tabletest_2014bak?nologging?as

select?*?from?tabletest?as?of?timestamp?sysdate-21/24?where?name?!=?'boat';

第二種方式:回復表tabletest中的數據到某一個時間點,這個時間點一定要前于當前時間alter?table?tabletest?enable?row?movement;

Flashback?table?tabletest?to?timestamp?to_timestamp('2014-12-30?17:00:00','yyyy-mm-dd?hh24:mi:ss');

?Oracle修改原始表中字段的數據類型

方法一:

//?創建一樣的臨時表

create?table?T_BUSINESS_MODEL_TEMP??as?select?*?from??T_BUSINESS_MODEL?where?1=2?;

//?對臨時表改數據類型

alter?table?T_BUSINESS_MODEL_TEMP?modify?MODEL_MONEY?NUMBER(10,2);

//?將原表數據賦值到最新的表中

insert?into?T_BUSINESS_MODEL_TEMP?select?*?from?T_BUSINESS_MODEL;

//?刪掉原來的表

drop?table?T_BUSINESS_MODEL;

//?將臨時表重新命名為原表

alter?table?T_BUSINESS_MODEL_TEMP?rename?to?T_BUSINESS_MODEL;

//?添加原表的約束?(主鍵,外鍵,索引)

alter?table?T_BUSINESS_MODEL

add?constraint?PK_T_BUSINESS_MODEL?primary?key?(ID);

方法二:--?字段重命名

alter?table?PROJECT?rename?column?NAME?to?NAME1;

-----??把字段名稱改成原來的名稱

alter?table?PROJECT?add??NAME?VARCHAR2(300);

---?賦值

update?PROJECT?np

set?np.name=np.name1;

commit;

---?刪掉原來重命名的字段

alter?table?PROJECT?drop?column??NAME1;

?Oracle?遞歸查詢??START?WITH....CONNECT?BY?PRIOR......

SELECT?*?FROM?B_CITY_INFO???START?WITH?c_id=540000

CONNECT?BY?PRIOR?c_id=p_c_id?;

Oracle數據庫調用存儲過程和刪除該文由職坐標整理并發布,了解更多相關內容,請關注職坐標Oracle數據庫頻道!

?

調用:set?serveroutput?on;

exec 存儲過程名;

刪除:

drop procedure 存儲過程名

該文由職坐標整理并發布,了解更多相關內容,請關注職坐標Oracle數據庫頻道!

總結

以上是生活随笔為你收集整理的empinfo Oracle数据库,Oracle数据库中相关技术详细操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。