oracle入門總結

2021-12-21 16:51:46 字數 4571 閱讀 8098

一、建立

1.建立使用者

create user user_name identified by "password"

create user "lnckq" 建立乙個使用者,名稱為 lnckq

identified by "lnckq" 密碼為lnckq

default tablespace "gtoa" 預設表空間是 gtoa

temporary tablespace "temp" 臨時表空間是 temp

account unlock; 帳號正常未鎖定

grant"connect" to "lnckq" with admin option;

授予使用者lnckq 建立連線的角色,並可再授權

grant"dba" to "lnckq" with admin option;

授予使用者lnckq 資料庫管理員的角色,並可再授權

2.許可權

grant 「許可權型別」 to user_name

grant create session to zhangsan;//授予zhangsan使用者建立session的許可權,即登陸許可權

grant unlimited session to zhangsan;//授予zhangsan使用者使用表空間的許可權

grant create table to zhangsan;//授予建立表的許可權

grante drop table to zhangsan;//授予刪除表的許可權

grant insert table to zhangsan;//插入表的許可權

grant update table to zhangsan;//修改表的許可權

grant all to public;//這條比較重要,授予所有許可權(all)給所有使用者(public)

grant alert table on tablename to zhangsan with admin option;//關鍵字 with admin option

grant alert table on tablename to zhangsan with grant option;//關鍵字 with grant option效

角色  角色即許可權的集合,可以把乙個角色授予給使用者

create role myrole;//建立角色

grant create session to myrole;//將建立session的許可權授予myrole

grant myrole to zhangsan;//授予zhangsan使用者myrole的角色

drop role myrole;刪除角色

3.建立表

create table table_name (

欄位1 字段型別 not null ,

欄位2 varchar2(12) null ,

.....

primary key(字段)

)4.建立檢視 (檢視中的資料可否修改?)

create or replace view view_name as select * from emp, dept where

create or replace view view_name(欄位1,欄位2.....)

as select a.欄位1,b.欄位2.......

from table1 a,table2 b

where 字段=字段

[group by ....

order by ....]

5.建立儲存過程

乙個簡單的例子修改emp表的ename欄位

create or replace procedure update_emp(v_empno in varchar2,v_ename in varchar2) is

begin

update emp set ename=v_ename where empno=v_empno;

end update_emp;

呼叫事件: exec update_emp('7935','test');

create or replace procedure procedure_name(v_no in number)

as r_str 表名%rowtype

begin

select * into r_str from 表名 where 對應字段=v_no;

dbms_欄位);

end;

6.建立觸發器。

create or replace trigger trigger_name [before | after instead of ..] on table_name

for each row

begin

insert into 表名(欄位名) values(對應值);

end if;

end;

7.建立函式。

create or replace function sumaa(a in number,b in number) return number;as

begin

result:=power(a,b)

end;

fp:=sumaa(5,2);

create or replace function (name in type, name in type, ...) return number

is result number;

begin

return (result);

end ;

create or replace function ret_emp_sal(v_ename varchar2)

return numberisv_sal number(7,2);

begin

select nvl(sal,0) into v_sal from emp where lower(ename)=lower(v_ename);

return v_sal;

end;

呼叫:var

vsla number

call ret_emp_sal('7935') into :vsal;

8.建立cursor

declare cursor cussor_name is select * from emp 可以代表一行資料

declare cursor students_cur宣告游標

isselect name,dob

from students

where specialty = v_specialty;

begin

其他**//

end;

用行變數分別計算各部門的總工資。

declare

cursor c_dept is select * from dept order by dept_no;

cursor c_emp(p_dept varchar2) is select ename,salary from emp where deportno = p_dept order by ename;

r_emp emp%rowtype;

r_dept dept%rowtype;

v_tot_salary number(10,2);

begin

for r_dept in c_dept loop

dbms_'department: ' || r_

v_tot_salary:=0;

for r_emp in c_emp(r_ loop

dbms_'name: ' || r_ ||' salary: ' ||r_

v_tot_salary := v_tot_salary+r_

end loop;

dbms_

end loop;

close c_dept;

close c_emp;

end;

9.建立同義詞。

create [public] synonmy synonmy name for 表名

create synonym 名字 for 所有者.物件名

10.建立package.

create or replace package package_name as [is]

procedure aa();

function bb()

end package_name

create or replace package body package_name as [is]

包含內容的命令和函式

end;

11.建立 index

create index index_name on tablename (name);

create [unique|bitmap] index[schema.] index_name ---unique:說明該索引是唯一索引 bitmap:建立位圖索引

on [schema.] table_name

(column_name[desc|asc][, column_name[desc|ascdesc|asc:說明建立的索引

為降序公升序排列的

12.建立 sequence

create sequence sequence_name //

oracle資料庫入門

很多剛剛接觸oracle資料庫的初學者總是感覺oracle很難學,無從下手,漸漸的感覺對oracle很排斥,有的朋友找了本oracle是書也是一點也看不懂,或者看了前面幾章,還是不知道怎麼用。其實,從筆者的親身經歷來說,oracle入門很簡單,使用oracle的基本功能也是一件非常簡單的事情。但是想...

Oracle的初學者入門心得

oracle的體系太龐大了,對於初學者來說,難免會有些無從下手的感覺,什麼都想學,結果什麼都學不好,所以把學習經驗共享一下,希望讓剛剛入門的人對oracle有乙個總體的認識,少走一些彎路。一 定位 oracle分兩大塊,一塊是開發,一塊是管理。開發主要是寫寫儲存過程 觸發器什麼的,還有就是用orac...

Oracle的初學者入門心得

oracle的體系太龐大了,對於初學者來說,難免會有些無從下手的感覺,什麼都想學,結果什麼都學不好,所以把學習經驗共享一下,希望讓剛剛入門的人對oracle有乙個總體的認識,少走一些彎路。一 定位 oracle分兩大塊,一塊是開發,一塊是管理。開發主要是寫寫儲存過程 觸發器什麼的,還有就是用orac...