一、建立
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...