(Les10 Creating Other Schema Object)[20171213]

来源:https://www.cnblogs.com/also-brook/archive/2017/12/25/8108085.html
-Advertisement-
Play Games

目的: 創建簡單和複雜視圖 視圖復取數據 創建、維護和使用序列 創建和維護索引 創建私有和公有同義詞 資料庫對象: 視圖【View】 什麼是視圖? 視圖呈現邏輯子集或數據的組合。視圖是基於表或其他視圖的邏輯表。一個視圖不包含自己的數據,而是像一個視窗,通過視窗可以查看或更改表中的數據。視圖所基於的表 ...


目的:         創建簡單和複雜視圖         視圖復取數據         創建、維護和使用序列         創建和維護索引         創建私有和公有同義詞   資料庫對象:         
Object Description
Table Basic unit of storage; composed of rows  
View  Logically represents subsets of data from one or more tables    
Sequence  Generates numeric values
Index Improves the performance of some queries
Synonym  Gives alternative names to objects
視圖【View】 什麼是視圖?         視圖呈現邏輯子集或數據的組合。視圖是基於表或其他視圖的邏輯表。一個視圖不包含自己的數據,而是像一個視窗,通過視窗可以查看或更改表中的數據。視圖所基於的表稱為基表。視圖是存儲SELECT 聲明中的數據字典。          視圖的好處:         視圖可限制數據的訪問,因為視圖只顯示選定的列。         簡化查詢,視圖進行簡單的查詢來檢索複雜連接。         提供數據獨立性。一個視圖可以從多個表中檢索數據。         視圖可根據特定標準為用戶提供對數據的訪問許可權。    簡單視圖和複雜視圖              簡單視圖:             僅僅從一個表導出數據             不包含函數或數組             視圖可以執行DML操作     複雜視圖:             從多個表導出數據             包含函數或數組             視圖不允許DML操作       創建視圖語法:             
            CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
                [(alias[, alias]...)]
            AS subquery--子查詢中可包含一個複雜的select查詢。
            [WITH CHECK OPTION [CONSTRAINT constraint]]
            [WITH READ ONLY [CONSTRAINT constraint]];        
        OR REPLACE :已存在的將進行覆蓋重建。         FORCE    :無論基表是否存在,都進行創建。         NOFORCE    :使用基表存在的才能創建(預設值)         view_name    :視圖名稱         alias    :別名為視圖查詢選擇的表達式指定名稱(別名數必須與視圖選擇的表達式數量相匹配。)         subquery    :子查詢是一個完整的SELECT語句(您可以在SELECT列表中使用別名)。         WITH CHECK OPTION    :指定僅可以插入或更新視圖可訪問的那些行         WITH READ ONLY    :確保在此視圖上不能執行DML操作       視圖上執行DML操作:         簡單視圖可以執行DML操作         含以下條件則不能對視圖執行DML操作                 -組函數                 -GROUP BY子句                 -DISTINCT 關鍵字                 -ROWNUM 關鍵字                 -列上含有表達式,如(salary * 12)                 -基表NOT NULL的列未在視圖列表中。      移除視圖:
DROP VIEW view_name;
  序列【Sequence】     序列是一個生成數值的資料庫對象。可以創建序列,然後用來生成數值。          序列的特征:             -能自動產生唯一的數值             -它是共用對象             -能用於主鍵值             -替換應用代碼             -它的值緩存在記憶體中提升訪問效率       序列是用戶創建的資料庫對象,可以由多個用戶共用以生成整數。     您可以定義一個序列來生成唯一的值,或者重覆使用相同的數字。     序列的典型用法是創建一個主鍵值,每個行必須是唯一的。 該序列由內部Oracle常式生成並遞增(或遞減)。 這可以是一個節省時間的對象,因為它可以減少編寫序列生成常式所需的應用程式代碼量。     序列號是獨立存儲和生成的。 因此,相同的序列可以用於多個表格。       創建序列的語法:  
CREATE SEQUENCE sequence_name
                [INCREMENT BY n]
                [START WITH n]
                [{MAXVALUE n | NOMAXVALUE}]
                [{MINVALUE n | NOMINVALUE}]
                [{CYCLE | NOCYCLE}]
                [{CACHE n | NOCACHE}];
                INCREMENT BY n:指定序列號之間的間隔,其中n是一個整數(如果忽略此值,則序列增加1)                 START WITH n:指定要生成的第一個序列號(如果省略此值,則序列以1開頭)                 MAXVALUE n:指定序列可以生成的最大值                 NOMAXVALUE:指定遞增序列的最大值10^27,對遞減序列指定-1(預設選項)                 MINVALUE n:指定最小序列值                 NOMINVALUE:為遞增序列指定最小值1,對於遞增序列指定-(10^26)(預設選項)                 CYCLE | NOCYCLE:指定序列達到最大值或最小值是否繼續生成值(NOCYCLE是預設選項)                 CACHE| NOCACHE:指定Oracle伺服器預分頻和保留在記憶體中的值(預設情況下,Oracle伺服器緩存20個值)    
CREATE SEQUENCE sequence_t
                INCREMENT BY 1
                START WITH 10
                MAXVALUE 999
                NOCACHE
                NOCYCLE;
            序列生成後需要NEXTVAL和 CURRVAL偽列引用序列值                 NEXTVAL:偽列用於從指定序列中提取連續的序列號。必須使用序列名稱來限定nextval。當引用sequence.nextval是,會生成一個新的序列號,並將當前序列置於currval。                 CURRVAL:偽列用於引用當前用戶剛生成的序列號。必須使用nextval在當前用戶會話生成一個序列號,然後才能引用currval。             
            16:53:05 SQL> select sequence_t.nextval from dual;
               NEXTVAL
            ----------
                10
            16:53:17 SQL> select sequence_t.currval from dual;
               CURRVAL
            ----------
                10    
            緩存序列的值:                 在記憶體中緩存序列,可以快速訪問這些序列值。當第一次參考序列時,將會自動填充緩存。從緩存的序列中檢索下一個序列值,在使用到最後的序列值之後,序列的下一個請求會將另一個序列的緩存拉入記憶體中緩存。             序列的丟失:                     -連續生成序列的值時,在事務中回滾會導致數值丟失。                     -系統的崩潰,導致緩存中的序列丟失。                     -多表共用同一序列,會導致序列丟失。               修改序列: 
ALTER SEQUENCE sequence_name
                        INCREMENT BY 20
                        MAXVALUE 99999
                        NOCACHE
                        NOCYCLE;
            刪除序列:                      
DROP SEQUENCE sequence_name;             
    索引【Index】         索引是資料庫對象,用於提高某些查詢的性能。創建主鍵或唯一性約束時資料庫也會自動創建。           索引:             -它是一個schema對象             -它使用指針關聯每一個行提高訪問速度             -它減少磁碟I/O,快速訪問本地數據             -它依賴表             -資料庫伺服器自動維護和使用它。           Oracle伺服器索引是一個模式對象,可以通過使用指針來加速行的檢索。 索引可以顯式或自動創建。 如果在列上沒有索引,則會發生全表掃描。         索引提供對錶中行的直接和快速訪問。 其目的是通過使用索引路徑快速定位數據來減少磁碟I / O。 該索引由Oracle伺服器自動維護和使用。 索引創建後,用戶不需要直接的活動。         索引在邏輯上和物理上獨立於索引表。 這意味著它們可以隨時創建或刪除,並且不會影響基表或其他索引。         註意:刪除表格時,相應的索引也會被刪除。                   索引類型:             唯一性索引:PRIMARY KEY和UNIQUE約束會自動創建唯一性索引。             非唯一性索引:用戶自定義創建索引。                          註意:創建唯一性索引時,建議創建一個唯一性約束,因為它會隱式的創建一個唯一性索引。           創建索引語法:             
  CREATE INDEX schema.index_name
                    ON schema.table_name (column[,column]...);
           
        創建索引的條件:                 -列上的資料跨度大                 -列上的資料有大量的空值                 -一個或多個列經常在WHERE子句或連接條件中一起使用                 -該表很大,大多數查詢預計將檢索少於2%到4%的行         不建議創建索引:                 -索引列沒有用於SQL語句查詢                 -檢索資料大於總資料的2%或4%                 -該列上有大量的更新操作                 -該列查詢被用於表達式           註意:索引越多並不是更好,表上索引越多不會產生更快的查詢。在有索引列的表上進行DML操作意味索引也必須更新。索引依賴表被刪除,索引也會跟著刪除。                      刪除索引:     
DROP INDEX schema.index_name ;
        重建索引:         
ALTER INDEX schema.index_name REBUILD [PARALLEL n];

        14:40:24 SQL> create index hr.hr_emp_01 on hr.emp_01(salary);
        14:40:51 SQL> alter index hr.hr_emp_01 rebuild parallel 4;
        14:41:06 SQL> drop index hr.hr_emp_01;
     同義詞【Synonym】             同義詞是能夠以其他名稱調用表(其他對象)的資料庫對象。可以創建同義詞,給一個表(或其他對象)的替代名稱。              創建語法:
 CREATE [PUBLIC] SYNONYM synonym_name FOR schema.object_name;
            同義詞分類:             PUBLIC:公有同義詞,其他用戶均可以訪問。             PRIVATE:私有同義詞,只能是創建用戶所擁有或訪問(預設值)。                刪除同義詞:
DROP [PUBLIC] SYNONYM synonym_name;
        註意:public公有同義詞用戶必須擁有drop public synonym許可權才能刪除。
        14:57:16 SQL> drop public synonym dbmonitor_book2
        15:00:20   2  ;
        drop public synonym dbmonitor_book2
                    *
            ERROR 在行 1:
            ORA-01031: 權限不足
        15:00:25 SQL> drop  synonym dbmonitor_book2
        15:00:31   2  ;
            已刪除同義字.

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oracle索引詳解(一) 索引介紹   索引對於Oracle學習來說,非常重要,在數據量巨大的狀況下,使用恰到好處的索引,將會使得數據查詢時間大大減少,於2017/12/25暫時對Oracle中的索引進行一個大致的瞭解。 索引的創建語法 索引的特點 索引的不足 比較適合建立索引 ...
  • -- 查詢學生的最高分和最低分,並統計所以學生的最高分和最低分;SELECT sno,MAX(grade),MIN(grade) FROM sc GROUP BY sno WITH ROLLUP; with rollup:該查詢的最後結果出現在最後一行,並且統計了最後一行做了作為總算; (這是在我自 ...
  • 本篇文章是我在MVP直通車分享的關於SQL Server 2017的新功能,現在ppt分享如下,可以點擊這裡下載。 ...
  • 一、 實現功能 有時候在linux伺服器端, 會在mysql命令行中, 創建資料庫, 今天講一下怎麼在創建資料庫時, 把charset設置為utf8,collate設置為utf8_general_ci, 只要使用下麵的命令即可, CREATE DATABASE qinziheng DEFAULT C ...
  • 1. 環境規劃: node1(mysql1) 192.168.10.94 node2(mysql2) 192.168.10.95 vip 192.168.10.222 資料庫 mysql-5.6.26 2.mysql安裝 2.1卸載查看到的包 2.2安裝mysql 2.3初始化資料庫 進行初始化腳本 ...
  • 在Debian下其實可以用apt-get一鍵安裝Redis,但是安裝的版本不是最新的。為了安裝最新的Redis版本,需要從官方下載源碼編譯安裝,過程也比較簡單。 目前Redis最新的stable版本是4.0.6,源碼下載地址是:http://download.redis.io/releases/re ...
  • http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html Introduction Hadoop分散式文件系統被設計運行在普通的硬體上。它和目前已經存在的分散式文件系統有很多相似的地方。然 ...
  • 目的: -對象許可權和系統許可權的不同之處 -表格的許可權 -數據字典的視圖許可權 -角色授權 -分區許可權和角色 控制用戶訪問 多用戶環境中,要維護資料庫訪問和使用的安全性。Oracle伺服器資料庫安全性可以執行以下操作: -控制資料庫訪問 -授予訪問資料庫中的特定對象的許可權 -明確Oracle數據字典給予 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...