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 ;
完成以下操作,並比較test1和test2的表結構:
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;
3)Oracle資料字典
現在大家可能認識到Oracle資料庫是由許多不同的對象組成的,這些對象有:表、列、視圖、關係、約束、序列等。Oracle通過將這些對象的資訊儲存在其資料字典中來儲存它們。
資料字典是一個表和視圖的集合,這些表和視圖由Oracle維護,以便使它們總是具有關於資料庫中每個對象和使用者的最新資訊。
a)查詢資料字典擷取使用者和資料庫資訊。
資料字典對象的完整清單可通過查詢一個名為:DICT的視圖得到。
b)使用不同的資料字典視圖
與使用者資訊有關的資料字典視圖,如:user_tables、user_synonyms、user_indexes、user_views等等。