Ⅰ 數(shù)據(jù)庫
?、賹哟涡蛿?shù)據(jù)庫
②網(wǎng)狀型數(shù)據(jù)庫
?、坳P(guān)系型數(shù)據(jù)庫(主要介紹)
E-R圖:屬性(橢圓形),實體(矩形),聯(lián)系(菱形-一對一、一對多、多對多)
注:有的聯(lián)系也有屬性
關(guān)系型數(shù)據(jù)庫的設(shè)計范式:
Oracle數(shù)據(jù)庫:
三大概念:實例、數(shù)據(jù)庫、數(shù)據(jù)庫服務(wù)器
實例:指一組Oracle后臺進程以及在服務(wù)器中分配的共享內(nèi)存區(qū)域;
數(shù)據(jù)庫:由基于磁盤的數(shù)據(jù)文件、控制文件、日志文件、參數(shù)文件和歸檔日志文件等組成的物理文件集合;
數(shù)據(jù)庫服務(wù)器:指管理數(shù)據(jù)庫的各種軟件工具(比如,sqlplus、OEM等)和實例及數(shù)據(jù)庫三個部分。
實例與數(shù)據(jù)庫兩者聯(lián)系:實例用于管理和控制數(shù)據(jù)庫,而數(shù)據(jù)庫為實例提供數(shù)據(jù);一個數(shù)據(jù)庫可以被多個實例裝載和打開,而一個實例在其生存期內(nèi)只能裝載和打開一個數(shù)據(jù)庫。
Oracle數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)
? ? ?
?
Ⅱ 表空間管理
一)創(chuàng)建表空間
語法:
create [smallfile小文件 | bigfile大文件表空間] tablespace 表空間名 datafile 存放路徑 size ***k/m reuse -【options】-如下
本地化管理方式:extent management local [autoallocal自棟擴展 |uniform size **k/m 等同大小進行] 自動擴展:autoextent [on | off] next **k/m ##若自動,則設(shè)置next的值 在線/離線:online | offline 永久/臨時表空間:permanent | temporary 是否產(chǎn)生日志:logging | nologging ##默認產(chǎn)生
//代碼示例//
--查詢表空間
select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name;
--創(chuàng)建表空間 create tablespace tbs_test1 datafile 'D:\oracle_service\oracle_tablespace\tbs_test1.DBF' size 10m reuse extent management local autoallocate; select * from v$datafile;
--重命名 alter tablespace tbs_test rename to tbs_test1;
--查詢數(shù)據(jù)文件 select tablespace_name,file_name,bytes,autoextensible from DBA_DATA_FILES;
--添加數(shù)據(jù)文件 alter tablespace tbs_test1 add datafile 'D:\oracle_service\oracle_tablespace\tbs_test2.DBF' size 10M reuse autoextend on next 2m maxsize unlimited;
--刪除數(shù)據(jù)文件 alter tablespace tbs_test1 drop datafile 'D:\oracle_service\oracle_tablespace\tbs_test2.DBF';
--修改數(shù)據(jù)文件為自動擴展 alter database datafile 'D:\oracle_service\oracle_tablespace\tbs_test1.DBF' autoextend on next 2m maxsize unlimited;
二)撤銷表空間
create undo tablespace avatar_undo datafile .. alter system set undo_tablespace=avatar_undo
作用:使讀寫一致、可回退事務(wù)、事務(wù)恢復(fù)、閃回操作
參數(shù):
undo_tablespace
undo_management
undo_retention
三)臨時表空間:(磁盤空間)
create temporary tablespace tablespace_name datafile ..
Ⅲ Oracle用戶管理
一)【用戶】
查詢用戶
select * from dba_users; select * from all_users; select * from user_users;
創(chuàng)建一個用戶peppa,密碼peppa,默認表空間
create user peppa identified by peppa;
創(chuàng)建用戶yclhj,密碼yclhj,表空間為users表空間
create user yclhj identified by yclhj default tablespace users;
查詢系統(tǒng)權(quán)限和對象權(quán)限【權(quán)限】
select * from system_privilege_map; select * from table_privilege_map;
查看角色【角色】
select * from dba_roles;
直接給peppa用戶授予登錄權(quán)限create session
grant create session,alter session to peppa with admin option;
通過角色來添加用戶權(quán)限
grant connect,resource to peppa; grant connect,resource to yclhj;
二)【用戶與角色】
用戶擁有的角色
select * from dba_role_privs; select * from user_role_privs; select * from role_role_privs;
三)【用戶與權(quán)限】
用戶擁有的系統(tǒng)權(quán)限:
select * from dba_sys_privs; select * from user_sys_privs;
用戶擁有的對象權(quán)限:
select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; select * from dba_col_privs; select * from all_col_privs; select * from user_col_privs;
Ⅳ SQL語句
1)DML語句(數(shù)據(jù)操作語言)
Insert / Update / Delete/merge
2)DDL語句(數(shù)據(jù)定義語言)
Create / Alter / Drop / Truncate(刪除數(shù)據(jù)立即生效)
3)DCL語句(數(shù)據(jù)控制語言)
Grant(賦于權(quán)限 ) / Revoke(回收權(quán)限 )
4)事務(wù)控制語句
Commit / Rollback / Savepoint
5)查詢語句
簡單查詢 / 條件查詢 / 連接查詢
6)約束
NOT NULL 約束:確保某列不能有 NULL 值。
DEFAULT 約束:當某列沒有指定值時,為該列提供默認值。
UNIQUE 約束:確保某列中的所有值是不同的。
PRIMARY Key 約束:唯一標識數(shù)據(jù)庫表中的各行/記錄。
CHECK 約束:CHECK 約束確保某列中的所有值滿足一定條件。
7)單行函數(shù)
使用語法:
函數(shù)名稱(操作的列 | 具體的數(shù)值 [,若干參數(shù)])
1.字符串函數(shù)
大小寫轉(zhuǎn)換:UPPER()、LOWER()
首字母大寫:INITCAP()
替換:REPLACE()
長度:LENGTH()、
截取:①SUBSTR(str,index) ②SUBSTR(str,begin,size)
連接:CONTACT()
2.數(shù)值函數(shù)
round()函數(shù): 表示的是四舍五入,而且是帶小數(shù)點的 trunc()函數(shù): 直接截取,不再進行四舍五入了('+'是指小數(shù)點后,'-'是指小數(shù)點前,表示一個方向) mod()取余
3.轉(zhuǎn)換函數(shù)
TO_CHAR() #轉(zhuǎn)換為字符串
TO_DATE() #轉(zhuǎn)換為日期形式
TO_NUMBER() #轉(zhuǎn)換為數(shù)字型
4.日期函數(shù)
當前系統(tǒng)時間:【sysdate】
SELECT SYSDATE FROM dual;
三大計算公式:
日期 – 數(shù)字 = 日期;
日期 + 數(shù)字 = 日期;
日期 – 日期 = 數(shù)字(天數(shù))
MONTHS_BETWEEN(日期1,日期2):求出兩個日期之間的月數(shù);
ADD_MONTHS():求出幾個月之后的日期;
NEXT_DAY():求出下一個的今天;
LAST_DAY():求出給定日期的最后一天。
5.聚合函數(shù)
COUNT():統(tǒng)計數(shù)據(jù)量; SUM():求和; AVG():求平均; MAX():最大值; MIN():最小值;?
6.通用函數(shù)
?、賜vl(): 如果第一個參數(shù)為空,就取第二個參數(shù)的值,如果不為空就去第一個參數(shù)的值 ?、赿ecode() : 多條件判斷
語法:
DECODE(列 | 值,判斷條件1,輸出結(jié)果1,判斷條件2,輸出結(jié)果2,.....)
8)子查詢
SQL執(zhí)行的順序
1.FROM先確定從哪個表中獲取數(shù)據(jù)
2.WHERE對條件加以限定
3.GROUP BY ...HAVING
4.聚合函數(shù)
5.SELECT字段篩選
6.ORDERBY
語法:
SELECT 查詢的字段,( SELECT 查詢的字段 FROM 表名稱1 別名,表名稱2 別名,.... [WHERE 條件(s)] [GROUP BY 分組字段] [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ; ) FROM 表名稱1 別名,表名稱2 別名,.... ( SELECT 查詢的字段 FROM 表名稱1 別名,表名稱2 別名,.... [WHERE 條件(s)] [GROUP BY 分組字段] [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ; ) [WHERE 條件(s) ( SELECT 查詢的字段 FROM 表名稱1 別名,表名稱2 別名,.... [WHERE 條件(s)] [GROUP BY 分組字段] [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ; )] [GROUP BY 分組字段] [ORDER BY 排序字段 ASC | DESC,排序字段 ASC | DESC] ;
9)分頁查詢
rowid:代表該條記錄的物理地址
rownum :為生成的數(shù)據(jù)的編號,使用分頁需要使用到rownum
select * from emp order by sal; select rowid,rownum,emp.* from emp;
示例:
--每頁顯示3條記錄,查詢第一頁 select * from emp where rownum<=3; --查詢第二頁記錄 select * from emp where rownum>3 and rownum <=6; --rownum>*不存在,條件滿足不了 --解決問題:使用子查詢先生成rownum,然后再基于生成的rownum進行分頁 select empno,ename,sal,comm,job from (select rownum a,empno,ename,sal,comm,job from emp)r where r.a>3 and r.a<=6; --按照sal排序 --正確順序:先排序,再生成rownum select rownum,empno,ename,sal,comm,job from (select empno,ename,sal,comm,job from emp order by sal); --完整語句 select empno,ename,job,sal,comm
from (select rownum r,empno,ename,job,sal,comm
from (select empno,ename,job,sal,comm from emp order by sal)) where r>3 and r<=6;
?
?
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-710703.html文章來源:http://www.zghlxwxcb.cn/news/detail-710703.html
?
到了這里,關(guān)于Oracle數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!