Oracle體系結構

oracle體系結構

alter system set "_allow_level_without_connect_by" = true; 回車
輸入命令:commit; 回車(這個必定不能忘記)」
 

Oracle數據庫

oracle數據庫的每一個表空間包括一個或多個數據文件,oracle數據庫中的全部數據信息都存儲在數據文件中,一個數據文件中能夠存放多個數據庫對象,一個數據庫對象也能夠分佈在一個表空間中的多個數據文件中,但一個數據文件只能從屬於一個表空間。
數據文件:.dbf
控制文件:.ctl
參數文件:.ora
歸檔文件:.arc
建立表空間:
create tablespace soa datafile 'D:/oracle/oradata/soadata01.dbf' size 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
oracle安裝成功後,自動創建多個表空間
1)SYSTEM表空間 用於存放oracle系統內部表和數據字典的數據,如表名、列名、用戶名,不建議用戶本身創建的表放在這裏,system表空間對應的數據文件爲:system01.dbf system02.dbf
2)SYSAUX表空間,存放oracle系統內部經常使用樣例用戶的對象,通常也不存儲用戶的數據,有系統自動維護,sysaux01.dbf
3)UNDO表空間 用於存儲撤銷信息的表空間,undotbs.dbf
4)USERS表空間是oracle建議用戶使用的表空間,users01.dbf
5)TEMPORARY表空間 臨時表空間主要用於供用戶臨時使用,用它處理複雜的sql
 
查詢表空間: select * from dba_data_files
查詢表空間的空閒信息: select * from dba_free_space
表空間有在線(online)和離線(offline)兩種狀態,將表空間設置成離線狀態,則全部對該表空間內對象的修改將沒法同步到數據文件中。 sql>alter tablespace *** offlin
如下sql語句分別查詢表空間、段、區的分配信息
select * from dba_tablespaces;
select * table_name,tablespace_name,min_extents,max_extends from user_tables where table_space="sysaux"
select * from from user_extends;
oracle數據庫在邏輯上是由多個表空間組成的
表空間中存儲的對象叫段,好比數據段,索引段和回退段(segment)
段由區組成,區是磁盤分配的最小單位,段的增大是經過區的個數來實現的(extends)
每一個區的大小是數據塊大小的證書倍,區的大小能夠不相同(block)
塊是數據庫中最小的I/O單位,塊的大小由參數db_block_size設置,其值應設置爲操做系統塊大小的整數倍!
 

使用oracle數據庫,主要使用一下四個用戶

超級管理員:sys 密碼:manager/change_on_install/Password1
普通管理員:system 密碼:manager/Password1
普通用戶: scott 密碼:tiger/Password1
大數據用戶: sh 密碼:sh
 
用超級管理員登錄:Enter user-name:sys as SYSDBA
Enter password:******
sqlplus裏面重定向到不一樣的數據庫:SQL> conn scott
Enter password: *****
登錄不一樣的數據庫: conn sys/Password1@EKP as sysdba; 用管理員登錄
 
conn scott/Password1@EKP;用普通用戶登錄
設置默認登錄的數據庫:在環境變量裏面設置:oracle_sid = 默認數據庫名稱
查看當前登錄的數據庫名稱:select * from global_name;
查看當前數據庫的鏈接用戶:show user
查看當前全部的數據庫:select name from v$database;
查看當前用戶擁有的全部表:select * from tab;
查看某張表結構:desc dept;
oracle語句中用||來鏈接連個字符串
select '部門編號:'||deptno 部門編號 from dept;
查詢全部的用戶名:
sql>select username from dba_users;
 
cmd dos環境中登錄sqlplus:
>sqlplus / as sysdba
 
或者
>sqlplus /@192.168.0.30/orcl as sysdba
 
查看當前數據庫的實例名:
 方法一:select instance_name from v$instance;
方法二:show parameter instance
 
 
 

oracle函數

1.日期函數:
select sysdate from dept 查詢當前日期 2013/9/20 10:50:25
select sysdate+2 from dept 當前日期後兩天 2013/9/22 10:50:43 兩個日期相減,爲相隔的天數
2.轉換函數:
TO_CHAR(字符串|列,格式字符串) 將日期或者數字轉換爲字符串顯示
select TO_CHAR(32234324,'L999,999,999,999') from dept 貨幣的格式化顯示
TO_DATA(字符串,格式字符串) 將字符串變爲DATA顯示
TO_NUMBER(字符串) 字符串變爲數字
3.通用函數:
NVL(列,0) 將null轉換爲0顯示
DECODE:多數值判斷函數,至關於if……else……
例若有一個 字段fd_period 若是值爲Mon01 顯示1 值爲Mon02 顯示2……
decode(fd_period,'Mon01','1','Mon02','2')
4. 向左填充函數
LPAD(String a,int length,String addString)把addString添加到a的左邊,length 是返回值的長度。
例如: select lpad('test',8,0) from dual; LPAD('TEST',8,0) 0000test
能夠解決月份不足兩位,補0的狀況 select lpad("5",2,0) from dual
5. replace('自己的字符串','將要被替換的字符串','替換成的字符串')
6. concat('abc','def') 鏈接字符串 abcdef
7. 截取字符竄函數
substr()
4. oracle語法
--建立表
create table member(
name varchar2(50) default '皇兄',--字符串類型
age number(3), --number(n) 整數 number(n,m)有m位小數的數字n
birthday date default sysdate, --date類型
content clob --大數據類型(4G)
)
--插入數據
insert into member(name,age,birthday,content) values('衛熙',26,TO_DATE('1986-11-21','yyyy-mm-dd'),'一個好人');
insert into member(name,age,birthday,content) values('皇甫建業',26,TO_DATE('1986-11-21','yyyy-mm-dd'),'皇兄');
insert into member(name,age,birthday,content) values('張晶',26,TO_DATE('1989-04-15','yyyy-mm-dd'),'女性');
commit--最後要用commit進行提交,纔回真正同步到數據庫,也能夠用rollback進行回滾操做
--oracle複製表的語法
create table myemp as select * from emp
--修改表字段長度
alter table customer_infor modify PK_CUSTDOC varchar(200)
--當用sql/plus操做時,
能夠用 SQL>rollback (進行回滾),SQL>commit (進行提交操做)
oracle的閃回技術(至關於回收站的功能):oracle10g以後纔會有
--查看回收站內容
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
MEMBER BIN$//NGtj5mQ5+1Y89C8f9dLg==$0 TABLE 2013-09-21:10:53:20
MYEMP BIN$uzzTlHnEQHOE4l3PPl/OAA==$0 TABLE 2013-09-21:10:43:35
--恢復回收站中的表
SQL> FLASHBACK TABLE MYEMP TO BEFORE DROP;
Flashback complete.
--刪除回收站中的表
SQL> PURGE TABLE MYEMP;
Table purged.
--清空回收站
SQL> PURGE RECYCLEBIN;
Recyclebin purged.
--刪除表可是不進入回收站
SQL> DROP TABLE MYEMP PURGE
 
--建立用戶並受權 create user root identified by password;
--修改密碼 alter user dog identified by password1;
--使密碼失效 alter user dog password expire; 這樣就會在登錄時讓從新鍵入密碼
--鎖定用戶和解鎖 alter user dog account lock/unlock;
--受權 grant connect,dba,resource to root;
 

oracle新建表空間

Oracle安裝完後,其中有一個缺省的數據庫,除了這個缺省的數據庫外,咱們還能夠建立本身的數據庫。
對於初學者來講,爲了不麻煩,能夠用'Database Configuration Assistant'嚮導來建立數據庫。
建立完數據庫後,並不能當即在數據庫中建表,必須先建立該數據庫的用戶,而且爲該用戶指定表空間。
 
下面是建立數據庫用戶的具體過程:
1.假如如今已經建好名爲'news'的數據庫,此時在F:\oracle\product\10.1.0\oradata\目錄下已經存在news目錄(注意:個人Oracle10g安裝在F:\oracle下,若你的Oracle安裝在別的目錄,那麼你新建的數據庫目錄就在*\product\10.1.0\oradata\目錄下)。
2.在建立用戶以前,先要建立表空間:
其格式爲:格式: create tablespace 表間名 datafile '數據文件名' size 表空間大小;
如:
SQL> create tablespace news_tablespace datafile 'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M autoextend on next 100M;
我本地數據庫建表空間
SQL> create tablespace jtdetail datafile'D:\app\michael\oradata\ORCL\jtdetail.db
f' size 500M autoextend on next 50M;
 
其中'news_tablespace'是你自定義的表空間名稱,能夠任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是數據文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定該數據文件的大小,也就是表空間的大小。
3.如今建好了名爲'news_tablespace'的表空間,下面就能夠建立用戶了:
其格式爲:格式: create user 用戶名 identified by 密碼 default tablespace 表空間表;
如:
 
SQL> create user news identified by news default tablespace news_tablespace;
默認表空間'default tablespace'使用上面建立的表空間。
4.接着受權給新建的用戶:
SQL> grant connect,resource,dba to news; --表示把 connect,resource權限授予news用戶
SQL> grant dba to news; --表示把 dba權限授予給news用戶
受權成功。
回收用戶權限:
SQL> revoke connect,resource from root;
Revoke succeeded.
SQL> revoke dba from root;
Revoke succeeded.
刪除用戶
SQL> conn sys/manager as sysdba;
Connected.
SQL> drop user root cascade;
User dropped.
級聯刪除表
drop table scott.table_name cascade constraints
相關文章
相關標籤/搜索