第07章 數據庫對象管理VIP_第1頁
第07章 數據庫對象管理VIP_第2頁
第07章 數據庫對象管理VIP_第3頁
第07章 數據庫對象管理VIP_第4頁
第07章 數據庫對象管理VIP_第5頁
已閱讀5頁,還剩159頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

提交評論