久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Oracle培訓教材

瀏覽:3日期:2023-11-14 16:55:49
一.SQL語言簡介1. SQL概述SQL是一種面向數據庫的通用數據處理語言規范,能完成以下幾類功能:提取查詢數據,插入修改刪除數據,生成修改和刪除數據庫對象,數據庫安全控制,數據庫完整性及數據保護控制。 數據庫對象包括表、視圖、索引、同義詞、簇、觸發器、函數、過程、包、數據庫鏈、快照等(表空間、回滾段、角色、用戶)。數據庫通過對表的操作來治理存儲在其中的數據。2. 數據庫查詢1);用SELECT語句從表中提取查詢數據。語法為SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {eXPressions} [ASC/DESC]; 說明:SELECT子句用于指定檢索數據庫的中哪些列,FROM子句用于指定從哪一個表或視圖中檢索數據。2);SELECT中的操作符及多表查詢WHERE子句。(LIKE,IS,…) WHERE子句中的條件可以是一個包含等號或不等號的條件表達式,也可以是一個含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比較運算符的條件式,還可以是由單一的條件表達通過邏輯運算符組合成復合條件。比較操作符 =; ><>=; <=; !=; <> SQL操作符 BETWEEN … AND…INLIKE;IS NULL;;; NOT BETWEEN … AND… NOT IN NOT LIKEIS NOT NULL邏輯操作符 AND;;;OR; NOT3);ORDER BY子句ORDER BY 子句使得SQL在顯示查詢結果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表達式的值確定。4);連接查詢利用SELECT語句進行數據庫查詢時,可以把多個表、視圖的數據結合起來,使得查詢結果的每一行中包含來自多個表達式或視圖的數據,這種操作被稱為連接查詢。連接查詢的方法是在SELECT命令的FROM子句中指定兩個或多個將被連接查詢的表或視圖,并且在WHERE子句告訴Oracle如何把多個表的數據進行合并。根據WHERE子句中的條件表達式是等還是不等式,可以把連接查詢分為等式連接和不等式連接。5);子查詢假如某一個SELECT命令(查詢1)出現在另一個SQL命令(查詢2)的一個子句中,則稱查詢1是查詢2的子查詢。3.;;基本數據類型(NUMBER,VARCHAR2,DATE); ORACEL支持下列內部數據類型:l;;;;VARCHAR2 變長字符串,最長為2000字符。l;;;;NUMBER數值型。l;;;;LONG;;;變長字符數據,最長為2G字節。l;;;;DATE;;;;日期型。l;;;;RAW;;;;二進制數據,最長為255字節。l;;;;LONG RAW; 變長二進制數據,最長為2G字節。l;;;;ROWID;;;二六進制串,表示表的行的唯一地址。l;;;;CHAR;;;;定長字符數據,最長為255。 4.;;常用函數用法: 一個函數類似于一個算符,它操作數據項,返回一個結果。函數在格式上不同于算符,它個具有變元,可操作0個、一個、二個或多個變元,形式為:函數名(變元,變元,…)函數具有下列一般類形:l 單行函數l 分組函數1)單行函數對查詢的表或視圖的每一行返回一個結果行。它有數值函數,字符函數,日期函數,轉換函數等。2)分組函數返回的結果是基于行組而不是單行,所以分組函數不同于單行函數。在許多分組函數中可有下列選項:l DISTRNCT 該選項使分組函數只考慮變元表達式中的不同值。l ALL該選項使分組函數考慮全部值,包含全部重復。全部分組函數(除COUNT(*)外)忽略空值。假如具有分組函數的查詢,沒有返回行或只有空值(分組函數的變元取值的行),則分組函數返回空值。l;;;;單行函數1);;;;;數字函數ABS; 取絕對值; POWER 乘方LN10為底數取冪SQRT 平方根;;EXP;;;;e的n次乘方; LOG(m,n)m為底數n取冪 ;;;;數學運算函數:ACOS ATAN ATAN2 COS COSH; SIGN SIN SINH TAN TANH CEIL大于或等于取整數FLOOR ;;;;小于或等于取整數MOD;;;;取余數;;;;;ROUND(n,m)按m的位數取四舍五入值假如round(日期): 中午12以后將是明天的日期. round(sysdate,'Y')是年的第一天TRUNC(n,m) 按m的位數取前面的數值假如trunc(日期), 確省的是去掉時間2);;;;;字符函數CHR; 按數據庫的字符集由數字返回字符; CONCAT(c1,c2); ;把兩個字符c1,c2組合成一個字符, 和 相同REPLACE(c,s,r); ;;;把字符c里出現s的字符替換成r, 返回新字符 SUBSTR(c,m,n)m大于0,字符c從前面m處開始取n位字符,m等于0和1一樣, m小與0,字符c從后面m處開始取n位字符TRANSLATE(c,f1,t1); ;;字符c按f1到t1的規則轉換成新的字符串INITCAP ;字符首字母大寫,其它字符小寫LOWER ;字符全部小寫UPPER 字符全部大寫LTRIM(c1,c2);;;去掉字符c1左邊出現的字符c2RTRIM(c1,c2) TRIM(c1,c2) ;;;去掉字符c1左右兩邊的字符c2LPAD(c1,n,c2) 字符c1按制定的位數n顯示不足的位數用c2字符串替換左邊的空位RPAD(c1,n,c2)3);;;;;日期函數ADD_MONTHS(d,n);;;;;日期值加n月LAST_DAY(d) 返回當月的最后一天的日期MONTHS_BETWEEN(d1,d2) ;;;兩個日期值間的月份,d1<d2 返回負數NEXT_DAY(d) ;;;;;返回日期值下一天的日期SYSDATE 當前的系統時間 DUAL是SYS用戶下一個空表,它只有一個字段dummy4);;;;;轉換函數(1)TO_CHAR(date,'日期顯示格式') TO_CHAR(number) ;;;;;用于顯示或報表的格式對齊TO_DATE(char,'日期顯示格式') ; TO_LOB;;;把long字段轉換成lob字段TO_NUMBER(char);;;;;用于計算或者比較大小 5);;;;;轉換函數(2)to_date里日期顯示格式YYYY; 年YEAR;YYY;;;YY; YQ季度;;;MM;;;月MONTH;;;;MON;;W; 星期 (week of month);;;;WW, IW (week of year) (說明:周計是按ISO標準,從1月1日的星期數到后面七天為一周,不一定是從周一到周日) DD 日DAY;;DY; HH24;小時;;;HH12;HH; MI 分鐘;;;SS; 秒假如想固定日期的顯示格式可以在數據庫的參數文件initorasid.ora里新寫一行參數 NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss可以在UNIX環境變量或者NT的注冊表里的設置 NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss6);;;;;轉換函數(3)假如想固定日期的顯示格式可以用alter session命令改變SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';它的作用順序如下:initialization parameterEnvironment variableALTER SESSION command7);;;;;轉換函數 (4)to_char(number)里數字顯示格式9;;數字位0;;數字前面補0 to_char(-1200,'00000.00').;;;小數點的位置;,;;;標記位置的逗號;;;;用在數字顯示格式的左邊;L;;根據數據庫字符集加貨幣符號;to_char(-1200,'L9999.99');;;;;B;;把數字0顯示為空格,用在數字顯示格式的右邊 MI; 右邊的負數標記 to_char(-1200,'9999.99MI')PR;括起來的負數;;;;to_char(-1200,'9999.99PR')EEEE;;用指數方式表示;;;;;;;to_char(-1200,'9999.99EEEE')8);;;;;輸入字符,返回數字的函數instr(c1,c2);;字符c2出現在c1的位置, 不出現, 返回0, 常用于模糊查詢length(c); 按數據庫的字符集,算出字符c的長度,跟數據庫的字符集有關, 一個漢字長度為19);;;;;有邏輯比較的函數NVL(EXPR1, EXPR2)函數解釋:;;;IF EXPR1=NULL ;;RETURN EXPR2 ELSE RETURN EXPR110);DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函數解釋: IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 ..… ELSE RETURN NULL;舉例: decode(id,1,'dept sale',2,'dept tech')l;;;;;集合函數;;;經常和group by一起使用 1);;;集合函數列表AVG ;(DISTINCT ALL N);;取平均值COUNT;;;;;(DISTINCT ALL N expr * );;統計數量MAX;;(DISTINCT ALL N);;取最大值MIN ;(DISTINCT ALL N);;取最小值SUM ;(DISTINCT ALL N);;取合計值STDDEV ;(DISTINCT ALL N);;取偏差值,假如組里選擇的內容都相同,結果為0VARIANCE (DISTINCT ALL N);;;;;;;取平方偏差值2);;;使用集合函數的語法SELECT column, group_function FROM tableWHERE condition;;;;GROUP BY group_by_expressionHAVING group_condition; ORDER BY column;3);;;使用count時的注重事項SELECT COUNT(*) FROM table;SELECT COUNT(常量) FROM table;都是統計表中記錄數量,假如沒有PK后者要好一些SELECT COUNT(all 字段名) FROM table;SELECT COUNT(字段名) FROM table;不會統計為NULL的字段的數量SUM,AVG時都會忽略為NULL的字段4);用group by時的限制條件SELECT字段名不能隨意, 要包含在GROUP BY的字段里GROUP BY后ORDER BY時不能用位置符號和別名限制GROUP BY的顯示結果, 用HAVING條件5);;;例子SQL> select title,sum(salary) payroll from s_empwhere title like 'VP%'group by title having sum(salary)>5000;order by sum(salary) desc;找出某表里字段重復的記錄數, 并顯示SQL> select (duplicate field names) from table_name group by (list out fields) having count(*)>1;5. 數據操縱語言命令:數據庫操縱語言(DML)命令用于查詢和操縱模式對象中的數據,它不隱式地提交當前事務。 它包含UPDATE、INSERT、DELETE、EXPLAIN PLAN、SELECT和LOCK TABLE 等命令。下面簡單介紹一下:1);;;;;UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions};例如:S;;QL>UPDATE EMP ;;;;;;;SET JOB =’MANAGER’ WHERE ENAME=’MAPTIN’; ;;SQL >SELECT * FROM EMP;UPDATE子句指明了要修改的數據庫是EMP,并用WHERE子句限制了只對名字(ENAME)為’MARTIN’的職工的數據進行修改,SET子句則說明修改的方式,即把’MARTION’的工作名稱(JOB)改為’MARAGER’.2);;;;;INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…};例如:SQL>SELECT INTO DEPT(DNAME, DEPTNO) VALUES (‘ACCOUNTING’,10)3);;;;;DELETE FROM tablename WHERE {conditions};例如:SQL>DELETE FROM EMP ;WHERE EMPNO = 7654;DELETE命令刪除一條記錄,而且DELETE命令只能刪除整行,而不能刪除某行中的部分數據.4);;;;;事務控制命令提交命令(COMMIT):可以使數據庫的修改永久化.設置AUTOCOMMIT為答應狀態:SQL >SET AUTOCOMMIT ON;回滾命令(ROLLBACK):消除上一個COMMIT命令后的所做的全部修改,使得數據庫的內容恢復到上一個COMMIT執行后的狀態.使用方法是:SQL>ROLLBACK;二.Oracle擴展PL/SQL簡介1. PL/SQL概述。PL/SQL是Oracle對SQL規范的擴展,是一種塊結構語言,即構成一個PL/SQL程序的基本單位(過程、函數和無名塊)是邏輯塊,可包含任何數目的嵌套了快。這種程序結構支持逐步求精方法解決問題。一個塊(或子塊)將邏輯上相關的說明和語句組合在一起,其形式為:DECLARE---說明BEGIN---語句序列EXCEPTION---例外處理程序END;它有以下優點:l;;;;;支持SQL;l;;;;;生產率高;l;;;;;性能好;l;;;;;可稱植性;l;;;;;與ORACLE集成.2. PL/SQL體系結構PL/SQL運行系統是種技術,不是一種獨立產品,可認為這種技術是PL/SQL塊和子程序的一種機,它可接收任何有效的PL/SQL塊或子程序。如圖所示:PL/SQL塊 PL/SQL機 PL/SQL塊過程性語句執行器SQL語句PL/SQL機可執行過程性語句,而將SQL語句發送到ORACLE服務器上的SQL語句執行器。 在ORACLE預編譯程序或OCI程序中可嵌入無名的PL/SQL塊。假如ORACLE具有PROCEDURAL選件,有名的PL/SQL塊(子程序)可單獨編譯,永久地存儲在數據庫中,預備執行。3. PL/SQL基礎:PL/SQL有一字符集、保留字、標點、數據類型、嚴密語法等,它與SQL有相同表示,現重點介紹。1);;;;;數據類型:如下表所示數據類型子類型純量類型數值BINARY_INTEGERNATURAL,POSITIVENUMBERDEC,DECIMAL,DOUBLE PRECISION,PLOAT,INTEGER,INT,NUMERIC,REAL,SMALLINT字符CHARCHARACTER,STRINGVARCHAR2VARCHARLONGLONG RAWRAWRAWID邏輯BOOLEAN日期DATE組合類型記錄RECORD表TABLE2);;;;;變量和常量在PL/SQL程序中可將值存儲在變量和常量中,當程序執行時,變量的值可以改變,而常量的值不能改變。3);;;;;程序塊式結構:DECLARE 變量說明部分;BEGIN 執行語句部分;[EXCEPTION 例外處理部分;]END;4. 控制語句:分支語句:IF condition THEN Sequence_of_statements;END IF;IF condition THEN Sequence_of_statement1;ELSE Sequence_of_statement2;END IF;IF condition1 THEN Sequence_of_statement1;ELSIF condition2 THEN Sequence_of_statement2;ELSIF condition3 THEN Sequence_of_statement3;END IF; 5. 循環語句:LOOP Sequence_of_statements; IF condition THEN EXIT; END IF;END LOOP; WHILE condition LOOP Sequence_of_statements;END LOOP;FOR counter IN lower_bound..higher_bound LOOP Sequence_of_statements;END LOOP;6. 子程序:存儲過程: CREATE PROCEDURE 過程名 (參數說明1,參數說明2, 。 。。) IS [局部說明] BEGIN 執行語句; END 過程名;存儲函數: CREATE FUNCTION 函數名 (參數說明1,參數說明2, 。。。)RETURN 類型 IS [局部說明] BEGIN 執行語句; ;;;;END 函數名;三.Decode()函數使用技巧1. 含義解釋:DECODE(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)該函數的含義如下:IF 條件=值1 THENRETURN(翻譯值1)ELSIF 條件=值2 THENRETURN(翻譯值2)......ELSIF 條件=值n THENRETURN(翻譯值n)ELSERETURN(缺省值)END IF2. 使用方法: 1);比較大小select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1例如:變量1=10,變量2=20則sign(變量1-變量2)返回-1,decode解碼結果為“變量1”,達到了取較小值的目的。表、視圖結構轉化現有一個商品銷售表sale,表結構為:month  char(6)  --月份sellnumber(10,2) --月銷售金額現有數據為:2000011000200002110020000312002000041300200005140020000615002000071600200101110020020212002003011300想要轉化為以下結構的數據:year char(4)  --年份month1number(10,2) --1月銷售金額month2number(10,2) --2月銷售金額month3number(10,2) --3月銷售金額month4number(10,2) --4月銷售金額month5number(10,2) --5月銷售金額month6number(10,2) --6月銷售金額month7number(10,2) --7月銷售金額month8number(10,2) --8月銷售金額month9number(10,2) --9月銷售金額month10number(10,2) --10月銷售金額month11number(10,2) --11月銷售金額month12number(10,2) --12月銷售金額結構轉化的SQL語句為:create or replace viewv_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)asselect substrb(month,1,4),sum(decode(substrb(month,5,2),'01',sell,0)),sum(decode(substrb(month,5,2),'02',sell,0)),sum(decode(substrb(month,5,2),'03',sell,0)),sum(decode(substrb(month,5,2),'04',sell,0)),sum(decode(substrb(month,5,2),'05',sell,0)),sum(decode(substrb(month,5,2),'06',sell,0)),sum(decode(substrb(month,5,2),'07',sell,0)),sum(decode(substrb(month,5,2),'08',sell,0)),sum(decode(substrb(month,5,2),'09',sell,0)),sum(decode(substrb(month,5,2),'10',sell,0)),sum(decode(substrb(month,5,2),'11',sell,0)),sum(decode(substrb(month,5,2),'12',sell,0))from salegroup by substrb(month,1,4);四.NULL 使用詳解1. 含義解釋: 問:什么是NULL?答:在我們不知道具體有什么數據的時候,也即未知,可以用NULL,我們稱它為空,ORACLE中,含有空值的表列長度為零。 ORACLE答應任何一種數據類型的字段為空,除了以下兩種情況:1、主鍵字段(primary key),2、定義時已經加了NOT NULL限制條件的字段說明:1、等價于沒有任何值、是未知數。2、NULL與0、空字符串、空格都不同。3、對空值做加、減、乘、除等運算操作,結果仍為空。4、NULL的處理使用NVL函數。5、比較時使用要害字用“is null”和“is not null”。6、空值不能被索引,所以查詢時有些符合條件的數據可能查不出來,count(*)中,用nvl(列名,0)處理后再查。7、排序時比其他數據都大(索引默認是降序排列,小→大),所以NULL值總是排在最后。2. 使用方法: SQL> select 1 from dual where null=null;沒有查到記錄SQL> select 1 from dual where null='';沒有查到記錄SQL> select 1 from dual where ''=''沒有查到記錄SQL> select 1 from dual where null is null; 1--------- 1SQL> select 1 from dual where nvl(null,0)=nvl(null,0); 1--------- 1對空值做加、減、乘、除等運算操作,結果仍為空。SQL> select 1+null from dual;SQL> select 1-null from dual;SQL> select 1*null from dual;SQL> select 1/null from dual;查詢到一個記錄.注:這個記錄就是SQL語句中的那個null設置某些列為空值update table1 set 列1=NULL where 列1 is not null;現有一個商品銷售表sale,表結構為:month  char(6)  --月份sellnumber(10,2) --月銷售金額create table sale (month char(6),sell number);insert into sale values('200001',1000);insert into sale values('200002',1100);insert into sale values('200003',1200);insert into sale values('200004',1300);insert into sale values('200005',1400);insert into sale values('200006',1500);insert into sale values('200007',1600);insert into sale values('200101',1100);insert into sale values('200202',1200);insert into sale values('200301',1300);insert into sale values('200008',1000);insert into sale(month) values('200009');(注重:這條記錄的sell值為空)commit;共輸入12條記錄SQL> select * from sale where sell like '%';MONTH;;;;SELL------ ---------200001;;;1000200002;;;1100200003;;;1200200004;;;1300200005;;;1400200006;;;1500200007;;;1600200101;;;1100200202;;;1200200301;;;1300200008;;;1000查詢到11記錄.結果說明:查詢結果說明此SQL語句查詢不出列值為NULL的字段此時需對字段為NULL的情況另外處理。 SQL> select * from sale where sell like '%' or sell is null;SQL> select * from sale where nvl(sell,0) like '%';MONTH;;;;SELL------ ---------200001;;;1000200002;;;1100200003;;;1200200004;;;1300200005;;;1400200006;;;1500200007;;;1600200101;;;1100200202;;;1200200301;;;1300200008;;;1000200009查詢到12記錄.Oracle的空值就是這么的用法,我們最好熟悉它的約定,以防查出的結果不正確。五.如何查找、刪除表中重復的記錄1. 問題提出: 當我們想要為一個表創建唯一索引時,假如該表有重復的記錄,則無法創建成功。 2. 方法原理: 1);;;;Oracle中,每一條記錄都有一個rowid,rowid在整個數據庫中是唯一的,  rowid確定了每條記錄是在ORACLE中的哪一個數據文件、塊、行上。2);;;;在重復的記錄中,可能所有列的內容都相同,但rowid不會相同,所以只要確定出重復記錄中  那些具有最大rowid的就可以了,其余全部刪除。3);;;;以下語句用到了3項技巧:rowid、子查詢、別名。3. 實現方法: SQL> create table a ( 2; bm char(4),;--編碼 3; mc varchar2(20);;;;--名稱 4; ) 5; /表已建立.SQL> insert into a values('1111','1111');SQL> insert into a values('1112','1111');SQL> insert into a values('1113','1111');SQL> insert into a values('1114','1111');SQL> insert into a select * from a;插入4個記錄.SQL> commit;完全提交.SQL> select rowid,bm,mc from a;ROWID;;;BMMC------------------ ---- -------000000D5.0000.0002 1111 1111000000D5.0001.0002 1112 1111000000D5.0002.0002 1113 1111000000D5.0003.0002 1114 1111000000D5.0004.0002 1111 1111000000D5.0005.0002 1112 1111000000D5.0006.0002 1113 1111000000D5.0007.0002 1114 1111查詢到8記錄.查出重復記錄SQL> select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);ROWID;;;BMMC------------------ ---- --------------------000000D5.0000.0002 1111 1111000000D5.0001.0002 1112 1111000000D5.0002.0002 1113 1111000000D5.0003.0002 1114 1111刪除重復記錄SQL> delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);刪除4個記錄.SQL> select rowid,bm,mc from a;ROWID;;;BMMC------------------ ---- --------------------000000D5.0004.0002 1111 1111000000D5.0005.0002 1112 1111000000D5.0006.0002 1113 1111000000D5.0007.0002 1114 1111六.如何正確利用Rownum來限制查詢所返回的行數1. 含義解釋: 1);;;;rownum是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽字段可以用于限制查詢返回的總行數。 2);;;;rownum不能以任何基表的名稱作為前綴。 2. 使用方法: 現有一個商品銷售表sale,表結構為:month  char(6)  --月份sellnumber(10,2) --月銷售金額create table sale (month char(6),sell number);insert into sale values('200001',1000);insert into sale values('200002',1100);insert into sale values('200003',1200);insert into sale values('200004',1300);insert into sale values('200005',1400);insert into sale values('200006',1500);insert into sale values('200007',1600);insert into sale values('200101',1100);insert into sale values('200202',1200);insert into sale values('200301',1300);insert into sale values('200008',1000);commit;SQL> select rownum,month,sell from sale where rownum=1;(可以用在限制返回記錄條數的地方,保證不出錯,如:隱式游標) ROWNUM MONTH;;;;SELL--------- ------ --------- 1 200001;;;1000SQL> select rownum,month,sell from sale where rownum=2;(1以上都查不到記錄)沒有查到記錄SQL> select rownum,month,sell from sale where rownum>5;(由于rownum是一個總是從1開始的偽列,Oracle 認為這種條件不成立,查不到記錄)沒有查到記錄只返回前3條紀錄SQL> select rownum,month,sell from sale where rownum<4; ROWNUM MONTH;;;;SELL--------- ------ --------- 1 200001;;;1000 2 200002;;;1100 3 200003;;;1200如何用rownum實現大于、小于邏輯?(返回rownum在4—10之間的數據)(minus操作,速度會受影響)SQL> select rownum,month,sell from sale where rownum<10 2; minus 3; select rownum,month,sell from sale where rownum<5; ROWNUM MONTH;;;;SELL--------- ------ --------- 5 200005;;;1400 6 200006;;;1500 7 200007;;;1600 8 200101;;;1100 9 200202;;;1200想按日期排序,并且用rownum標出正確序號(有小到大)SQL> select rownum,month,sell from sale order by month; ROWNUM MONTH;;;;SELL--------- ------ --------- 1 200001;;;1000 ;;2 200002;;;1100 3 200003;;;1200 4 200004;;;1300 5 200005;;;1400 6 200006;;;1500 7 200007;;;1600 11 200008;;;1000 8 200101;;;1100 9 200202;;;1200 10 200301;;;1300查詢到11記錄.可以發現,rownum并沒有實現我們的意圖,系統是按照記錄入庫時的順序給記錄排的號,rowid也是順序分配的SQL> select rowid,rownum,month,sell from sale order by rowid;ROWID ROWNUM MONTH;;;;SELL------------------ --------- ------ ---------000000E4.0000.0002;;;;;;1 200001;;;1000000000E4.0001.0002 2 200002;;;1100000000E4.0002.0002 3 200003;;;1200000000E4.0003.0002 4 200004;;;1300000000E4.0004.0002 5 200005;;;1400000000E4.0005.0002 6 200006;;;1500000000E4.0006.0002 7 200007;;;1600000000E4.0007.0002 8 200101;;;1100000000E4.0008.0002 9 200202;;;1200000000E4.0009.0002;;;;;10 200301;;;1300000000E4.000A.0002;;;;;11 200008;;;1000查詢到11記錄.正確用法,使用子查詢SQL> select rownum,month,sell from (select month,sell from sale group by month,sell) where rownum<13; ROWNUM MONTH;;;;SELL--------- ------ --------- 1 200001;;;1000 2 200002;;;1100 3 200003;;;1200 4 200004;;;1300 5 200005;;;1400 6 200006;;;1500 7 200007;;;1600 8 200008;;;1000 9 200101;;;1100 10 200202;;;1200 11 200301;;;1300按銷售金額排序,并且用rownum標出正確序號(有小到大)SQL> select rownum,month,sell from (select sell,month from sale group by sell,month) where rownum<13; ROWNUM MONTH;;;;SELL--------- ------ --------- 1 200001;;;1000 2 200008;;;1000 3 200002;;;1100 4 200101;;;1100 5 200003;;;1200 6 200202;;;1200 7 200004;;;1300 8 200301;;;1300 9 200005;;;1400 10 200006;;;1500 11 200007;;;1600查詢到11記錄.利用以上方法,如在打印報表時,想在查出的數據中自動加上行號,就可以利用rownum。 返回第5—9條紀錄,按月份排序SQL> select * from (select rownum row_id ,month,sell 2; from (select month,sell from sale group by month,sell)) 3; where row_id between 5 and 9; ROW_ID MONTH;;;;;SELL---------- ------ ---------- 5 200005;;;;1400 6 200006;;;;1500 7 200007;;;;1600 8 200008;;;;1000 9 200101;;;;1100
標簽: Oracle 數據庫
主站蜘蛛池模板: 国产精品自拍视频 | 亚洲成人免费视频 | 日本一区二区三区中文字幕 | 日韩视频一区二区三区 | 成人福利在线观看 | 久久se精品一区精品二区 | 精品一二区 | 桃色视频在线播放 | 欧美黄色网络 | 在线观看成人国产 | 欧美一区二区免费 | 中文字幕91 | 91文字幕巨乱亚洲香蕉 | 99久久99热这里只有精品 | 久久久精彩视频 | 国产日韩精品一区二区 | 午夜精品91| 久久久久久久久国产精品 | 欧美成人一区二区 | 欧美在线影院 | 国产综合精品一区二区三区 | 美女中文字幕视频 | 日韩精品一区二区三区老鸭窝 | 在线视频国产一区 | 久久久精| 亚洲一区中文字幕在线 | 成人免费视频网址 | 欧美在线综合视频 | 国产精品第一国产精品 | 99精品视频一区二区三区 | 久久白虎| 一区二区三区在线 | 欧美精品被 | 久久精品一区二区三区四区 | 午夜精品久久久久久99热软件 | 偷拍自拍第一页 | 欧美视频在线一区 | 每日更新在线观看av | 亚洲第一视频网站 | 日韩一级片 | 日操| 久久精品这里热有精品 | 国产成人免费视频网站高清观看视频 | 国产欧美日韩综合精品一区二区 | 久久久影视 | 国产精品99一区二区三区 | 国产99久久久精品视频 | 男人的天堂久久 | 成人av一区二区三区 | 欧美成年视频 | 91在线资源 | 亚洲视频中文字幕 | 久久久久久网站 | 中国一级免费毛片 | 国产精品一区二区视频 | 精品国产三级 | 人人干人人干 | 日韩在线不卡 | 日精品 | 天堂免费在线观看视频 | 97视频久久久 | 亚洲精品中文字幕 | 婷婷激情五月 | 国产男人的天堂 | 中文字幕av黄色 | 精品亚洲视频在线观看 | 久久亚洲一区二区三区四区五区高 | 久久国产精品首页 | 欧美∨a | 成人黄色片网站 | 男人天堂视频在线观看 | 成人一区二区三区久久精品嫩草 | 国产精品毛片久久久久久久 | 久久av一区| 午夜一级毛片 | 国产精品69毛片高清亚洲 | 国产中文一区 | 51国产午夜精品免费视频 | 欧美精品一区二区三区在线 | 欧美精品成人一区二区三区四区 | 成人在线免费电影 | 国产中文在线 | 一区二区三区精品视频 | 日韩中文一区二区三区 | 久久久国产一区 | 日韩一区二区三区在线视频 | 欧美色阁| 久久久久久久久一区 | 精品少妇一区二区三区在线播放 | 国产综合亚洲精品一区二 | 波多野结衣一区二区三区四区 | 九九九色 | 国产精品久久久久久久久久久久久久 | 91伦理片 | 久久99国产精品久久99大师 | 亚洲国产精品久久久 | 日韩久久一区二区 | 91视频播放 | 色视频在线播放 | 男人的天堂久久精品 | 一区不卡 | 亚洲精品在线视频 | 亚洲精品久久久久久一区二区 | 久久久久久久久久久久国产精品 | 我要看黄色一级大片 | 四虎影院免费网址 | 国产三级在线 | 国产欧美日本 | 久久久成 | 91av免费在线观看 | av免费网站在线观看 | 日韩欧美一级精品久久 | 草草网| 亚洲在线免费观看 | 国产看片网站 | 亚洲欧美一区二区三区在线 | 久综合网 | 一区二区三区免费 | 91视频电影 | 国产乱码精品1区2区3区 | 在线天堂新版最新版在线8 www.国产欧美 | 91社影院在线观看 | 久久久久久国产精品 | 欧美九九九 | 日韩无| 91在线精品一区二区 | 99爱精品在线 | 三级视频在线 | 日韩专区在线 | 免费毛片网站 | 在线播放国产一区二区三区 | 成人免费毛片高清视频 | 亚洲免费成人 | 黄色直接看 | 国产精品美女久久久久aⅴ国产馆 | 五月天婷婷国产精品 | 国产精品久久久久久一区二区三区 | 美女在线视频一区二区 | 久久久香蕉 | 亚洲欧美日韩一区二区 | 中文字幕一级毛片 | 天天综合7799精品影视 | 亚洲精品自在在线观看 | 日韩欧美久久 | 日本三级中国三级99人妇网站 | 国产精品色哟哟哟 | 中文字字幕在线观看 | 综合网在线 | 精品久| 亚洲国产成人一区二区精品区 | 国产区在线 | 久草天堂 | 国产精品成人3p一区二区三区 | av免费网站| 亚洲精品久久久久久国产精华液 | 一区二区三区免费在线 | 九九免费精品视频 | 婷婷久久五月天 | 四虎影院最新网站 | 99re热精品视频 | 久综合网 | 我看一级毛片 | 久久性 | www.久久 | 制服 丝袜 激情 欧洲 亚洲 | 久久国产视频精品 | 精品久久97 | 91久久精品国产 | 91免费电影 | 久久草草影视免费网 | 亚洲精品v| 日韩在线播放一区二区三区 | 不卡视频一区二区三区 | 免费在线成人av | 成人免费视频视频 | 亚洲欧美日韩精品久久奇米色影视 | 北条麻妃一区二区三区在线观看 | 欧美激情在线精品一区二区三区 | 日韩在线视频一区 | 欧美成人精品一区二区男人看 | 9uu在线观看| 日本一区二区三区在线视频 | 在线免费黄色 | 国产一区在线不卡 | 免费不卡视频 | 热久久这里只有精品 | 中文字幕八区 | 日韩精品一区二区三区 | 91视视频在线观看入口直接观看 | 久久www免费视频 | 亚洲精选久久 | 在线99热| 欧美成人黑人xx视频免费观看 | 激情毛片 | 久久精品国产免费 | 欧美激情一区二区 | 国产91亚洲精品久久久 | 古风h啪肉1v1摄政王 | 欧美成年黄网站色视频 | 91精品国产91久久久久久吃药 | 亚洲精品视频在线看 | 国产91久久久 | 精品影院| 91伦理片 | av在线免费看片 | 国产情侣一区二区三区 | 久久久精品网站 | 97伦理片| 性做久久久久久久免费看 | 亚洲成人免费电影 | 毛片免费在线观看 | 日韩欧美一区二区三区视频 | 久久国产精品一区二区 | 另类综合在线 | 精品久久久久久国产 | 午夜久久| 在线观看中文字幕 | 一区免费观看 | 狠狠综合| 日本久久久久久 | 久久久综合网 | 精品国产乱码久久久久久蜜臀 | 国产精品久久久久影院色老大 | 中文字幕av亚洲精品一部二部 | 91.成人天堂一区 | 久久午夜电影 | 日韩在线不卡 | 在线观看国产www | 欧美成人性生活 | 国产不卡精品视频 | 欧美在线观看视频 | 亚洲一区二区三区福利 | 99国产精品99久久久久久 | 日韩高清一区二区 | 亚洲综合无码一区二区 | 国产精品视频久久久 | 亚洲一区二区在线 | 天天看天天摸天天操 | 欧美簧片在线 | 国产日韩精品久久 | 99久久婷婷国产综合精品电影 | 国产中文字幕在线观看 | 中文字幕视频三区 | 成人精品视频99在线观看免费 | 久久这里只有精品首页 | 日日撸 | 国产v日产∨综合v精品视频 | 亚洲一区丝袜 | 亚洲va中文字幕 | h免费观看 | 国产视频一区在线 | 久久另类 | 精品一区二区三区免费 | 91精品国产91久久久久久最新 | 五月天婷婷社区 | 久一久久 | 一区二区三区免费看 | 日韩成人在线播放 | 一级做a爰片毛片 | 亚洲精品一区中文字幕乱码 | 91资源在线 | 特黄一级 | 一级看片 | 五月天婷婷色综合 | 国产激情精品 | 亚洲人成网亚洲欧洲无码 | 欧美日韩久久 | 亚洲精品亚洲人成人网 | 亚洲中字在线 | 日韩一二三 | 日韩城人免费 | 中文字幕第一页在线 | 一区二区av| 91社区影院 | 综合网av| 国产精品免费在线 | 午夜精品一区二区三区在线 | 亚洲国产精品成人 | 亚洲一区不卡 | 国产精品成人一区二区 | 久久成人一区 | 国产亚洲精品久久久闺蜜 | 国产精品自产av一区二区三区 | 国产精品电影 | 蜜臀av在线播放一区二区三区 | 日韩在线1 | 国产精品a一区二区三区网址 | 久久综合一区二区三区 | 日韩久久久久久久久久久 | 最近免费中文字幕大全免费版视频 | 精品国产一区一区二区三亚瑟 | 国产区在线| 谁有毛片| 99视频免费在线观看 | 久久久99精品免费观看 | 国产精品原创av | 成人综合在线观看 | 久久久亚洲精品视频 | 国产视频精品免费 | 91综合视频在线观看 | 日韩中文字幕在线免费 | 欧美xxxx网站 | 日韩一区二区中文字幕 | 久久99精品久久久噜噜最新章节 | 精品成人佐山爱一区二区 | 91中文在线 | 亚洲在线视频 | 欧美日一级片 | 国产一区二区在线免费观看 | 国产精品亚洲天堂 | 日韩欧美第一页 | 日韩久久一区 | 男女深夜网站 | 欧洲美女性开放视频 | 亚洲欧美日韩另类一区二区 | 播放一级毛片 | 精国产品一区二区三区四季综 | 国产福利电影一区 | 久久久久久91 | h在线视频 | 麻豆色呦呦 | 免费av播放| 99草在线视频 | 亚洲男人的天堂网站 | 成人精品一区二区 | 欧美一级做性受免费大片免费 | 欧美黄视频 | 天天色av | 欧美一级视频 | 国产高清一区二区三区 | 国产一区二区三区精品久久久 | 国产不卡视频在线观看 | 99精品欧美一区二区三区 | www.日韩在线视频 | 亚洲国产精品99久久久久久久久 | www视频在线观看 | 91丨九色丨国产在线 | 日本一区二区精品视频 | 国产精品久久久久久 | 精品在线一区 | 在线永久免费观看日韩a | 一区二区三区免费看 | 亚洲1区2区在线 | 视频一区二区三区中文字幕 | 欧美视频网站 | 午夜免费电影 | 午夜影视av| 欧美天堂在线观看 | 成人免费视频网站在线观看 | 国产精品自拍一区 | 国产91极品| 成人中文字幕在线 | 精品国产一区二区三区四 | 免费视频一区 | 一区二区三区在线不卡 | 欧美精品亚洲 | 亚洲欧美一区二区三区在线 | 先锋资源中文字幕 | 国产精品视频免费观看 | 精品国产欧美 | 欧美日韩电影一区二区三区 | 亚洲欧美高清 | 亚洲精品三级 | 看毛片网站 | 羞羞视频在线免费 | 精国产品一区二区三区四季综 | 国内自拍第一页 | 国产裸体永久免费视频网站 | 在线视频一区二区三区 | 国产精品久久久久久久久久99 | 99久久这里只有精品 | 亚洲精品久久久久久下一站 | 日干夜干天天干 | 啊v视频 | 亚洲国产精品成人综合色在线婷婷 | 91在线观 | 91在线视频福利 | 黑人精品xxx一区一二区 | 一道本一区 | 一区二区三区四区 | 国产精品毛片一区二区三区 | 在线视频亚洲 | 香蕉久久一区二区不卡无毒影院 | 99精品全国免费观看视频软件 | 欧美极品一区二区 | 国产大胆自拍 | 久久九| 在线观看国产www | 久久久久久久99精品免费观看 | h片在线看| 亚洲日韩aⅴ在线视频 | 亚洲一区中文字幕在线观看 | 久久一道本 | 亚洲精品一 | 九九久久久 | 色爽女人免费 | 国产成人精品久久二区二区 | 国产精精品 | 岛国在线免费 | 亚洲一区二区国产 | 国产色视频在线观看免费 | 日日操夜夜操天天操 | 国产精品久久久久久亚洲调教 | 欧美日韩精品一区 | 亚洲美女网站 | 亚洲综人网 | 精品九九久久 | 日韩精品在线免费 | 中文字幕精品一区二区三区精品 | 日本不卡高字幕在线2019 | 欧美成人精品一区二区男人看 | 日韩欧美在线观看视频 | 欧美a级成人淫片免费看 | 欧美精品久久一区 | 欧美日韩成人在线 | 不卡视频一区 | 久久99国产精品久久99果冻传媒 | 国产精品久久一区 | 黄色欧美一级片 | 国产真实乱全部视频 | 91久久| 九九综合 | 亚洲精彩视频在线 | 三级视频网站 | 国产91久久精品 | 日韩精品久久久 | 成人久久久| 国产精品一区二区不卡 | 天天天天天天操 | 成人一级片在线观看 | 亚洲日韩aⅴ在线视频 | 日韩在线中文字幕 | 欧美亚洲另类丝袜综合网动图 | 国产精品久久久久久久久 | 激情五月综合 | 亚洲网在线 | 超碰天堂 | 久草观看| 久久人人爽人人爽 | 亚洲精品1区 | 国产精品一区二区三区av | 黄色国产一级视频 | 在线国产一区二区 | 欧美视频一二 | 国产精品夜色一区二区三区 | 精品综合久久 | 成人亚洲视频 | 久久久久久久久久久久99 | 亚洲综合色视频在线观看 | 久草久| 国产精品一区二区久久 | 91久久久久久久久久久久久久 | 蜜臀精品久久久久久蜜臀 | 国产成人91 | 一区二区中文字幕在线观看 | 欧美 日韩 | 欧美高清一区 | 黄毛片视频 | 久久久麻豆 | 欧美中文日韩 | 国模一区二区三区 | 成人免费在线视频观看 | 天天综合网网欲色 | 精一区二区 | 久草精品在线观看 | 在线观看免费视频日韩 | 中文字幕亚洲欧美精品一区四区 | 日韩欧美国产成人一区二区 | 久久午夜电影院 | 午夜精品久久久久久久 | 伊人伊人| 91啦| 久久久欧美 | 中文字幕在线观看精品视频 | 精品一区二区久久久久久久网站 | 亚洲一区二区视频在线播放 | 国产日韩精品一区二区 | 日韩精品在线一区 | 精品国产乱码久久久久久1区2区 | 久久99精品久久久久国产越南 | 国产福利片在线 | 久久久日本 | 国产伦精品一区二区 | 成人网18免费网站 | 蜜臀网 | 欧美一区二区三区在线视频观看 | 国产91亚洲精品久久久 | 美女扒开尿口来摸 | 日本黄色免费大片 | 日本三级不卡 | 久久久久久国产一级毛片高清版 | 日韩国产一区二区 | 在线观看国产精品一区二区 | 成人一区二区三区在线 | 日韩精品99久久久久中文字幕 | 夜夜骑天天操 | 欧美日韩一区二区三区在线观看 | 久久久国产精品入口麻豆 | 亚洲av毛片一级二级在线 | 91成人在线视频 | 三区在线 | 99在线免费观看 | 国产午夜精品久久 | 国产精品99 | 中文在线亚洲 | 不卡一区二区三区四区 | 国产精品久久久久久久午夜片 | 国产亚洲综合精品 | 亚洲午夜视频在线观看 | 免费黄色电影在线观看 | 色欧美片视频在线观看 | 黄色片视频在线观看 | 国产传媒一区 | 在线免费国产 | av三级在线免费观看 | 操久久| 亚洲人成网亚洲欧洲无码 | h片免费 | 一级电影在线观看 | 男人阁久久 | 91久久夜色精品国产网站 | 91在线精品一区二区 | www.久久 | 国产v日产∨综合v精品视频 | 国产美女自拍视频 | 国产精品久久二区 | 中文字幕av一区二区 | 精品国产九九 | 中文字幕日韩一区二区 | 国产视频一区二区在线 | 欧美区国产 | 亚洲精品视频在线 | 色视频在线免费观看 | 免费观看成人毛片 | 欧美日韩中文 | 成人免费视频一区二区 | 国产精品一区欧美 | 国产精品美女视频一区二区三区 | 国产精品久久久久久久久久久久久久 | 国产精品久久久久婷婷二区次 | 久久久久国产精品免费免费搜索 | 在线成人免费 | www.干| 成人精品在线视频 | 国产片侵犯亲女视频播放 | 视频二区 | 欧美精品一区二区三区四区 | 免费看黄视频网站 | 一级全黄少妇性色生活片免费 | jav成人av免费播放 | 久久久婷婷 | 国产成人精品免高潮在线观看 | 91在线视频 | 日本欧美久久久久免费播放网 | 精品国产第一国产综合精品 | 久久久久久久久久久久久久av | 国产福利91精品一区二区三区 | 日韩理伦片在线观看视频播放 | 日本不卡免费新一二三区 | 欧美日本韩国一区二区三区 | av中文字幕网 | 在线国产一区二区 | 在线亚洲精品 | 亚洲男人av | 欧美精品一区在线 | 日韩一级免费观看 | 久久久精品欧美一区二区免费 | 91精彩视频在线观看 | 亚洲精品一二区 | 99色综合| 操碰97| 六月丁香av | 亚洲高清在线观看 | 久久久久99精品国产片 | 国产99精品视频 | 日韩欧美国产精品综合嫩v 亚洲欧美日韩在线 | 福利精品视频 | 韩国一区二区视频 | 黑人巨大精品欧美一区二区免费 | 亚洲视频一区二区三区 | 久久99国产精品久久99大师 | 欧美日韩国产一区二区三区不卡 | 国产精品视频 | 免费av在线网站 | 日韩欧美国产一区二区 | 欧美视频三级 | 密室大逃脱第六季大神版在线观看 | 999久久久国产999久久久 | 中文字幕视频在线播放 | 爱爱视频在线 | 久久蜜桃视频 | 欧美一区永久视频免费观看 | 国产精品一区二区久久久 | 九九免费在线观看 | 天天天天天天天天干 | 欧美一区二区三区男人的天堂 | 国产精品久久免费视频在线 | 97精品久久 | 久久久久9999国产精品 | 亚洲精品第一区在线观看 | 狠狠色丁香婷婷综合 | 精品国产99 | 国产精品第一国产精品 | 91成人免费看片 | 欧美日韩国产精品 | www久久精品| 精品一区二区久久 | 91精品国产综合久久久久久丝袜 | 日韩欧美在线播放视频 | 欧美日韩精品一区二区三区蜜桃 | 亚洲一区精品在线 | 拍真实国产伦偷精品 | 操人网 | 精品欧美乱码久久久久久 | 亚洲久悠悠色悠在线播放 |