Oracle資料庫基礎知識點匯總

來源:互聯網
上載者:User

標籤:知識點   pre   插入資料   檔案   地址   null   取資料   logs   enc   

1.資料庫 database

2.主鍵 ,表的唯一性標識的一列,主鍵的值永遠不能重。primary key

主鍵的類型:單一主鍵:一列構成的;複合主鍵:多個列組合起來充當主鍵。多採用流水號,單一列當做主鍵

3.三大規則 :實體完整性約束:主鍵  :PK

      參照完整性條件約束:外鍵 :A表的主鍵出現在B表,在B中就被成為外鍵,簡稱FK,此時A為主表,B從表

從表外鍵的值需要參照主表主鍵進行填充,或者從表外鍵的值為空白,如果外鍵的值在主建中不存在,禁止填充

      自訂約束:唯一性限制式 unique(對NULL無效,可以有多個NULL),

            空值約束 not null

            預設值約束 default(對NULL無效,可以錄入NULL)

            檢查約束 check(列名=‘‘or列名=‘‘)(對null無效)

4. 儲存字串: Varchar2(長度 char)長度個漢字的長度

           Varcher2(長度)

  儲存數字 NUMBER(n) 

  儲存日期 DATE  

      DATE(N)錯誤書寫

5.建立一個表的文法

      create table 表名(列名1 類型 primary key not null,

                列名2 類型 not null,

                列名3 類型 not null) ; (注意最後一個沒有逗號)

插入資料到表中

      insert into 表名(列名1,列名2,列名3)

      values(列值1,列值2,列值3)列值的類型必須是列名的類型

查詢語句的書寫

      select 列名1,列名2,列名3 B(可以給列名起別名用於顯示:

                      列別名需要加雙引號的三種情況:1)區分大小寫

                                     2)有空格

                                    3)特殊字元),B.列名

      from 表名 A(給表起別名A,然後在select中可以寫A.列名),

        表名B(可以多表一起查詢)(做多表串連的時候表的書寫順序,從表在前,主表在後,)

      where 條件陳述式 (先寫篩選條件,後寫串連)

      (where 可以做巢狀查詢把另一個查詢出來的結果作為篩選條件,但是不建議用,效能太差,一般把  select查詢出來的作為from的一個虛擬表進行處理)

       order by asc 列名(正序)or desc 列名(逆序) 排序輸出結果(order by 中 null最大)

改寫語句

      update 表名 set 列值 (新)where 條件  滿足什麼條件就修改

刪除語句 

      delete from 表名  整張表的資料刪除  

      delete from 表名 where 條件陳述式  有條件的刪除資料

在資料表空間:

1.資料表空間與分使用者管理

  分使用者管理在實現上有兩種方式

  方式1:物理隔離

    每個使用者的所有資料都儲存到獨立的資料表空間中,該資料表空間只裝載該使用者的所有表,這樣一個使用者的資料表空間發生問題,對其他使用者沒有影響

  方式2:邏輯隔離

     表歸屬使用者所有,但是所有使用者的表共用一個資料表空間

2.資料表空間(TABLESPACE)

   就是表的容器,實際上就是一堆資料檔案的集合,使用者表中的資料,實際上儲存到資料表空間的指定檔案中.

   資料表空間的分類:

       1.暫存資料表空間-----做交換分區

       2.永久資料表空間------用以儲存資料  

刪除表有兩個:

    drop:可恢複

    ttruncate(資料截斷)    :不可恢複  在oracle中有一個資料復原,truncate就是繞過這個資料復原,而drop可以復原就恢複剛剛 刪除的資料。

oracle資料庫中的時間date:sysdate 就可以從表中擷取 :select sysdate from dual;

字串與日期之間的轉換:to_date(‘1997-08-08‘,‘YYYY-MM-DD‘)

            to_char(sysdate,‘YYYY-MM-DD HH25:MI:SS‘ )

時間的運算按天

多表關聯查詢中,表之間的構型

   1.一主多從

   2.一從多主

   3.單線連珠

自串連 : 一個表和自己建立串連,把自己虛擬成另一張表就可以串連啦

比如查詢scott 下 emp 中 每個職員的管理者

SELECT A.EMPNO,A.ENAME,A.JOB,A.MGR,B.ENAME  FROM EMP A,EMP B WHERE A.MGR=B.EMPNO

內串連(等值串連):

  只顯示滿足串連條件的資料,不滿足的不顯示;應用語境:應用於過去和現在,對既成事實的查詢

外串連:以某一張表為基礎,該表中的所有資料都顯示,對應的從表,如果存在資料,則顯示資料,如果不存在資料就顯示NULL:對將來,全部的概念。

在Oracle中的文法:從表外鍵加(+);

比如查詢scott下表emp所有人的管理者;

SELECT A.EMPNO,A.ENAME,A.MGR,B.EMPNO,B.ENAME  FROM EMP A,EMP B WHERE A.MGR=B.EMPNO(+)

對未來尚未實現的夢想進行查詢外串連去反就可以實現:就是取從表相應列為null,該部分資料表位將來時

查詢將來可能被管理的人 

SELECT A.EMPNO,A.ENAME,A.MGR,B.EMPNO,B.ENAME  FROM EMP A,EMP B WHERE A.MGR=B.EMPNO(+) AND B.EMPNO IS NULL

這個例子可能不恰當,但是用法就這樣

前面提到的排序 order by asc 正序 desc 倒敘也叫降序

多欄位排序:依據欄位分組,組內一欄位一排序

分組統計函數 :

  min 求最小值

  max  求最大值(max min count可以對任意資料類型列取值)

  avg 求平均值(avg 與 sum 只能對數實值型別列取值)

  sum 求和

  count 計算滿足條件的記錄數(自動忽略null值)

    count(列)只統計非空值,此列上所有不為null的參與計數

    count(*) 只要有一列不為空白即可

    count五大統計函數中 具有篩選功能,

    用了彙總函式count,寫在select中還有其他列名要查,就得進行彙總分組group by ,select出現的都得寫在group by中。group by 子句中不能使用別的列別名進行分組,也不可以有子查詢,可以有having子句。

sql語句的執行順序

  1 from 擷取資料

  2 where 篩選資料

  3.group by 彙總分組

  4.彙總函式運算

  5.having條件陳述式

  6.select 查詢需要的列

  7 distinct 重複資料刪除資料

  8 .order by 排序想要的資料

decode函數

   就是給字元表示的漢字意思顯示出來。比如存入資料庫 狀態一欄資訊,1代表活著.2代表死了

查詢出來 1 或者2 別人看不懂我們就可以用 decode函數實現 decode(表名.列名,‘1‘,‘活著‘)這樣如果是1就顯示活著、

substr 函數

  用來 截取字串 substr(‘abcdefg’,2,3)從第二個開始截取三個字元‘bcd’,如果2改成-2則順序顛倒,如果3改成100截取到最後一個位置‘bcdefg’。

rowid:

  這是兩個偽列;行的物理地址,以最快的速度,檢索或者刪除滿足條件的記錄

這個用到巢狀查詢 我們查出要刪除的重複資料的最大rowid然後把前邊的我們不需要的全部刪除

rownum:

  查詢結果集中,每行的記錄的行號。一般用於top-n分析;在select中直接加上rownum就會給查詢出來的資料每行加上一個序號;然後可以在where條件中寫 rownum<3  就可以擷取前兩行的資料。< 與!=一個意思,<=小於等於

大多數人說:rownum用來做分頁查詢:

在這我瞭解到rownum用來做top-n分析。就是對前幾名的資料的擷取,先是查詢出來用某一列用order by排序作為虛擬表用rownum選擇我們要的前幾名然後在可以用一個order by 語句來選擇我們想要的順序輸出,注意用什麼來排序必須在上述的select 虛擬表中查出來的。

序列  

create sequence 序列名  :用來產生一個遞增的值,但不保證連續 

刪除 drop sequence 序列名

索引

作用:有助於提高查詢效率

建立時機:一般在系統上上線運行半年,基於最佳化效能角度考量,將使用者經常使用的查詢條件列建立索引。

自動索引,oracle中存在主鍵索引和唯一約束索引

建立索引的語句create index 索引名 on 表名(列名,列名)可以一列 為單一索引可以多列複合索引

刪除索引 是drop index 索引名

視圖

view 建立視圖 語句 create view 視圖名字 as select 查詢出來的資料 相當於一個虛擬表 真正項目中不會用到視圖的 

刪除語句 drop view 視圖名字

視圖與原始表的關係:

視圖只是原始表資料的引用,視圖中,沒有任何資料

當查詢檢視的時候,相當於將建立視圖時select語句再執行一次,

視圖的作用:混淆未經處理資料,重構資料,簡化查詢。

 

Oracle資料庫基礎知識點匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.