Oracle PL/SQL操作(五)

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等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值