真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

淺談Oracle數(shù)據(jù)庫的對象

Oracle數(shù)據(jù)庫---對象中最基本的是表和視圖,其他還有約束、索引、序列、函數(shù)、存儲過程、甚至創(chuàng)建同義詞。對數(shù)據(jù)庫的操作可以基本歸結為對數(shù)據(jù)對象的操作,因此,在上篇博文講述了基本操作的基礎上,本篇博文將介紹其對象的基本操作。

成都創(chuàng)新互聯(lián)公司,專注為中小企業(yè)提供官網(wǎng)建設、營銷型網(wǎng)站制作、成都響應式網(wǎng)站建設公司、展示型成都網(wǎng)站制作、網(wǎng)站設計、外貿(mào)網(wǎng)站建設等服務,幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設與網(wǎng)站營銷推廣問題。

一、表和視圖

  • Oracle中表是數(shù)據(jù)存儲的基本結構。隨之引入了分區(qū)表和對象表,后來又引入了臨時表,使表的功能更強大。
  • 視圖是一個或多個表中數(shù)據(jù)的邏輯表達式。用戶可以將視圖看成一個存儲查詢(stored query)或一個虛擬表(virtual table).查詢僅僅存儲在oracle數(shù)據(jù)字典中,實際的數(shù)據(jù)沒有存放在任何其它地方,所以建立視圖不用消耗其他的空間。視圖也可以隱藏復雜查詢。
1、表操作

在上一篇博文已詳細闡述,創(chuàng)建表空間---創(chuàng)建用戶(c##jerry)---創(chuàng)建表(info),表環(huán)境如下:

//創(chuàng)建表

SQL>create table info
2 (
3 id number(4) constraint PK_id primary key, #constraint :約束
4 name varchar2(10),
5 score number(5,2),
6 born date,
7 address varchar2(50)
8 );

//插入數(shù)據(jù)

SQL>insert into info values(1,'zhangsan',88,to_date('2018-10-9','yyyy-mm-dd'),'nanjing');
SQL>insert into info values(2,'lisi',77,null,null);
SQL>insert into info values(3,'lwangwu',77,null,null);
SQL>commit;

淺談Oracle數(shù)據(jù)庫的對象

2、創(chuàng)建視圖
SQL>create view view_info as select * from info;             #創(chuàng)建視圖
          select view view_info as select * from info;             #查看視圖
          drop view view_info;                                                      #刪除視圖

淺談Oracle數(shù)據(jù)庫的對象

3、物化視圖

物化視圖是包括一個查詢結果的數(shù)據(jù)庫對像,它是遠程數(shù)據(jù)的的本地副本,或者用來生成基于數(shù)據(jù)表求和的匯總表。物化視圖存儲基于遠程表的數(shù)據(jù),也可以稱為快照。

//給c##jerry用戶授權
SQL>conn sys/abc123 as sysdba                            #切換到管理員

grant create materialized view to c##jerry;      #創(chuàng)建物化視圖  
grant query rewrite to c##jerry;                          #查詢重寫
grant create any table to c##jerry;                     #創(chuàng)建任何表
grant select any table to c##jerry;                      #查看任何表

淺談Oracle數(shù)據(jù)庫的對象

//創(chuàng)建物化視圖日志

SQL>create materialized view log on info;

//創(chuàng)建物化視圖語句
SQL>create materialized view mtrlview_info     #建立物化視圖名稱
           build immediate                                          #立馬生成數(shù)據(jù) 
           refresh fast                                                  #刷新(不開啟此功能=快照)
           on commit                                                   #開啟提交功能
           enable query rewrite                                  #開啟查詢重寫
           as
           select語句;
//刪除物化視圖

SQL>drop materialized view mtrlview_info;
淺談Oracle數(shù)據(jù)庫的對象

二、索引

索引是一種可以提高查詢性能的數(shù)據(jù)結構,分為以下幾類:

//B-tree索引

SQL>create index score_index on info(score);

//唯一索引(針對主鍵,唯一、非空)

SQL>create unique index uni_index_info on info(id);

//反向索引

SQL>create index re_index_info on info(score) reverse;

//位圖索引

SQL>create bitmap index bit_index_info on info(address);

//其他索引(如函數(shù)索引)

SQL>create index upp_index_info on info(upper(name)); #大寫函數(shù)索引

//查看索引

SQL>select index_name,index_type,table_name,tablespace_name from user_indexes;

淺談Oracle數(shù)據(jù)庫的對象

//重建索引

SQL>alter index 索引名稱 rebuild;
SQL>alter index 索引名稱 rebuild tablespace 表空間

//合并索引碎片

SQL>alter index 索引名稱 coalesce;

//刪除索引

SQL>drop index 索引名稱

三、序列

Oracle序列是一個連續(xù)的數(shù)字生成器。序列常用于人為的關鍵字,或給數(shù)據(jù)行排序否則數(shù)據(jù)行是無序的。

//創(chuàng)建序列
SQL>create sequence toy_seq
start with 10                      #初始值
increment by 1                #增量
maxvalue 2000               #最大值
nocycle                            #非循環(huán)(超過2000不重新開始)
cache 30;                       #緩存30個序列數(shù)字
//創(chuàng)建表toy
SQL>create table toy
  2  (
  3 id number(4) constraint PK_id primary key,
  4  name varchar2(10),
  5  score number(5,2),
  6  born date,          
  7 );

淺談Oracle數(shù)據(jù)庫的對象

//插入數(shù)據(jù),驗證序列號

SQL>insert into toy values (toy_seq.nextval,'zhangsan',88); #nextval:指針(固定) .為調用
SQL>insert into toy values (toy_seq.nextval,'zhangsan',77);

//查看序列當前值

SQL>select toy_seq.currval from dual;

淺談Oracle數(shù)據(jù)庫的對象

//刪除序列

drop sequence toy_seq;

四、同義詞

  • 對另一個數(shù)據(jù)對象而言同義詞是一個別名。
  • 分類:公有同義詞(public)是針對所有用戶的;私有同義詞(private)則只針對對象擁有者或被授予權限的賬戶。
  • 在本地數(shù)據(jù)庫中同義詞可以表示表、視圖、序列、程序、函數(shù)或包等數(shù)據(jù)對象,也可以通過鏈接表示另一個數(shù)據(jù)庫的對象。
    //創(chuàng)建私有同義詞(針對info表)

    SQL>create synonym pr_info for info;
    SQL>select * from pr_info; #通過同義詞查看

淺談Oracle數(shù)據(jù)庫的對象

//創(chuàng)建公有同義詞(針對info表)

SQL>create public synonym pub_info for info;
SQL> select * from pub_info; #查看

淺談Oracle數(shù)據(jù)庫的對象

五、分區(qū)表

為解決海量數(shù)據(jù)存儲問題

//創(chuàng)建四個表空間(tmp01、tmp02、tmp03、tmp04)

SQL>create tablespace tmp01
datafile '/orc/app/oracle/oradata/tmp01.dbf'
size 100M;
SQL>create tablespace tmp02
datafile '/orc/app/oracle/oradata/tmp02.dbf'
size 100M;
SQL>create tablespace tmp03
datafile '/orc/app/oracle/oradata/tmp03.dbf'
size 100M;
SQL>create tablespace tmp04
datafile '/orc/app/oracle/oradata/tmp04.dbf'
size 100M;

//創(chuàng)建分區(qū)表(sales)

create table sales
(
sales_id number,
product_id vachar2(5),
sales_date date
)
partition by range (sales_date)
(
partition p1 values less than (to_date('2018-04-03','yyyy-mm-dd')) tablespace tmp01,
partition p2 values less than (to_date('2018-05-03','yyyy-mm-dd')) tablespace tmp02,
partition p3 values less than (to_date('2018-06-03','yyyy-mm-dd')) tablespace tmp03,
partition p4 values less than (maxvalue) tablespace tmp04
);

//插入數(shù)據(jù),查看是否實現(xiàn)分布式存儲

insert into sales values(1,'abc',to_date('2018-05-23','yyyy-mm-dd'));
select * from sales partition(p3);

淺談Oracle數(shù)據(jù)庫的對象
#結果顯示:輸入數(shù)據(jù)日期為2018-05-23,應該存儲在p3分區(qū)內(nèi),而其他分區(qū)沒有此條數(shù)據(jù)!

感謝大家的閱讀,希望共同進步!


當前名稱:淺談Oracle數(shù)據(jù)庫的對象
當前路徑:http://weahome.cn/article/gsppij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部