--此例在PL/SQL developer内的sql窗口中使用
--注:操作的表原名为:职务字典,原有数据列为:职务编码和职务名称且有数据
--建立一个新表
create table yfycode_level (
id varchar2(3),
name varchar2(16)
)
--在表中插入数据
insert into yfycode_level(id,name)
values('01','国家级')
--查询CODE_POSITION表中的所有数据并显示
Select * From CODE_POSITION
--将表CODE_POSITION表中的数据及表结构一起拷贝到表YFYCODE_POS,相当于复制表CODE_POSITION
Create Table YFYCODE_POS As Select * From CODE_POSITION
--查询表YFYCODE_POS表中的所有数据并显示,会发现与CODE_POSITION完全相同
Select * From YFYCODE_POS
--把表名为职务字典的表,改名为CODE_POSITION
ALTER TABLE 职务字典 RENAME TO CODE_POSITION
--在表CODE_POSTION表中加入两列分别为ID,NAME
alter table CODE_POSITION add ID Varchar2(3)
alter table CODE_POSITION add NAME VARCHAR2(16)
alter table CODE_POSITION add ID Varchar2(3)
alter table CODE_POSITION add NAME VARCHAR2(16)
--将表中原来有的两列职务编码,职务名称内的数据复制到列ID,NAME中,且把职务编码,职务名称列清空
update CODE_POSITION set ID = 职务编码, 职务编码= Null,NAME = 职务名称, 职务名称 = NULL;
update CODE_POSITION set ID = 职务编码, 职务编码= Null,NAME = 职务名称, 职务名称 = NULL;
--将CODE_POSITION表中的列职务编码,职务名称删除
alter table CODE_POSITION set unused column 职务编码;
alter table CODE_POSITION set unused column 职务名称;
alter table CODE_POSITION set unused column 职务编码;
alter table CODE_POSITION set unused column 职务名称;
--所采用的表是yfycode_pos,其中有两列数据分别为ID,NAME,并且有数据
Select * From yfycode_pos
--创建序列yfycode_pos_Id_sequence
Drop Sequence yfycode_pos_Id_sequence;
Create Sequence yfycode_pos_Id_sequence
INCREMENT BY 1
START WITH 1
maxvalue 99999
NOCYCLE;
----创建触发器UserInfo_Id_trigger
CREATE OR REPLACE TRIGGER yfycode_pos_Id_trigger
BEFORE INSERT
ON yfycode_pos
FOR EACH ROW
DECLARE
newId Varchar(2);
BEGIN
SELECT yfycode_pos_Id_sequence.nextval INTO newId FROM dual;
:new.id := newId;
END;
首先执行创建序列和创建触发器后,则会在每次对表进行插入操作时,会自动生成ID号,如执行
Insert Into yfycode_pos(Name) Values('民磊磊')后,会自动增加一行(1, 民磊磊)。
再执行一次,则会再增加一行(2,民磊磊)。
--删除一个oracle中的表
drop table yfycode_level