ORACAL資料庫學習

2021-07-27 03:31:15 字數 3612 閱讀 4924



1、oracle資料庫創造性的提出了表空間的概念。

2、order by 是根據最終的結果集進行排序的,所以放在group by(先分類)之後。

3、union(兩個集合之間不重複的記錄,重複的只儲存一條,預設按照字母順序排序);

union all(將兩個集合的結果進行合併,不會剔除重複的,也不進行排序)

intersect(兩個集合之間的交集)

minus(只返回第乙個集合中存在,第二個中不存在的記錄)

以上四種運算的優先順序相同,總是按照自左至右的順序依次進行運算。

4、......for update能夠實現手動的去修改列中的值。

5、oracle中常用的資料型別:字元型(character),數值型(number),日期型(date)和大物件型(lob)。

6、字元型:

char(n):固定長度字串,不足則自動補空格,超過n則報錯。

varchar(n):可變長度的字串型別,不足也不會空格填充,n代表的是字串的最大長度,最大長度不大於4000。

varchar2(n):類似varchar(n),但是這個具有更多的向後相容性。

7、lpad('1',4,'0')(0001)左補齊,rpad('1',4,'0')(1000)右補齊

lower()返回小寫,upper()返回大寫形式,

initcap('like'):like函式將單詞轉換為首字元大寫、其它字元小寫的形式,注意:對於非單詞的字元都被視為單詞的分隔符,這些字元原樣輸出,其他所有單詞的首字母都變為 大寫,比如:

initcap('you 2 love'):you 2 love。

8、substr('12345678',3,4);擷取字串3456。

9、instr(string,sub_string[,start_index][,times])返回子字串在父字串中出現的位置,string為父字串,sub_string為子字串;中的為可選引數,start_index為可選的引數,指定搜尋的起始位置,times為可選引數,表示第幾次獲得子字串。

10、ltrim()函式用於刪除字串的左側空格,rtrim同理;

11、trim()函式刪除字串兩側的空格;

12、concat('hello',' world')將字串進行連線;

13、translate()類似翻譯。

14、注意:1、對於字元型函式來說,如果傳入的引數是乙個空值,那麼函式的返回值往往也是空值,如length('')為空;2、字元型函式將null作為引數時,往往返回值是null,而無關理論上的返回值是什麼;3、即使字元型函式所處理的是乙個變數,在內部處理時,都是針對引數的乙個副本,而不會真正改變量的值。

15、數值型number[(precision[,scale])],其中precision代表該數值型的精度,除0之外的有效數,而scale則指定小數後的位數,且兩個引數是可選的,scale為正則是小數點之後的位數,scale為負則是小數點之前的位數,scale為0時表示整數。

16、數值型函式:abs()絕對值;round(4.37,1):4.4四捨五入;ceil()函式返回大於等於數值型引數的最小整數,向上取整ceil(23.56):24;floor()與ceil相反,向下取整,返回小於等於引數值的最大整數,floor(23.45):23,floor(-23.45):-24;mod(被除數,除數)函式返回乙個除法表示式的餘數,取模操作mode(5,2):1。

17、sign()返回數字的正負性,大於0,返回1,小於0,返回-1,為0返回0;

18、sqrt()函式返回數字的平方根,該引數的不能小於0;

19、power(底數,指數)函式用於進行乘方運算;

20、trunc(原始值[,小數字數]),擷取數字,擷取部分數字,直接捨棄,trunc(3.789,2)返回3.78。

21、chr()將ascii碼轉換成字元,chr(65)返回a。

22、to_char(原始值,格式)格式字串,將字串格式化。

23、add_months()函式,為當前的日期增加月數,如add_months(sysdate,1)返回當前時間的基礎上再增加乙個月。

24、last_day()函式返回特定日期所在月分的最後一天,如last_day(sysdate)返回當前月的最後一天。

25、months_between()函式返回兩個日期所差的月數。

26、next_day()函式返回特定日期之後的一周之內的日期,如next_day(sysdate,1)返回當前日期之後的星期天(1代表乙個星期的第一天)。

27、trunc()函式不僅可以擷取數字,還可以擷取日期,如trunc(日期,擷取格式),trunc(sysdate,'dd'),返回擷取到日,返回的還是期型。

28、current_date()返回當前會話時區的當前時間,sysdate返回伺服器當前的時間。

29、extract()返回日期中的某個域,如extract(month from sysdate),返回當前日期的月份。

30、to_char(sysdate,'yyyy/mi/dd')返回格式化之後的年/分/天。

31、當列值為空時,count()函式並不進行計數,count(*)和count(1)得到的結果是一樣的。

32、增加一列:

alter table test add(num2,number(3,0));

修改列的名字:

alter table test rename column num2 to name;

修改列的型別:

alter table test modify name varchar(50);

刪除一列:

alter table test drop column name;

33、nvl(表示式,新值/表示式),判斷第乙個表示式是否為空,如果為空則返回第二個表示式,否則返回第乙個表示式的值,如nvl(sum(salary),0);

34、rownum()函式返回結果集的行號,一條記錄是一行,然後依次增加。

35、cast(原資料 as 新資料型別)函式可以強制轉換列或變數的資料型別,如 cast(t.num2 as number(3,0))。

36、按位與,bitand(數值1,數值2),如果數值引數不為整數,oracal總是先將其轉換為整數,如果兩個運算為均為1,返回1,否則回0。

37、按位或,沒有專門的函式,可以利用bitand()進行計算,如:bitor:x+y-bitand(x,y)。

38、按位異或,沒有專門的函式,可以利用bitand()進行計算,bitxor(x,y):bitor(x,y)-bitand(x,y),或者bitxor(x,y):x+y-2*bitand(x,y)。

39、對於特殊字元的原意字元的獲得,如escape'\'指定轉義字元「\」,

where '10%' like '%\%' escape '\',判斷為真,

where '10' like '%\%' escape '\',判斷為假。

40、在oracal中,對空值的判斷不能用「=」,而應該利用特殊判式is null。

41、exists,存在性判斷,通常和in等價。

42、all、some、any集合判斷,some 和any可以返回相同的搜尋結果,當使用「=」等肯定形式的,判斷時,推薦使用some,而在使用「>」等形式判斷時,推薦使用any,類似於英語環境下他們的使用方法。

注意:第九章的視窗分析函式沒搞懂,後20分鐘。

資料庫學習

資料庫 基礎概念 三個正規化 事務acid 隔離級別 測試造資料 資料庫設計 三找找屬性 找實體找關係 表引擎的選擇 myisam 表所 inodb 行鎖 memory 不能持久化 sfenxs 全文索引 sql調優 order by null desc explain key rows extra...

資料庫學習

對於資料庫的訪問技術,主要知識點如下。1.ole db oledb 是微軟的戰略性的通向不同的資料來源的低階應用程式介面。ole db不僅包括微軟資助的標準資料介面開放資料庫連通性 odbc 的結構化問題語言 sql 能力,還具有面向其他非sql資料型別的通路。ole 全稱 object link ...

資料庫學習初步學習

select from web insert into web name,url,alexa,country values 13,cn insert into web name,url,alexa,country values 菜鳥教程 4689,cn insert into web name,ur...