




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ORACLE,
第7章數據庫對象管理
本章主要介紹Oracle數據庫中表、索引、視圖和序列的管理方法
第7章數據庫對象管理ORACLe
年骨文
本章學習目標ORACLE,
?掌握表的創建、修改和刪除方法;
?掌握對表中數據的插入、更新和刪除的方法;
?掌握使用select語句進行數據查詢的方法;
?掌握視圖的概念及視圖的創建、修改和刪除方法;
?理解索引的概念,掌握如何創建、管理和刪除索引;
?掌握創建、修改、刪除和使用序列的方法;
ORACLW]
第7章數據庫對象管理
年骨文
本章主要內容ORACLE,
?7.1表管理
?7.2數據查詢
?7.3視圖管理
?7.4索引管理
?7.5序列管理
第7章數據庫對象管理ORACLe
年骨文
7.1表管理ORACLE,
?創建表
?修改表
?刪除表
-插入數據
?修改數據
?刪除數據
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
?表Users的結構
編號字段名稱數據結構說明
1UseridNUMBER用戶編號,主鍵
2UserNameVARCHAR240用戶名,非空
3UserTypeNUMBER1用戶類型(1表示管理用戶,2
表示普通用戶)
4UserPwdVARCHAR240密碼
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
管理頁面
OracleEnterprisel&nager(STS)-數據庫實例:orel-licrosofIInternetExplorer____jgj兇
文件⑥編輯?)查看9收藏?工具①幫助團I價1
J后退?,?兇£;",妹「收?夾口」??■也?—晨0
地址9)(立]http://oracleserver:1158/em/console/databaoe/instance/site?iap?even/=doLoaMt&rget=orcl&type=oracledatabase&p&geN,1^3轉到施接》
數據庫實例orcl
甌管理:蚯
“管理”選項卡上顯示的鏈接可使您管理數據庫對象和在Oracle數據庫內啟動數據庫操作?!熬S護”選項卡上顯示的鏈接提供可控制Oracle數據庫
之間或Oracle數據庫外部的數據濠的功能。
數據庫管理
存儲_____數據庫配置數據庫調度程序
控制文件
Sw-&
臨時表至間組所有初始化參數
數據文件-數據庫功能使用情況
志姐
歸檔日惠
統計信息管理更改數據庫資源管理器
自動工作集資料檔案庫移植到ASM監視器
曾應優訕箱屋端的I惠本地管理表空間使用者組
使后考組映行
兩
策略
策略庫
違反瓢
方案
點擊數據庫對象程序XML數據庫
這里訪問控制列表
函數XML萬案
0?Intern.t/
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
-表管理頁面
與
用
名
案
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
?選擇方案
點擊這里
確定選擇
搜索
方案
方案
列表
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
選擇表組織
第7章數據庫對象管理ORACLe
年骨文
ORACLE,
點擊
這里保存
輸入
列定義
第7章數據庫對象管理ORACLe
年骨文
數據類型ORACLE,
char用于描述定長的字符型數據,長度<=2000字節
varchar2用于描述變長的字符型數據,長度<=4000字節
nchar用來存儲Unicode字符集的定長字符型數據,長度<=1000字節
nvarchar2用來存儲Unicode字符集的變長字符型數據,長度<=1000字節
number用來存儲整型或者浮點型數值
date用來存儲日期數據
long用來存儲最大長度為2GB的變長字符數據
raw用來存儲非結構化數據的變長字符數據,長度<=2000字節
longraw用來存儲非結構化數據的變長字符數據,長度<=2GB
rowid用來存儲表中列的物理地址的二進制數據,占用固定的10個字節
blob用來存儲多達4GB的非結構化的二進制數據
clob用來存儲多達4GB的字符數據
nclob用來存儲多達4GB的Unicode字符數據
Bfile用來把非結構化的二進制數據存儲在數據庫以外的操作系統文件中
urowid用來存儲表示任何類型列地址的二進制數據
float用來存儲浮點數
ORACLe
第7章數據庫對象管理
年骨文
創建表ORACLE,
.?數據類型
-NUMBER可以用來表示所有的數值數據:
fieldnameNUMBER(precision,scale);
-VARCHAR2用來表示變長的字符串數據類型:
fieldnameVARCHAR2(max_length);
-CHAR保存固定長度字符串,最大長度為2KB。
-DATE保存固定長度的日期數據。
-BLOB保存二進制大對象,通常用來保存圖像和文檔等二
進制數據。
-CLOB保存字符型大對象。varchar2數據類型最多只能保存
4000個字符,如果要保存的字符串數據超過此范圍,應使
用dob數據類型。
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
CREATETABLE語句的基本使用方法如下所示:
Createtable[schema.]table_name
({columndatatype[default_expression][column_constraint]
[table_constraint]},..)
[tablespacetablespace_name]
【例】創建表Users,SQL語句如下:
CREATETABLEUsers
(UseridNumberPrimaryKey,
UserNameVarchar2(40)NOTNULL,
UserTypeNumber(1),
編號字段名稱數據結構
UserPwdVarchar2(40)
1UseridNUMBER
);2UserNameVARCHAR240
3UserTypeNUMBER1
4UserPwdVARCHAR240
第7章數據庫對象管理ORACLe
年骨文
創建表一數據完整性ORACLE,
數據完整性是關系數據庫模型的基本原則,是用戶在表上定義的一
系列規則或約束條件,以及在表之間定義的一系列相互關系。
數據完整性的作用:強制要求數據庫中只能接受正確的、合理的數
據,防止錯誤的或無效的數據被插入到表中。
7955ZHANGMANAGER78393000
7369SMITHCLERK790217-12月-8080020
7499ALLENSALESMAN76982。-2月-81160030030
7521WARDSALESMAN769822-2月-81125050030
ORACLW]
第7章數據庫對象管理
年骨文
創建表一數據完整性ORACLE,
數據完整性分為三類:
?實體完整性
?參照完整性
?用戶定義的完整性
實體完整性:
規則1:主鍵的各個屬性都不能為空值。
參照完整性:
規則2:外鍵或者取空值,或者等于被參照關系中的主鍵的某個值。
用戶定義的完整性:
規則3:屬性(或屬性組)的取值應當滿足用戶定義的約束條件。
第7章數據庫對象管理ORACLe
年骨文
創建表一數據完整性的定義ORACl
Oracle通過為表中的列定義各種約束來實現數據完整性。
約束條件
-NotNuU:防止NULL值進入到指定的列。
-Unique:保證在指定的各列中沒有重復的值。
-Check:檢查在約束中指定的條件是否得到了滿足。
—Primarykey:用來惟一地標識出表的每一行,并且防
止出現NULL值。一個表只能有一個主鍵約束。
-Foreignkey:通過使用公共列在表之間建立一種父子
關系。在表上定義的外鍵可以指向其他表的主鍵或者
惟一鍵。
?約束級別
-列級約束
-表級約束
第7章數據庫對象管理ORACLe
年骨文
如果要在自己的方案中創建表,要求用戶必須具有
CREATETABLE系統權限。如果要在其他方案中建表,
則要求用戶必須具有CREATEANYTABLE系統權限。
Createtable語法4口下:
Createtable[schema.]table_name
({columndatatype[default_expression]
[column_constraint]|[table_constraint]}?..)
[tablespacetablespace_name]
第7章數據庫對象管理ORACLe
年骨文
創建表ORACLE,
注意事項:
?如果不指定約束名Oracleserver自動按照
SYS_Cn的格式指定約束名
?在什么時候創建約束:
-建表的同時
一建表之后
?可以在表級或列級定義約束
?可以通過數據字典視圖查看約束
第7章數據庫對象管理ORACLe
年骨文
創建表一約束的定義格式ORACLE,
NOTNULL的定義格式:
CREATETABLEemployees(
employeeidNUMBER⑹,
lastnameVARCHAR2(25)NOTNULL,
salaryNUMBER(8,2),
commission_pctNUMBER(2,2),
hire_dateDATE
CONSTRAINTemp_hire_date_nn用戶命名
NOTNULL,
第7章數據庫對象管理ORACLe
年骨文
創建表一約束的定義格式ORACLE,
UNIQUE約束的定義格式:
CREATETABLEemployees(
employee_idNUMBER(6),
last_nameVARCHAR2(25)NOTNULL,
emailVARCHAR2(25),
salaryNUMBER(8,2),
commission_pctNUMBER(2,2)UNIQUE,
hiredateDATENOTNULL,
CONSTRAINTempemailukUNIQUE(email));
第7章數據庫對象管理ORACLe
年骨文
創建表一約束的定義格式ORACLE,
?主鍵的定義格式:
Createtablestudents(
Snovarchar2(10)primarykey,
Snamevarchar2(8)notnull,
Ssexvarchar2(2)notnullcheck(Ssex='F'orSsex='M)
Sagenumber,
Sdeptvarchar2(15)default'Computer');
ConstraintPK_Snoprimarykey(Sno)
第7章數據庫對象管理ORACLe
年骨文
創建表一約束的定義格式ORACl
外鍵的定義格式:
CREATETABLEemployees(
employee_idNUMBER(6),
last_name-VARCHAR2(25)NOTNULL,
-emai1VARCHAR2(25),
salaryNUMBER(8,2),
commission_pctNUMBER(2,2),
hire_dateDATENOTNULL,
???
department_idNUMBER(4),
CONSTRAINTemp_dept_fkFOREIGNKEY(department_id)
REFERENCESdepartments(department_id),
CONSTRAINTempemailukUNIQUE(email));
第7章數據庫對象管理ORACLe
年骨文
創建表一約束的定義格式ORACl
CHECK約束的定義格式:
Createtablestudents(
Snovarchar2(10)primarykey,
Snamevarchar2(8)notnull,
Ssexvarchar2(2)notnulllcheck(Ssex='F'orSsex^M'),
Sagenumber,
Sdeptvarchar2(15)default'Computer');
第7章數據庫對象管理ORACLe
年骨文
列名,說明,數據類型,:約束、
—Sno<學號,字符串,長度為10.主鍵,
Sname.姓名.字符串,長度為&非空值.Students
Ssex#性別.字符串,長度為2,非空值,取F或M2
Sage,年齡」整數,空直
SdepL所在系字符串,長度為15.默認為'Computer'
列名,說明。數據類型.約束說明.
-Cno-課程號,字符串,長度為6,主鍵,Courses
Cname-課程名」字符串,長度為20.非空值?
PreCno。先修課程號.字符串,長度為6允許為空值"
Credits-學分.整數,允許為空值.-
列名說明,數據類型,約束說明,
…吟
學號.字符串,長度為10外鍵,參照Students的主鍵.
—C*課程號,字符串,長度為6.外鍵,參照Courses的主鍵,Enrollment
Grade*>成績?整數,允許為空值,
主鍵為:(Sno,Cno)。
創建表—語句半例ORACLE,
在數據庫StuDB中定義一個表,表名為Students,表中
各列的要求見表。
列名,說明,數據類型:狗束
Sno<字號,字符串,長度為10.主鑲
Sname^姓名,字符串,長度為8」非空值.,
Ssex,性刖字符串,長度為2.非空值,取下或加。
Sage-年齡,整數.空值?
Sdept^所在系*字符串,長度為15.,默認為'Computer-
第7章數據庫對象管理ORACLe
年骨文
創建K—語句卷例ORACLE,
CreatetableStudents(
Snovarchar2(10)primarykey,
Snamevarchar2(8)notnull,
Ssexvarchar2(2)notnullcheck(Ssex=,F,or
',
Ssex=M)/
Sagenumber,
Sdeptvarchar2(15)default'Computer');
第7章數據庫對象管理ORACLe
年骨文
定義約束ORACLE,
以在CREATETABLE語句中定義約束,也可以在創一
建表之后使用ALTERTABLE命令添加約束、修改約
乘花刪除約束。
列級定義
列級定義是指在定義列的同時定義約束,適合在單個
歹j上定義約策。
Column[CONSTRAINTconstraint_name]constraint_type
[condition]
表級定義
表級定義是指定義了所有列后再定義的約束,適合在
多個列上定義約束。
[CONSTRAINTconstraint_name]constraint_type
([coll?col2/??]|[condition])
第7章數據庫對象管理ORACLe
年骨文
至ORACLE,
X
Createtablestudentsf列級約束
Snovarchar2(10)primarykey,
Snamevarchar2(8)ndtnull,""
Ssexvarchar2(2)nullcheck(SsexrFor
',
Ssex=M)/
Sagenumber,
Sdeptvarchar2(15)default'Computer');
第7章數據庫對象管理ORACLe
年骨文
ORACLE,
Createtablestudents(
Snovarchar2(10),
Snamevarchar2(8)notnull,
Ssexvarchar2(2)notnull,
Sagenumber,
Sdeptvarchar2(15)default'Computer',
constraintPK_SNOprimarykey(Sno),
constraintCHK_SSEXcheck(Ssexin('F'JM'))
\)----表------級------約------束
第7章數據庫對象管理ORACLe
年骨文
列名,說明,數據類型,:約束、
—Sno<學號,字符串,長度為10.主鍵,
Sname.姓名.字符串,長度為&非空值.Students
Ssex#性別.字符串,長度為2,非空值,取F或M2
Sage,年齡」整數,空直
SdepL所在系字符串,長度為15.默認為'Computer'
列名,說明。數據類型.約束說明.
-Cno-課程號,字符串,長度為6,主鍵,Courses
Cname-課程名」字符串,長度為20.非空值?
PreCno。先修課程號.字符串,長度為6允許為空值"
Credits-學分.整數,允許為空值.-
列名說明,數據類型,約束說明,
…吟
學號.字符串,長度為10外鍵,參照Students的主鍵.
—C*課程號,字符串,長度為6.外鍵,參照Courses的主鍵,Enrollment
Grade*>成績?整數,允許為空值,
主鍵為:(Sno,Cno)。
練習ORACLE,
【練習】請寫出創建表Courses和Enrollment的SQL命令。
CREATETABLECOURSES(
CnoVARCHAR2(6)PRIMARYKEY,
CnameVARCHAR2(20)NOTNULL,
PreCnoVARCHAR2(6),
CreditsNUMBER
);
CREATETABLEENROLLMENT(
SnoVARCHAR2(10),
CnoVARCHAR2(6),
GradeNUMBER,
CONSTRAINTPK_SCNOPRIMARYKEY(SNO,CNO),
CONSTRAINTFK_SNOFOREIGNKEY(SNO)REFERENCESSTUDENTS(SNO),
CONSTRAINTFK_CNOFOREIGNKEY(CNO)REFERENCESCOURSES(CNO)
);
第7章數據庫對象管理ORACLe
年骨文
NOTNULL約束ORACLE,
保證列值不能為空:
|JOBJD
EMPLOYEE』)|LAST』AMEEMAILPHONE一NUMBERHIRE_DATESALARYDEPARTMENT」。|
100King|SKING515.123.456717-JUN-87ADORES24000_90
515.123,4568|
101Kochhar|NKOCHHAR21-SEP-89AD_VP1/00090
_______10_21_De_H_aan__]LDEHAAN515:123,456913-JAN-93AD_VP1700090
103|Humid1AHUNOLD590.423.456703-JAN-90吁ROG900060
FT_PROG_]
1■■104ErnstBERNST590.423.456821.MAY-916000________60_
NOTNULL約束NOTNULL
約束
ORACLe
第7章數據庫對象管理
年骨文
ORACLE,
只能定義在列級:
CREATETABLEemployees(
employeeidNUMBER⑹,
lastnameVARCHAR2(25)NOTNULL,
salaryNUMBER(8,2),
commission_pctNUMBER(2,2),
hire_dateDATE
CONSTRAINTemp_hire_date_nn用戶命名
NOTNULL,
第7章數據庫對象管理ORACLe
年骨文
UNIQUE約束ORACLE,
UNIQUE約束
EMPLOYEES
EMPLOYEEJDLAST_NAMEEMAIL
100KingSKING
101KochharNKOCHHAR
102DeHaanLDEHAAN
103HunoldAHUNOLD
104ErnstBERNST
INSERTINTO
208SmithJSMITH允許
209SmithJSMITH,允許:已經存
第7章數據庫對象管理ORACLe
年骨文
ORACLE,
可以定義在表級或列級:
CREATETABLEemployees(
employee_idNUMBER(6),
last_nameVARCHAR2(25)NOTNULL,
emailVARCHAR2(25),
salaryNUMBER(8,2),
commission__pctNUMBER(2,2),
hiredateDATENOTNULL,
CONSTRAINTempemailukUNIQUE(email));
第7章數據庫對象管理ORACLe
年骨文
PRIMARYKEY約束ORACLE,
DEPARTMENTS
PRIMARYKEY
DEPARTMENTJDDEPARTMENT_NAMEMANAGER」。LOCATIONID
1I
10Administration2001700!
20Marketing2011800
50Shipping1241500
60IT1031400
80Sales1492500
不允許INSERTINTO
(空值)
PublicAccounting1400
50Finance1241500
第7章數據庫對象管理ORACLe
年骨文
FOREIGNKEY約束ORACLE,
DEPARTMENTS
DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_IDLOCATIONJD
10Administration2001700
20Marketing2011800
50Shipping1241500
PRIMARY60n-1031400
KEY80Sales1492500
■■■
EMPLOYEES
EMPLOYEEJDLAST_NAMEDEPARTMENTJDFOREIGN
100King90KEY
101Kochhar90
102DeHaan90
103Hunold60
104Ernst60
107Lorentz60
■■■
INSERTINTO不允許(9不存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論