oracle數據庫

用戶(user)是定義在數據庫中的一個名稱,訪問數據庫時,要提供合適的用戶名和口令。
模式(Schema)是用戶所擁有對象的集合。用戶與模式是一一對應的關係,並且二者名稱相同。
在Oracle 數據庫中建立用戶是使用命令create user 由dba用戶來完成;如果要以其他用戶身份創建用戶,必須需要create user 系統權限。

一、創建用戶語法定義:
CREATE USER test IDENTIFIED BY test
DERAULT TABKESPACE users_ts
TEMPORARY TABLESPACE temp_ts
QUOTA 3m ON users_ts;
如上示例:
建立一個數據庫用戶;
賬戶:test
口令:test
使用的默認表空間:users_ts
使用的臨時表空間:temp_ts
在表空間users_ts 的配額:3m

二、鏈接到數據庫
爲了鏈接到數據庫必須給予授權(create session)

1,示例:給初始用戶授予會話權限
connect system/manager
grant create session to test
connect test/test
可通過使用test賬戶連接上Oracle數據庫

2 示例:給數據庫賬戶授予create table 的權限對數據庫進行初步操作
connect system/manager
grant creat table to test
connect test/test
create table ....
可通過使用test賬戶連接上Oracle數據庫,然後創建數據庫表。

3 示例:修改用戶口令
alter user test(用戶名) identified by test(用戶密碼)

4 示例:解鎖用戶
alter user test(要解鎖的用戶名) account unlock ;

5 示例:修改用戶空間配額
alter user test QUOTA 10m on users_ts;

6 示例:刪除數據庫用戶的語法
DROP USER username(用戶名)
注意:如果模式中包含有數據庫對象,則必須帶有CASCADE,否則會顯示錯誤信息
drop user 用戶名 cascade;

授予系統權限
7 示例:授予系統權限語法
grant 系統權限列表(多個系統權限之間用“,”分隔)to 用戶
grant create session,create table to test;
即:授予創建會話和創建表的權限給test用戶。

回收系統權限
8 示例:回收系統權限語法
Revoke 系統權限列表(多個系統權限之間用“,”分隔)from 用戶
revoke create session,create table from test
即:從test 賬戶收回創建會話和創建表的權限。

9 顯示當前用戶所具有的系統權限
select * from user_sys_privs where grantee='test'

10 顯示當前角色所具有的權限
select * from session_privs;

授予對象權限
1 示例:
grant 權限列表(權限之間用逗號隔開) on 對象 to 賬戶

connect b/b 鏈接B賬戶
grant select ,insert on tx to A
把B.TX的查詢和添加的權限給A

2 示例:回收對象權限的基本語法
connect b/b 鏈接B賬戶
revoke select ,insert on TX from A

3 示例:顯示當前用戶所具有的對象權限

select * from user_tab_privs
通過USER_TAB_PRIVS 可以查看當前用戶所具有的對象權限。

創建角色

示例:創建的角色
CREATE ROLE test_role

給角色授權

示例: 給角色授權
grant create session, create table to test_role;

使用角色給用戶授權

示例:使用角色給用戶授權

GRANT test_role(角色名) TO user_name(用戶名)

示例:刪除角色
DROP ROLE test_role

使用user_role_privs 顯示當前用戶具有的角色
示例:
SELECT USERNAME, GRANTED_ROLE FROM USER_ROLE_PRIVS;

三 SQL語句

SQL語句不區分大小寫,即可大寫,也可小寫,或混寫

DEPT表:公司部門表,字段(deptno,dname,loc)
EMP表:公司員工表,字段(empno, ename, job ,mgr, hiredate, sal, comm ,deptno)
DEPT爲主表,EMP爲從表

1 示例:顯示錶結構
desc emp;

2 示例:查詢所有列
selcet * from dept;

3 示例:查詢特定列
select deptno,dname from dept ;

使用算術表達式
示例:查詢年工資
select sal*12 from emp

取消重複的行,用關鍵字distinct
示例:
select distinct deptno ,job from emp

where 條件句

select ename, hiredate from emp where to_char(hiredate,'yyyymmdd')<'19810101';
注意:to_char(hiredate,'yyyymmdd')<'19810101'年月日的一種比較

select enma ,sal from emp where sal between 0 and 1000;
注意:在between 後頭指定較小的值,在and 後頭指定較大的值

select ename ,sal from emp where ename like '%s%'

select ename, sal from emp where ename like 'M%';
注意:通配符%和

%是指多個字符通配
_是單個字符匹配

在where 字句中使用邏輯操作符(AND ,NOT, OR)
select ename ,sal from emp where comm is not null;

select ename, sal from emp where comm>100 and sal >1000;

ORDER BY 字句

ASC用於升序排序(默認),DESC用於降序,當有多個字句時ORDER BY 字句必須放在最後
示例:
select ename, sal from emp order by sal desc ;

insert 增加數據

insert into emp

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