1. 程式人生 > >oracle常用的操作

oracle常用的操作

        最近業務需要給表新增索引,因為資料量很大時,查詢效率很低;老大建議使用索引; 之前總結的時候將索引沒有記錄,當然啦,也怪筆者基礎薄弱,不管了,慢慢進步嘛,好了進入正題吧!

       首先準備工作,先建兩個臨時表,後邊操作會用到;

 

--建臨時學生表
create table temp_student(
 id number,
 name varchar2(20),
 sex char(2),
 age number,
 class varchar2(20),
 userId 
number ); comment on table temp_student is '臨時學生表'; comment on column temp_student.id is 'ID'; comment on column temp_student.name is '姓名'; comment on column temp_student.sex is '性別'; comment on column temp_student.age is '年齡'; comment on column temp_student.class is '班級'; comment
on column temp_student.userId is '臨時人員ID'; --建臨時人員表 create table temp_user( id number, name varchar2(20), age number, sex char(2) ); comment on table temp_user is '臨時人員表'; comment on column temp_user.id is 'ID'; comment on column temp_user.name is '姓名'; comment on column temp_user.age is
'年齡'; comment on column temp_user.sex is '性別';

      下邊是常用的操作,這裡我暫時總結八點吧,吉利數字,嘎嘎!後邊有需要繼續總結,在這裡將表資料的增刪改沒有總結,因為太簡單了,在這裡筆者認為是佔地方,所以就免了,如果大家對錶資料的增刪改都不熟悉,那這篇文章對您暫時還不太適合,當以後熟悉了再來看看;

 

--1
--查詢表(pl/sql中可修改)
select * from temp_student for update; 
select * from temp_user for update;

--2
--刪除表
drop table temp_student;
drop table temp_user;

--3
--新增欄位
alter table temp_student add  join_date date;
comment on column temp_student.join_date is '入學時間'; 
--修改欄位
alter table temp_student modify(class varchar2(200));
--重新命名欄位
alter table temp_student rename column  join_date to join;
--重命名錶
rename temp_student to t_student;
--刪除欄位
alter table t_student drop column join;

--4
--建主鍵
alter table temp_student add primary key (id);
alter table temp_user add primary key(id);
--建外來鍵
alter table temp_student add constraint  userKey foreign key(userId) references temp_user(id);
--撤銷主鍵
alter table temp_student drop primary key;
--撤銷外來鍵
alter table temp_student drop constraint userKey;

--5
--給表建立公共別名
create public synonym t_student for temp_student;
create public synonym t_user for temp_user;

--6
--授權給指定角色許可權
grant select,insert,update on sys.temp_student to bepcde,bepopr;
--收回給指定角色許可權
revoke select,insert,update on sys.temp_student from bepcde,bepopr;
 
--7 
--建序列
create sequence t_student_seq 
  minvalue 1 --初始序號為1
  maxvalue 9999999999999999  --最大序號,這裡也可以設定
  start with 1 --從1開始計算
  increment by 1 --每次增1
  cache 30  --快取20個
  cycle; --//迴圈
--刪除序列
drop sequence t_student_seq;
--查詢下一個序列號
select t_student_seq.nextval from dual; --1

--8
--建立索引
create index id_a on t_student(name);
--刪除索引
drop index id_a;

      如果朋友們發現那裡有疑問或者問題,請指出來,謝謝!