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

news/2024/7/4 7:17:39

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

转载于:https://www.cnblogs.com/cxccbv/archive/2009/07/08/1519382.html


http://www.niftyadmin.cn/n/2970595.html

相关文章

DataWindow.net应用介绍(一)

Datawindow中文译名为数据窗口&#xff0c;是开发工具PowerBuilder(PB)的一个王牌组件&#xff0c;使用PB作为开发工具的&#xff0c;基本上都是冲着Datawindow 来的&#xff0c;它不仅可以用来显示数据&#xff0c;还可以实现数据录入、报表打印等功能&#xff0c;是Sybase 的…

微软的落寞始于创新的停滞

微软的CEO鲍尔默上台&#xff0c;这一后盖茨时代的开始&#xff0c;就注定了微软在创新上的停滞。 出生&#xff1a;1956年3月24日 史蒂夫鲍尔默 职位&#xff1a;微软公司首席执行官兼总裁教育背景&#xff1a;理学士&#xff0c;于哈佛大学&#xff1b;工商行政管理硕士&…

JDK NEW TOOLS (监视JVM)

http://www.diybl.com/course/3_program/java/javajs/2008318/104919.html 最近压力测试和调优Liferay portal&#xff0c;所以需要找到一种工具&#xff0c;可以比较好的监测VM工具。本来想使用商用工具&#xff0c;但偶然间发现SUN 的JDK中新添了几个工具&#xff0c;并且非常…

apache+svn权限管理实例

http://abc.scmlife.com/viewthread.php?tid17700&highlight apachesvn权限管理实例 看了很多同学对权限管理的困惑&#xff0c;自己将实际操作方案放上来&#xff0c;供大家参考&#xff1a; 首先介绍下我们的环境&#xff1a;我们的SVN服务器是LINUX的操作系统方法一 例…

C# 基础知识

一、 C# 复制代码 // compile with: /target:library public class D {public virtual void DoWork(int i){// Original implementation.} }public abstract class E : D {public abstract override void DoWork(int i); }public class F : E {public override void DoWork(int…

巧解jquery及其插件一些bug

在开发傲游新浪微博插件中&#xff0c;使用jquery遇到一些问题&#xff0c;原因和解决方法如下。 1、thickbox的参数问题 在thickbox的例子中&#xff0c;以inline方式调用&#xff0c;形式如#TB_inline?height300&width300&inlineIdmyOnPageContent。 但是发现这样调…

【转载】项目级别配置管理员的职责

http://abc.scmlife.com/viewthread.php?tid17178&highlight

软考成绩出来了

软考成绩出来了.上午:49下午:64这个成绩应该是过了.我手上还有个网工呢,过去的时光对我来讲确实有点辛苦,但是以后应该更加努力才是.有一点点奖励,我都会很开心^_^转载于:https://www.cnblogs.com/splyn/archive/2009/08/04/1538783.html