Oracle角色,函式,迴圈的分析學習

2021-08-03 02:16:43 字數 4606 閱讀 9598

sys 超級管理員

system dba

scott

oracle建立使用者

建立使用者命令

create user 使用者名稱 identified by 密碼;

注意:新建立的使用者沒有任何許可權,包括登陸資料庫

oracle許可權

oracle許可權分類

系統許可權:

比如連線資料庫,建立許可權過程,建立表等

oracle規定好能夠做的操作

物件許可權:

針對某乙個物件的許可權,對系統許可權更細化,細化到某乙個物件。 比如對 ,某個表的新增查詢,刪除,更新等。

授權命令

語法格式

grant 命令1,命令2 to 使用者

授予登陸資料庫的許可權

grant create session to cz

授予查詢某錶的許可權

grant select on 表名 to 使用者名稱

連線命令:

conn 使用者名稱/密碼

在命令視窗開啟可以換行寫sql的命令:

ed;

輸入/執行

oracle角色

oracle角色分類

系統預定義角色:系統定義好的角色

使用者自定義角色:如果系統定義好的不夠用

自己定義乙個

oracle角色的作用

授予角色的本質就是授予許可權,

他是授予的一組許可權,為了解決很多許可權需要乙個乙個去授予。

oracle三個重要的系統角色

查詢所以的系統角色:

select * from dba_roles

connect:連線角色

resource:資源角色

dba:資料庫管理員

查詢角色的許可權:

select * from dba_sys_privs where grantee = 『dba』

授予角色

grant 角色名 to 使用者名稱

自定義角色

建立角色命令

create role 角色名

給自定義角色授權

grant 許可權 to 角色名

oracle撤銷許可權

撤銷許可權命令:

revoke 許可權 from 使用者

oracle許可權的傳遞

許可權直接不支援傳遞

在授權的時候可以傳遞許可權的命令

with grant option

物件許可權會受連帶責任同時被許可權

系統許可權不受連帶責任也就是不會同時被取消

oracle系統函式

數值函式

求絕對值

select abs(-12.1) from dual

進一法

select ceil(-12.1) from dual

去尾法

select floor(-12.9) from dual

四捨五入

select round(12.5) from dual

四捨五入保留2..n位小數

select round(12.567,2) from dual

數字擷取

預設擷取整數

select trunc(12.967) from dual

擷取小數後幾位

select trunc(12.917,2) from dual

擷取小數前幾位

select trunc(912.9,-2) from dual

字元函式

轉換成大寫

select upper(『abcd』) from dual

轉換成小寫

select lower(『abcd』) from dual

去掉空格(有時間空格的問題很坑)(前後空格)

select trim(』 accd』) from dual

去掉左邊空格

select ltrim(』 accd 『) from dual

去掉右邊的空格

select rtrim('  accd   ') from dual
去掉左邊指定的字元

select ltrim(『abcd』,』ac』) from dual

去掉右邊指定的字元

select rtrim(『abcd』,』dd』) from dual

替換函式

select replace(『this is a girl』,』girl』,』girl 2』) from dual

字串相加

select 『aa』||』bb』 from dual

select concat(『aa』,』cc』) from dual

擷取字串的函式

select substr('abcd',3,1) from dual

第乙個引數是:擷取的位置

第二個引數是:擷取的長度

求長度的函式

select length(『abcd』) from dual

轉換函式

轉化成數字

select to_number('1')+to_number('2') from dual

轉化成字串

select to_char(11)|| to_char(22) from dual

*轉化成字串,格式化時間

來個完整年月日時分秒的時間

select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual

時間24小時制

select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') from dual

處理null值的函式

nvl函式:

select nvl('cc','bb') from dual

如果第乙個引數有值就返回把本身,如果沒有值就返回第二個引數

如果第乙個引數為空就返回第二個引數,如果第乙個引數不為空就返回本身

nvl2函式:

select nvl2(」,』bb』,』cc』) from dual

if else

declare ptype int:=5;

begin

--ptype:=1;

if ptype=1 then

dbms_output.put_line('河東獅');

elsif ptype=2 then

dbms_output.put_line('河南獅');

elsif ptype=3 then

dbms_output.put_line('西獅');

else

dbms_output.put_line('獅');

end if;

end;

case when

declare ptype int:=6;

begin

case ptype

when 1 then

dbms_output.put_line('大');

when 2 then

dbms_output.put_line('更大');

else

dbms_output.put_line('超級大');

end case;

end;

配合查詢使用case when

select (

case job

when 'clerk' then '普通員工'

when 'salesman' then '銷售人員'

when 'manager' then '部門經理'

when 'president' then '董事長'

when 'analyst' then '資料分析師'

else

'其他'

end

),ename

from scott.emp

oralce迴圈

loop迴圈

loop  

dbms_output.put_line(ptype);

--指定乙個退出條件

exit when ptype=50;

ptype:=ptype+1;

end loop;

while迴圈

while(ptype<=10)  --和loop迴圈不同的地方就是退出條件

loop

dbms_output.put_line(ptype);

ptype:=ptype+1;

end loop;

for迴圈

for ptype in 1..50

loop

dbms_output.put_line(ptype);

end loop;

oracle分析函式

oracle分析函式 sql plus環境 1 group by子句 create test table and insert test data.create table students id number 15,0 area varchar2 10 stu type varchar2 2 sc...

Oracle 分析函式

分析函式提供了跨行,多層級聚合引用值的能力,並且可以在資料子集中控制排序粒度。與聚合函式不同,分析函式並不將結果集聚合較少的行。分析函式是在主查詢結果的基礎上進行一定的分析,如分部門彙總,分部門求均值等等。分析函式的模式 function arg1,arg2,arg3.argn over parti...

oracle中的角色

oracle 中的角色 一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就 是 角色。角色是一組許可權的集合,將角...