您好,登錄后才能下訂單哦!
用戶(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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。