①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權限。