Oracle數據庫SQL語句操作記錄

Oracle表操作:

=========--表操作--============
--新建表、刪除表
drop table vims_sysset
create table vims_sysset
(
   id varchar2(36) primary key not null,--ID,主鍵
   nsrsbh varchar2(20), --納稅人識別號 
   taxhalladdress varchar2(255), --認證地址
   sxbz varchar2(10),--屬性標誌:0,增值稅,1,貨運;
   typtbz varchar2(2),--是否統一受理平臺標誌:0,是;1,否  
   isverify varchar2(2), -- 是否審覈  Y:是,N:否
   filesize varchar2(10)  --文件大小 單位kb
);

--添加列,並默認值
alter table vims_biz_invoice add fsbz varchar(2) default('N');

--修改列的類型
alter table vims_biz_invoice_inventorys modify wpsl varchar2(10)
alter table vims_biz_invoice modify (fsbz varchar2(2) default 'N');

--刪除列
alter table vims_biz_invoice drop column fsbz;

--插入表
insert into vims_export_template(pid,type,n_chinese,n_english) values('3','zzs', '發票代碼','fpdm');

--查詢數據庫中所有表
select table_name from user_tables

--清空表記錄
truncate table table_name

Oracle SQL技巧操作:

=========--sql技巧操作--============
--遞歸查詢:connect by prior ...start with
  --遞歸查詢本企業的所有下級企業
select * from admin t connect by prior t.companyid = t.parentcompanyid start with t.companyid = '';  

--左連接查詢,左表的記錄將會全部表示出來,而右表只會顯示符合搜索條件的記錄,記錄不足的地方均爲NULL。
select * from test1 a left join test2 b on a.id = b.id; 
   -- == select * from dave a,bl b where a.id=b.id(+);//左連接

select * from test1 a right join test2 b on a.id = b.id; 
   -- ==  Select * from dave a,bl b where a.id(+)=b.id;//右連接

select * from test1 a full join test2 b on a.id = b.id;//全連接,不支持(+)這種寫法。

--查詢和並列,多行轉字符串 concat():字符連接函數 或 ||
select concat(xfsh,'|',xfmc) as acfield from cims_xtgl_company_gx 
select (xfsh||xfmc) as acfield from cims_xtgl_company_gx 

--wm_concat函數:可以把列值以","號分隔起來,並顯示成一行
select wm_concat(name) name from test;

--把wm_concat結果裏的逗號替換成"|"
select replace(wm_concat(name),',','|') from test;

--查看字符集
select * from nls_database_parameters;//查看Oracle服務器的字符集
select * from nls_instance_parameters;//查看Oracle客戶端的字符集
select * from nls_session_parameters;//查看session的字符集

--日期比較,to_date: 把字符串轉換爲數據庫中的日期類型
rzsj <= to_date('" + rzqdvo.getKprq2() + " 23:59:59', 'yyyy-MM-dd HH24:mi:ss')

--格式化日期輸出格式,to_char: 把日期或數字轉換爲字符串 
to_char(w.sample_time, 'yyyy-mm-dd ')

創建主鍵自增長表:

=================--創建主鍵自增長表--====================
--創建表
create table student
(
   id integer primary key not null,--ID,主鍵,自動增長    
   name varchar2(20), --姓名 
   sex varchar2(100), --性別
   age integer, --年齡 
   grade
 varchar2(100) --年級  
);

--創建序列
create sequence sq_student
start with 1 --從1開始計數
increment by 1 --每次加1個
minvalue 1 --最小值
nomaxvalue --不設置最大值 設置最大值:maxvalue9999 
nocycle --一直累加,不循環

--創建觸發器
create or replace trigger student_trigger 
before insert on  student 
for each row /*對每一行都檢測是否觸發*/ 
begin
select sq_student.nextval into:new.id from sys.dual;
end;

--刪除表 序列 觸發器
drop table student
drop sequence sq_student
drop trigger student_trigger 

--插入表
insert into student(name,sex,age,grade) values('張三','男', '20','大一');

循環插入數據:

=========--循環插入數據--============
-- Created on 2014/11/27 by wwm 
declare
-- Local variables here
   i integer;
begin
   i := 1;
loop
 -- Test statements here
 --
insert into TEST_INVOICE (id, fpdm, fphm,fpje,fpse,kprq,xfsh,gfsh)
       values (i, '123123', '12312313','100.00','10.00',sysdate,'123012312',i);
      i := i + 1;
exit when i > 10000000;
end loop;
commit;
end;

創建用戶、表空間並分配權限:

#表空間、用戶操作
--第1步:創建數據表空間
create tablespace vims_data 
logging 
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
         
--第2步:創建臨時表空間  
create temporary tablespace vims_temp 
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local;   

--第3步:創建用戶並指定表空間 
create user ttvims identified by ttvims 
default tablespace vims_data 
temporary tablespace vims_temp;
 
alter user ttvims quota unlimited on vims_data ; --提示沒有權限操作vims_data表空間,可以修改

--第4步:給用戶授予權限
grant 
    create session, 
    create any table, 
    create any view ,
    create any index, 
    create any procedure,
    alter any table, 
    alter any procedure,
    drop any table,
    drop any view, 
    drop any index, 
    drop any procedure,
    select any table, 
    insert any table, 
    update any table, 
    delete any table
to ttvims;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章