Oracle基礎

三種登錄方式

①sqlplus(黑屏)

②isql*plus(網頁)

③plsql Developer(第三方軟件)

******************************************************************************

******************************************************************************

物理結構:

 

                                                  .dbf    數據文件

                                數據庫     .log     日誌文件

                                                 .ctl       控制文件

Oracle服務器                                   

                                                                                用戶進程

                                                            進程            服務器進程

                                                                               後臺進程

                                 實例                                                                  共享池

                                                            內存           系統全局區        數據緩衝區       

                                                                                                           日誌緩衝區

 

                                                                               程序全局區             

----------------------------------------------------------------------------------------------------------------------

邏輯結構

                               數據庫

                                   ↓

                               表空間(最大的邏輯單元)

                                  ↓

                                段

                                 ↓

                                塊(最小的邏輯單元)

----------------------------------------------------------------------------------------------------------------------

 

--管理員*****************************
--1.創建一個表空間
--表空間是oracle數據庫中最大的邏輯單元
--數據塊是oracle數據庫中的最小的存儲單元
drop tablespace ts   --刪除表空間及對應的文件
including contents and datafiles;

create tablespace ts
datafile 'ts'
size 200m;
--表空間OK-------------


--刪除用戶
drop user dotnetly;

--2.創建用戶來管理這個表空間
create user dotnetly
identified by liu123 --密碼不能以數字開頭
default tablespace ts;

--3.給用戶指定權限
select * from dba_roles;--所有角色
select * from dba_sys_privs;--所有角色的詳情
--看某個角色所擁有的權限
select * from role_sys_privs where role='RESOURCE'
select * from role_sys_privs where role='CONNECT'
-- 某個角色擁有的子角色
select * from role_role_privs where role='DBA'
select * from dba_users;--所有用戶

drop role mr;
--創建自定義的一些角色
create role mr;
--先給角色分配子角色
grant connect to mr;--把連接角色給hailang
grant resource to mr;--把資源操作角色給hailang
--再給這個角色指定一些權限
grant create sequence to mr;--創建序列的權限
grant create table to mr;--創建表的權限
--此時hailang所擁有的權限爲:connect、resource角色與create sequence和create table的權限的額綜合
--解除一些權限
revoke create table from mr;

--把建好的角色給新用戶
grant mr to dotnetly;
grant create table to dotnetly;
grant select any table to dotnetly;--查詢所有表的權限
grant resource to dotnetly;
--*****************************************


--4.讓新用戶用自己的用戶名與密碼做登錄
--*****ly的一系列操作********
--創建學生表
drop table sst;
create table sst
(
       stuId number primary key,
       stuName varchar2(20),
       sex varchar2(2),
       birthday date,
       remark long  --長文本類型
);
--插入數據
insert into sst values();
--解決沒有自增長的問題可以用序列
--序列:類似於sql server中的自增長
create sequence se_stuid
increment by 1
start with 1001
maxvalue 999999999
cycle;

--取序列中的值
--se_stuid.currval序列的當前值
--se_stuid.nextval序列的下一個值
select se_stuid.nextval from dual;--dual是一張虛表,將查詢的結果放到虛表中顯示
select se_stuid.currval from dual;

--to_number('123')--轉換爲數字
--to_date('1990-1-1')
--to_char(12)
insert into sst values(se_stuid.nextval,'小紅','女',to_date('1993-1-9','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小橙','男',to_date('1993-11-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小黃','女',to_date('1993-3-31','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小綠','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小藍','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小靛','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小紫','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小青','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小黑','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小白','女',to_date('1993-4-29','yyyy-mm-dd'),'無');
insert into sst values(se_stuid.nextval,'小灰','女',to_date('1993-4-29','yyyy-mm-dd'),'無');

select * from sst;
--oracle中沒有top關鍵字
select sst.* ,rownum,rowid from sst;
--5條數據一頁
--查詢第二頁的數據
select a.*,rownum from(select sst.*,rownum xh from sst) a
where a.xh between 6 and 10;


注意:resource角色具有unlimited tablespace的權限
1.當resource角色授予給一個角色時,unlimited tablespace是沒有授予給該角色的
2.當resource角色授予給一個用戶時,unlimited tablespace也授予給了該用戶。
3.當reource角色授予給一個角色role1,再將該角色role1授予給用戶user1時,用戶user1並不具有unlimited tablespace權限。

 

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