oracle sql语句 只读,Oracle_SQL语句
------------------------Oracle 的SQL 語法--------------------------=======================第(1,2)章 結 合 語 句==========================》1:創建表空間create tablespace 表空間名datafile'存放文件的路徑_空間名_.dbf' size 30m;》2: 分配權限grant 權限| 角色 to 用戶名》3: 創建用戶create user 登陸名 identified by 密碼grant connect , resource to 登陸名》4:創建唯一索引create unique index index_列_empon on 表名 (列);》5:創建序列create sequence 自定義表名 start with 1 increment by 1;》6: 查看當前序列的值select seql.currval from 表名》7:創建私有同義詞create synonym e(自己定義的一個) for 表名;》8: 創建共有同義詞create public synonym e for 表名;》9: 給某個用戶訪問的權限,可以訪問該同義詞grant select on e to 用戶名;》10: 創建大寫函數索引Create index index_ename on 表名 (upper(列));》間隔分區create table 表名partition by range (列)interval (numtoyminterval(3,'month'))(partition p1 values less than (to_date ('2013-04-01','yyyy-mm-dd')))asselect * from 表名=====================第(3)章 的 SQL 語 句=======================================PL/SQL 塊可執行部分 其中變量語法如下:》1:聲明變量declarev_name varchar2(20);》2: 聲明和賦值declarev_Names varchar2(20):='戰三';》3:循環控制---------------(1)Loop循環語法:LoopEXIT Where ---條件滿足,退出END Loop;-------------(2)WHILE 循環語法:WHILK Loop要執行的語法END Loop;》4:輸出語句dbms_ output.put_line ('您要輸出的內容 , ZZZ.....想睡覺了.....');》5: 游標聲明,打開,提取,關閉 (例子)declarecursor em_cursor isselect 列 from 表名 where (條件);--聲明兩個變量v_name employee name%type;v_sal employee%type;beginopen em_cursor ;--打開游標loopfetch em_cursor into v_name,v_sal --提取游標(提取行)exit when em_cursor%notfound; --判斷游標是否為空,就退出dbms_output.put_line(v_name||v_sal); --輸出兩個變量endloop; --循環提取close em_cursor; --關閉游標end;》6: 循環游標取數據for i in 游標名 loopdbms_output.put_line('用戶信息:'||i.userid||'-------'||i.username);(直接 i 不可取 i為對象)end loop;=========================第(4)章 的 SQL 語 句=======================================》1: 通過游標修改數據declarecursor userinfo is select * from t_user for update;v_name varchar2(50);beginfor i in userinfo loopv_name :=i.username;update t_user set username='王五' where current of userinfo;dbms_output.put_line('用戶信息:'||i.userid||'-------'||i.username);end loop;commit;end;》2: 創建存儲過程create or replace procedure usertestiscursor userinfo is select * from t_user;beginfor i in userinfo loopdbms_output.put_line('用戶信息:'||i.userid||'-------'||i.username);end loop;end;》3: 調用存儲過程exec usertest;call usertest();beginusertest;end;》4: 存儲過程修改數據create or replace procedure usertest(v_name varchar2)isbeginupdate t_user set username=v_name where userid=1;if v_name is null then raisecommit;exceptionwhen others then rollback;end;exec usertest('zhangsan');》5: 過程中的參數--在過程中,in修飾的參數,不允許在過程中給它賦值create or replace procedure usertest(v_name in varchar2,v_pwd out varchar2,v_show in out varchar2)isv_hello varchar2(50);begin-- v_name := 'name';v_pwd := 'pwd';v_show := 'show';v_hello := 'hello';dbms_output.put_line('信息:'||v_name||'-------'||v_pwd||'-------'||v_show||'-------'||v_hello);end;declarevp varchar2(50);vs varchar2(50);beginvs := 'cccccc';usertest('aaaaaaa',vp,vs);end;》5: 存儲過程的語法create or replace procedure 過程的名字(參數1 in/out 沒有長度的類型,參數2 in/out 沒有長度的類型) is過程中需要用的參數名 可以指定長度的類型;begin過程的內容end;》6: 變量的類型的另外一種寫法--in傳遞的參數,長度由外部控制--out傳遞的參數,長度由內部控制create or replace procedure usertest(v_name in t_user.username%type,v_num in t_user.userid%type)isv_hello t_user.username%type;beginv_hello := 'hello';dbms_output.put_line('信息:'||v_name||'-------'||v_num||'-------'||v_hello);end;declarevp varchar2(50);vs number;beginvs :=11111111111111111111;usertest('aaaaaaa',vs);end;》7: 定義外部變量var vnum number;var vid number;var vname varchar2(50);exec :vnum:=23;exec :vid:=4;exec :vname:='wangwu';exec userinfo(:vid,:vname,:vnum);create or replace procedure userinfo(vid t_user.userid%type,vname t_user.username%type,vnum out t_user.userid%type)isbeginvnum :=vid;dbms_output.put_line('信息:'||vid||'-------'||vname||'--------'||vnum);end;》 8: 創建函數create or replace function funuserreturn varchar2 isv_id number(8);uname t_user.username%type;beginv_id := 3;select username into uname from t_user where userid=v_id;return uname;end;declarevname varchar2(50);beginvname :=funuser;dbms_output.put_line('vname:'||vname);end;call funuser() into :vname;print vname;》 9: 創建包的規范create or replace package user_pkgisprocedure userselect(v_id t_user.userid%type,v_name t_user.username%type);function getname return varchar2;end;》10: 創建包的內容create or replace package body user_pkgisprocedure userselect(v_id t_user.userid%type,v_name t_user.username%type)isvn varchar2(50);beginupdate t_user set username=v_name where userid=v_id;commit;dbms_output.put_line('v_name:'||v_name);end;function getname return varchar2isvname varchar2(50);beginselect username into vname from t_user where userid=3;return vname;end;end;----exec 為調用存儲過程exec user_pkg.userselect(3,'lisi');call user_pkg.getname() into :vname;print vname;※ 11: 創建視圖create or replace view empdeptasselect e.empno,e.ename,e.job,e.mgr,e.sal,e.hiredate,e.comm,d.dname,d.locfrom emp e,dept dwhere e.deptno=d.deptnowith read only (這為把值設為只讀);update empdept set ename='world' where empno=7369;create or replace view deptviewasselect * from emp where deptno=20with check option;update deptview set ename='world' where empno=7369;update emp set deptno=10 where empno=7369;》 12 : 創建數據庫鏈create database link mylinkconnect to tt identified by ttusing '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = jiahua)))';select * fromcompany@mylink;》13: 創建觸發器--當dept表(deptno=10)的loc的deptno改為BJ的時候,修改相關的emp表的ename=BJcreate or replace trigger updateempafter update of loc on dept for each rowbeginupdate emp set ename='BJ' where deptno=10;end;
總結
以上是生活随笔為你收集整理的oracle sql语句 只读,Oracle_SQL语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于计算机的英语作文300,关于大学英语
- 下一篇: 桌面计算机硬盘打不开,我电脑的磁盘打不开