關於Oracle和PL SQL的學習記錄3

2021-09-28 22:29:50 字數 2709 閱讀 2291

------簡單資料查詢------

1.簡單查詢是指對關係的簡單投影操作,即對二維表的列查詢,或只包含簡單查詢條件的查詢

2.查詢輸出基本表中指定列

select sno,sname,sdept from stu;

select * from stu;

all:指明查詢結果中可以顯示值相同的列,all是系統預設的

distinct:指明查詢結果中如果有值相同的列,則只顯示其中的一列;對distinct來說,null值被認為是相同的值

3.對資料列進行運算並輸出

select sno,sname,sage+1,sgender from stu;

對資料列進行運算的select子句並不會改變原基本表或試圖中的資料

可對列或者運算後的列給與別名:

select sno 學號,sname 姓名,sage+1 年齡,sgender 性別 from stu;

4.單條件查詢

單條件查詢是指where子句後的條件只有乙個

select sno,sname,sage,sgender,sdept from stu where sno = '10001';

5.根據查詢結果建立和複製表

將select獲取到的資料記錄作為源資料,重新建立乙個結構與stu表相同的stu1表,並將源資料寫入到stu1表中:

create table stu1

asselect sno,sname,sage,sgender,sdept from stu where sage = 22;

select * from stu1;

6.返回表中的前n行記錄

select * from stu where rownum < 4;

select * from stu where rownum <= 5;

select * from stu where rownum != 6;

使用游標rownum來實現獲取表的前n行記錄;rownum是對查詢結果集加的乙個偽列,其需要先查到結果集;簡單地說,rownum是符合條件的結果集的序號,從1開始

rownum的使用只能用<,<=和!=等比較運算子

oracle中經常使用order by子句與rownum組合來實現獲取查詢的前n行記錄,即先用order by子句排序,再使用rownum取出排在前面的n行記錄

7.消除重複行

使用distinct關鍵字:

select distinct sage from stu;

其中,distinct關鍵字並不是消除資料表中的重覆記錄,而是消除查詢結果中的重讀記錄,並不會對資料表中的資料造成影響

8.null值的判定

一般來說,下列情況可導致資料表的乙個字段值為null:

該字段值未知

該字段值不存在

該欄位對錶的記錄不可用

空值並不包括零、乙個或多個空格組成的字串,空值代表未知的空值,所以並不是所有的空值都相等

select sno sname,sgender,sage from stu where sdept is null;

9.查詢欄位為某個範圍內的記錄

範圍運算子:between...and

select sno,sname,sgender,sdept from stu where sage between 22 and 25;

其中,between...and運算子在比較值的範圍時,其取值範圍含兩個值本身(如上例,包含22和25)

10.返回字段值為列表中某個值的記錄

列表運算子in,允許where子句後的字段從值列表中任取乙個都為真

select * from stu where sdept in ('12資訊管理','12外語');

null值是不參與in和not in以及其中的值比較的

11.條件組合查詢

select * from stu where (sage=22 and sdept='12資訊管理');

select * from stu where (sage=22 or sdept='12資訊管理');

and運算子將兩個條件表示式組合在一起使查詢範圍更小更精確,or運算子使條件範圍更廣泛

12.復合條件查詢

select * from stu where (sdept='12資訊管理' and sgender='男') or (sdept='12外語' and sgender='女');

在乙個條件語句中含有兩個以上的邏輯運算子時,就需要考慮其運算的優先順序:先not,再and,最後or

13.模糊查詢

指在給出的限制條件不完整的情況下進行的查詢

select * from stu where sname like '李%';

模糊查詢的運算子是like,一般只用於字串資料型別,用於比較字串表示式和sql表示式中的模式

%為萬用字元,在oracle pl/sql中常用的萬用字元四種:

_:與任意單字元匹配

%:與包含乙個或多個字元的字串匹配

:與特定範圍或特定集中的任意單字元匹配

like運算子後的字段值可以是完整的值,此時不需要使用萬用字元,like的功能與比較運算子=相同

14.使用escape和轉義字元

select * from class where ms like '%0!%' escape '!';

'%0!%'中的第乙個%為萬用字元,後乙個%是普通的字元百分號,為了區別,在前面加上了轉義字元!,用escape子句定義轉義符;

轉義符可以自定義

Oracle的pl sql程式設計

1pl sql程式設計 1.1建立過程過程 create or replace procedure 引數名 in out 引數型別 沒有長度 名字 is begin pl sql程式設計語句 end 名字 ps 最有一定要加分號和斜槓 1.2呼叫 exec 過程名 引數 call 過程名 引數名 1...

Oracle的PL SQL程式設計

pl sql把sql的資料操作功能同過程語言的資料處理功能結合起來。宣告作用 declare 變數 游標 使用者自定義型別 異常 variables,cursors,user defined,exceptione 程式開始 begin sql statements pl sql statements...

解決oracle和plsql亂碼問題

oracle 10g裝上後,建了個表寫入中文資料,發現通過工具dbvisualizer 6.5 寫入 讀取中文都正常,就sqlplus和pl sql developer不正常.初步懷疑是dbvisualizer本身定義了字集編碼,而sqlplus和pl sql developer則沒有.無論怎麼樣,...