Oracle回顧,oracle

來源:互聯網
上載者:User

Oracle回顧,oracle

       回來之後錄了幾集視頻,開始錄得時候還不知道怎麼錄,錄了幾集就沒什麼了,每一集十幾分鐘錄得不好了可以重新錄,過程中也也把Oracle資料庫這部分看了一遍,收穫也挺多的,學習是重複積累的過程,對於一些零散的知識點又回顧了一下,重新複習一遍其中有些已經學過,有些僅僅是有一點點印象,記得有一句話叫做“一本書只要其中有一句話對你很有協助,那麼它是有價值的”,看完這個視頻也學習和加深了一些知識的離家,並總結如下,大家可以作為參考。

資料庫理解

       電腦就如同我們的身體各個部分,資料庫=大腦,五官=程式設計語言,血液=資料匯流排,作業系統=人體。

       在大腦裡面儲存著各種資訊,通過我們的眼、耳等五官輸入到我們的大腦裡面,因此五官就像我們平時使用的各種程式設計語言,而作業系統就好比我們的身體支撐著我們個個部分的結構完整,保證它們能夠正確運行,電腦和我們的身體是一樣的,大同小異,畢竟是人發明了電腦。

Oracle使用者

超級管理員sys/chage_on_install

普通管理員system/manage

普通使用者scott/triger

Oracle中的函數

單行函數

      字元函數

         substr(),截取字串

      數字函數

         round()隨機函數

         mod()取摸函數

      日期函數

          Sysdate()取得當前日期

          對於日期,加減一個數,等於若干天之後或之前的一個日期

轉換函式

       to_char(),To_char('12345678'.'999,999')

       to_date(),例如To_date(SYSDATE,'yyyy-mm-dd')

通用函數

       NVL(),將一個null的欄位值變為0,例如select NVL(name,0) from table1 ,如果name為null時,將輸出0而不是null

      decode(),判斷一個欄位等於多少,然後,輸出多少,例如上面name=1.輸出張三;name=2輸入李四

多表查詢

      一般超過兩個表一起查詢就會差生笛卡爾積的現象,查詢出來的結果為兩個表的記錄數乘機,我們需要利用等值條件消除笛卡爾積,只是查詢出來的結果進行了消除,但是從本質上看並沒有消除,還是有笛卡爾積的現象,因此,並不建議使用多表查詢,多表查詢影響查詢效率,尤其是在多表大資料查詢時更不建議使用聯集查詢,

在真正的大資料系統中 通常在查詢資料之前,需要先看一下裡面有多少資料,只查詢出自己想要的資料即可。

分組查詢

        對於複雜的SQL語句需要自己多練習才可以靈活掌握,並想它們之間的關係和每個SQL語句的作用,隨著使用的加深會對每個SQL文法理解更深刻,如果再出現類似的查詢會出現的思路變多。

查詢時PS:

      1. 通常子查詢寫在from或where關鍵字之後;作用是形成新的表和結果集,可以從新的結果集中查詢或得到條件。

      2.where條件在group by之前執行,即先進行條件過濾,把過濾後的結果按照某一個欄位進行分組。

      3.如果分組之後還需要對結果進行過濾,那麼就得使用HAVING欄位設定過濾條件了。

      4.排序關鍵系ORDER BY在SQL語句的最後執行。

只要記住這幾個原則,再加上多多練習複雜一些的查詢,SQL語句應該是沒有什麼問題的,再難的查詢也不過是這些單詞的拼接和組合。

序列的使用

      以前也聽說過序列,但是自己沒用過。因為總覺得很麻煩,所以沒有使用過。這次項目中用到了,而且視頻也講到了,才發現,很簡單很實用。

文法:

CREATE SEQUENCE myseq

     INCREMENT BY 1   -- 每次加幾個

     START WITH 1     -- 從1開始計數

     NOMAXVALUE       -- 不設定最大值

     NOCYCLE          -- 一直累加,不迴圈

     CACHE 10;

使用的時候,例如插入,只用在對應的列賦值myseq.NEXTVAL即可。

例如

INSERT INTO emp VALUES (myseq.nextval, 'LEWIS');

交易處理

       對於操作資料庫的每一次串連,它是同資料庫建立了一個session,即一個會話這個會話雖然不是web層的會話但同那個會話也很類似,在一個session中對資料庫進行各種操作即是在同一個事務中,這種事物是本地事務,如果是更新操作上一個事物沒有更新完成,下一個事物不能進行提交和操作,因為在更新的時候資料庫會自動枷鎖,知道更新操作完成才會釋放鎖。

資料偽列

       指的不是我們設計資料庫的人自己添加的列,而是隱含的列我們可以使用,Oracle中常見的兩個偽列為ROWNUM、ROWID,經常用到的是ROWNUM這個列,ROWID為記錄的物理地址,我們可以利用這一點實現分頁效果,看下面代碼

Select * from(select ROMNUM rm,id whereROMNUM<=10) temwhere tem>5

ROWNUM;每次查詢都變不固定

ROWID:資料記錄的物理地址

閃回技術

         從Oracle10g之後的資料庫都提供了閃回技術,相當於一個資源回收筒的功能,刪除的資料或者表什麼的可以從資源回收筒裡面找回來,這個功能在有時候挺實用的,值得我們去瞭解瞭解。

簡單命令:

查看資源回收筒裡面內容show recyclebin

找回刪除的表:Flashback table tablename to before drop

清空資源回收筒:Purge recyclebin

約束

非空

一個欄位不可為空,not null

唯一性

該約束是對某個具體欄位而言,將某個欄位設為唯一則該欄位不會出現重複記錄,但要記住null是可以的,只要不重複就行。

主鍵

主鍵=非空+唯一性

外鍵

如果一個表的主鍵再另一個表中當做外鍵,那麼這個鍵就是外鍵約束,外鍵和主鍵約束是同時存在的。

檢查

即對一個欄位做一些限制,例如性別:在資料庫中限制只能輸入男或女。

聯集查詢

串連兩個表的查詢結果


Union:聯集查詢,相同的部分不顯示

Union all:相同的部分顯示

Intsersect:只顯示相同的部分

Minus:只顯示不同部分

視圖

第一類 on with check option

這種視圖是待查詢條件的視圖,可以更新,但是不能更新查詢條件

第二類 with read only

該視圖為唯讀,不可以對該視圖中的任何一個欄位

索引

        索引的主要功能就是用於提升資料庫的操作效能。
       
         Select * from table1 where id>10000
            i. 上面的語句是逐行進行判斷,沒有加索引
            ii. 加索引之後會對加索引的那列,二叉樹排列,如下
                1)
                2) 再執行上面語句,只查詢部分記錄
                3) 如果某列是主鍵約束,則自動建立索引
                4) 手工建立,在某一個列上建立
            iii. 這種索引有一個問題,即:如果想要性誰能提高,則必須維持以上的這棵樹,如果資料需要頻繁修改的話,則代碼效能會下降。
            iv. 所以,一般索引只使用在不會頻繁修改的表中,而如果一張表上頻繁修改資料切又使用索引,效能會降低,所以,效能提升永遠是相對的。
            v. 這種所以是Oracle十幾種索引中的一種,也是最簡單一種稱為:B樹索引。還有位元影像索引、函數索引等

Database Backup

       在上線的項目中,Database Backup是很重要的一個工作。

匯入匯出

冷備份

      先把資料庫停止運行了,再進行備份,類似於熱插拔。

資料庫監聽

 1.監聽用戶端串連

     監聽為資料庫執行個體服務,當使用者第一次登陸執行個體時先通過監聽,再串連,第二次串連就不通過監聽了
        b. Oracle開始沒有在window上,後來移植到了window所以,提供監聽了
        c. 當安裝到window上之後,適應了些window操作習慣,可以傻瓜登陸,window模式
        e. 監聽需要判斷是普通使用者登入還是sysdba登入,如果是普通使用者就去資料庫驗證;如果是dba就是密碼檔案或作業系統驗證
        f. 作業系統驗證
            i. 對於DBA,首先是作業系統驗證,所以,不寫密碼或則隨便寫都可以登入,因為他是作業系統使用者
                1) 如果把作業系統認證 取消,則進行密碼檔案驗證,再不寫密碼就不行了

2.管理執行個體

     多個資料庫執行個體可以同時註冊到一個監聽器上,它們把自己的執行個體名等參數資訊在監聽器註冊,當用戶端串連監聽器時就可以通過這些參數來找到資料庫執行個體,在用戶端與執行個體之間實現了一個橋樑的作用。

3.負載平衡

    一個小小的監聽器具有均衡用戶端串連的作用,如果有一個執行個體的串連數量非常的多,那麼監聽器會自動將多一部分串連轉移到其它執行個體上面。



Oracle(甲骨文)資料庫之探討回顧

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關聯式資料庫管理系統。
1.Oracle的穩定性要比Sql server好。
2.Oracle在導資料工具sqlload.exe功能比Sqlserver的Bcp功能強大,Oracle可以按照條件把文字檔資料匯入.
3.Oracle的安全機制比Sql server好。
4.Sql server的易用性和友好性方面要比Oracle好。
5.在處理大資料方面Oracle會更穩定一些。
6.Sql Server在資料匯出方面功能更強一些。
7.處理速度方面比Oracle快一些,和兩者的協議有關.
 
oracle最常用的語句,或關鍵總結?

INSERT語句;INSERT INTO table [(column [,column]) ] VALUES (values [,values..]);
UPDATE語句:UPDATE table SET column=value[,column=vallue...] [WHERE condition];
DELETE語句:DELETE FROM table [WHERE comdition];
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.