Oracle PL\SQL操作(五)其他技術

來源:互聯網
上載者:User

1.在表之間傳輸資料

1)利用INSERT傳輸資料

insert into test1 (select name2,age2 from test2); 

從上面的操作可以看出,可通過SELECT向一個表中成批地添加資料,但應注意:資料類型要一致,所選擇的列數應一致。此語句的文法格式如下:

INSERT INTO table_name ( SELECT statement ) ; 

2)基於已有的表建立新表

文法為:

CREATE TABLE new_table_name AS SELECT statement ; 

完成以下操作,並比較test1test2表結構:

create table test3 as select * from test2; 
 

2.重新命名表

這項工作做起來很容易,文法如下:

RENAME old_table_name TO new_table_name; 完成如下操作: rename test3 to tst3; rename test2 to tst2; rename test1 to tst1; 

 

3.更改表的結構

1)增加列

ALTER TABLE table_name ADD new_column_name datetype[NOT NULL] ; 
alter table tst1 add csrq date; alter table tst2 add dz varchar2(20); desc tst1; desc tst2; 

2)更改列的資料類型

ALTER TABLE table_name MODIFY column_name new_datatype ; alter table tst1 modify age char(3); desc tst1; 

3)更改空值選項

ALTER TABLE table_name MODIFY column_name NOT NULL ; 

完成以下操作, 觀察表結構列資料類型的變化:

alter table tst1 modify name not null; desc tst1; alter table tst1 modify name null; desc tst1; 

4.視圖

        概念: 定義一個查詢,將它存放到Oracle的資料庫中,然後允許使用者按名字調用,就像是表一樣(實際上並不是表)。從使用者的觀點來看,視圖看上去確實像一個表,資料好像是從這個表中檢索出來的。其實,資料只是通過這個視圖顯示出來,它們實際來自一個或多個其他的資料來源。視圖的一種最常見的應用是串連來自兩個或多個表的資料,並以一個便於閱讀的列表將它們提供給使用者。通過指定記錄檢索過程使使用者不必理解怎樣串連表,使大量的人都能夠使用這些資料。

CREATE OR REPLACE VIEW view_name AS SELECT statement ; CREATE VIEW view_name AS SELECT statement ; 

建立一個視圖,查詢學員基本情、選修課程和成績。

create or replace view xyqk_view as select a.xm 姓名 , a.dh 電話, c.kcmc 課程名稱, b.cj 成績 from xyqkb a, xycjb b, xkb c where a.xybh = b.xybh and c.kcbh = b.kcbh ; select * from xyqk_view; 

刪除視圖

DROP VIEW view_name; 如:DROP VIEW xyqk_view;

Oracle不提供更改已有視圖的方法,更改視圖的唯一辦法是刪除它,然後重建。

 

5.TOP N分析

顯示查詢結果中合格前N行,完成以下操作:

select xh,xm,dh from xyqkb where rownum <= 5 

 

6.其它資料庫物件

1)序列(sequence

序列就是計數器。

a)建立序列

基本文法:CREATE SEQUENCE sequence_name;

帶有選擇性參數的文法:

CREATE SEQUENCE sequence_name [INCREMENT BY increment_quantity] [START WITH starting_value] [MAXCALUE highest_value] [MINVALUE lowest_value] [CYCLE] ; 
create sequence test_seq;     select test_seq.nextval from dual;          select test_seq.nextval from dual;          select test_seq.nextval from dual;

b)使用序列

完成以下操作,弄清序列的用法:

create table st( record_id number(6,0), record_text varchar2(10) ); insert into st values(test_seq.nextval,’aaaa’); insert into st values(test_seq.nextval,’bbbb’); insert into st values(test_seq.nextval,’cccc’); insert into st values(test_seq.nextval,’dddd’); select * from st; 

c)修改已有序列

ALTER SEQUENCE sequence_name

[選項];

alter sequence test_seq    increment by 2;    select test_seq.nextval from dual;    select test_seq.nextval from dual;    insret into st(test_seq.nextval,’eeee’);    insret into st(test_seq.nextval,’ffff’);    insret into st(test_seq.nextval,’gggg’);    insret into st(test_seq.nextval,’hhhh’);    select * from st; 

d)刪除序列

DROP SEQUENCE sequence_name; 完成以下操作: drop sequence test_seq; 

2)同義字

通俗地講,同義字就是為Oracle對象起一個別名,可以使用這個別名訪問該對象。且使用同義字還可以使其它使用者通過同義字訪問該對象。

a)建立同義字

CREATE [PUBLIC] SYNONYM synonym_name FOR object_name ; 如:create synonym test_syn for test; create public synonym test_syn2 for emp; 

注意:建立同義字必須要有相應的許可權,沒有建立同義字的權限時不能建立同義字。

b)刪除同義字

DROP SYNONYM synonym_name; 如:DROP SYNONYM test_syn; 

3Oracle資料字典

現在大家可能認識到Oracle資料庫是由許多不同的對象組成的,這些對象有:表、列、視圖、關係、約束、序列等。Oracle通過將這些對象的資訊儲存在其資料字典中來儲存它們。

資料字典是一個表和視圖的集合,這些表和視圖由Oracle維護,以便使它們總是具有關於資料庫中每個對象和使用者的最新資訊。

a)查詢資料字典擷取使用者和資料庫資訊。

資料字典對象的完整清單可通過查詢一個名為:DICT的視圖得到。

b)使用不同的資料字典視圖

與使用者資訊有關的資料字典視圖,如:user_tables、user_synonyms、user_indexes、user_views等等。

相關文章

聯繫我們

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