




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)的邏輯結(jié)構(gòu),Owner:龐家進(jìn),Oracle邏輯結(jié)構(gòu)(用戶(hù)層),Oracle 視圖(View),1,Oracle 表(Table),2,Oracle 索引(Index),3,Oracle 序數(shù)(Sequence),4,Oracle 視圖(View),查看視圖信息 使用數(shù)據(jù)字典視圖 dba_viewsDBA視圖描述數(shù)據(jù)庫(kù)中的所有視圖 all_viewsALL視圖描述用戶(hù)“可訪(fǎng)問(wèn)的”視圖 user_viewsUSER視圖描述“用戶(hù)擁有的”視圖 dba_tab_columnsDBA視圖描述數(shù)據(jù)庫(kù)中的所有視圖的列(或表的列) all_tab_columnsALL視圖描述用戶(hù)“
2、可訪(fǎng)問(wèn)的”視圖的列(或表的列) user_tab_columnsUSER視圖描述“用戶(hù)擁有的”視圖的列(或表的列) dba_updatable_columns顯示數(shù)據(jù)庫(kù)所有視圖中的所有列的可更新?tīng)顟B(tài) all_updatable_columns顯示用戶(hù)可訪(fǎng)問(wèn)的視圖中的所有列的可更新?tīng)顟B(tài) user_updatable_columns顯示用戶(hù)擁有的視圖中的所有列的可更新?tīng)顟B(tài),Oracle 視圖(View),創(chuàng)建視圖完整語(yǔ)法: create or replace force view schema. view_name (column1,column2,.) as select . with chec
3、k option constraint constraint_name with read only ; 例子: create view vw_emp_check as select empno, ename, job, hiredate, deptno from emp where deptno =10 with check option constraint vw_emp_chk ; -創(chuàng)建檢查視圖:對(duì)通過(guò)視圖進(jìn)行的增刪改操作進(jìn)行檢查, 要求增刪改操作的數(shù)據(jù)必須是select查詢(xún)所能查詢(xún)到的數(shù)據(jù)。,Oracle 視圖(View),or replace: 如果存在同名的視圖, 則使用新視圖替
4、代已有的視圖 force: 強(qiáng)制創(chuàng)建視圖,不考慮基表是否存在,也不考慮是否具有使用基表的權(quán)限 column1,column2,.:視圖的列名, 列名的個(gè)數(shù)必須與select查詢(xún)中列的個(gè)數(shù)相同; 如果select查詢(xún)包含函數(shù)或表達(dá)式, 則必須為其定義列名. 此時(shí), 既可以用column1, column2指定列名, 也可以在select查詢(xún)中指定列名. with check option: 指定對(duì)視圖執(zhí)行的DML操作必須滿(mǎn)足“視圖子查詢(xún)”的條件即,對(duì)通過(guò)視圖進(jìn)行的增刪改操作進(jìn)行檢查,要求增刪改操作的數(shù)據(jù), 必須是select查詢(xún)所能查詢(xún)到的數(shù)據(jù), 否則不允許操作并返回錯(cuò)誤提示. 默認(rèn)情況下, 在
5、增刪改之前并不會(huì)檢查這些行是否能被select查詢(xún)檢索到. constraint constraint_name 定義約束的名字 with read only:創(chuàng)建的視圖只能用于查詢(xún)數(shù)據(jù), 而不能用于更改數(shù)據(jù). 與with check option 是排斥的,Oracle 視圖(View),1.3 刪除視圖 可以刪除當(dāng)前模式中的任何視圖; 如果要?jiǎng)h除其他模式中的視圖,必須擁有DROP ANY VIEW系統(tǒng)權(quán)限; 視圖被刪除后,該視圖的定義會(huì)從詞典中被刪除,并且在該視圖上授予的“權(quán)限”也將被刪除。 視圖被刪除后,其他引用該視圖的視圖及存儲(chǔ)過(guò)程等都會(huì)失效。 示例1:drop view vw_tes
6、t_tab;,Oracle 視圖(View),視圖的重新編譯 語(yǔ)法:alter view 視圖名 compile; 作用:當(dāng)視圖依賴(lài)的基表改變后,視圖會(huì)“失效”。為了確保這種改變“不影響”視圖和依 賴(lài)于該視圖的 其他對(duì)象,應(yīng)該使用 alter view 語(yǔ)句“明確的重新編譯”該視圖,從而在運(yùn)行視圖前發(fā)現(xiàn)重新編譯的錯(cuò)誤。視圖被重新編譯后,若發(fā)現(xiàn)錯(cuò)誤,則依賴(lài)該視圖的對(duì)象也會(huì)失效;若沒(méi)有錯(cuò)誤,視圖會(huì)變?yōu)椤坝行А薄?權(quán)限:為了重新編譯其他模式中的視圖,必須擁有alter any table系統(tǒng)權(quán)限。 注意:當(dāng)訪(fǎng)問(wèn)基表改變后的視圖時(shí),oracle會(huì)“自動(dòng)重新編譯”這些視圖。 例子: alter tabl
7、e test_tab modify (c2 varchar2(30);修改c2列的長(zhǎng)度 select last_ddl_time,object_name,status from user_objects where object_name=V_TEST_TAB;視圖的狀態(tài):失效,Oracle 視圖(View),在視圖上執(zhí)行DML操作的步驟和原理 第一步:將針對(duì)視圖的SQL語(yǔ)句與視圖的定義語(yǔ)句(保存在數(shù)據(jù)字典中)“合并”成一條SQL語(yǔ)句 第二步:在內(nèi)存結(jié)構(gòu)的共享SQL區(qū)中“解析”(并優(yōu)化)合并后的SQL語(yǔ)句 第三步:“執(zhí)行”SQL語(yǔ)句 示例:create view v_emp as select
8、 empno,ename,loc from employees emp,departments dept where emp.deptno=dept.deptno and dept.deptno=10; 當(dāng)用戶(hù)執(zhí)行如下查詢(xún)語(yǔ)句時(shí): select ename from v_emp where empno=9876; oracle將把這條SQL語(yǔ)句與視圖定義語(yǔ)句“合并”成如下查詢(xún)語(yǔ)句: select ename from employees emp,departments dept where emp.deptno=dept.deptno and dept.deptno=10 and empno=
9、9876; 然后,解析(并優(yōu)化)合并后的查詢(xún)語(yǔ)句,并執(zhí)行查詢(xún)語(yǔ)句,Oracle 視圖(View),如果創(chuàng)建連接視圖的select查詢(xún)“不包含”如下結(jié)構(gòu), 并且遵守連接視圖的“更新準(zhǔn)則”,則這樣的連接視圖是“可更新”的: 之一:集合運(yùn)算符(union,intersect,minus) 之二:DISTINCT關(guān)鍵字 之三:GROUP BY,ORDER BY,CONNECT BY或START WITH子句 之四:子查詢(xún) 之五:分組函數(shù) 之六:需要更新的列不是由“列表達(dá)式”定義的 之七:基表中所有NOT NULL列均屬于該視圖,Oracle 視圖(View),連接視圖的更新準(zhǔn)則 insert準(zhǔn)則: 在
10、insert語(yǔ)句中不能使用“非鍵值保存表”中的列(包括“連接列”); 執(zhí)行insert操作的視圖,至少應(yīng)該“包含”鍵值保存表中所有設(shè)置了約束的列 如果在定義連接視圖時(shí)使用了WITH CHECK OPTION 選項(xiàng), 則“不能”針對(duì)連接視圖執(zhí)行insert操作 update準(zhǔn)則 鍵值保存表中的列是可以更新的; 如果在定義連接視圖時(shí)使用了WITH CHECK OPTION 選項(xiàng), 則連接視圖中的連接列(一般就是“共有列”)和基表中的“其他共有列”是“ 不可”更新的, 連接列和共有列之外的其他列是“可以”更新的 delete準(zhǔn)則 如果在定義連接視圖時(shí)使用了WITH CHECK OPTION 選項(xiàng),
11、依然“可以”針對(duì)連接視圖執(zhí)行delete操作 如果連接視圖中的一個(gè)“基表的鍵”(主鍵、唯一鍵)在它的視圖中仍然存在, 并且“基表的鍵”仍然是“連接視圖中的鍵”(主鍵、唯一鍵); 即,某列在基表中是主鍵|唯一鍵,在視圖中仍然是主鍵|唯一鍵 則稱(chēng)這個(gè)基表為“鍵值保存表”。,Oracle 表(Table),數(shù)字字典(user_objects) dba_tables User_tables all_tables dba_tab_columns user_tab_columns all_tab_columns,Oracle 表(Table),數(shù)據(jù)表的介紹 數(shù)據(jù)表是數(shù)據(jù)庫(kù)中一個(gè)非常重要的對(duì)象,是其他對(duì)象的
12、基礎(chǔ)。沒(méi)有數(shù)據(jù)表,關(guān)鍵字、主鍵、索引等也就無(wú)從談起。在數(shù)據(jù)庫(kù)畫(huà)板中可以顯示數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)表,創(chuàng)建數(shù)據(jù)表,修改表的定義等數(shù)據(jù)表是數(shù)據(jù)庫(kù)中一個(gè)非常重要的對(duì)象,是其他對(duì)象的基礎(chǔ)。 數(shù)據(jù)表(或稱(chēng)表)是數(shù)據(jù)庫(kù)最重要的組成部分之一。數(shù)據(jù)庫(kù)只是一個(gè)框架,數(shù)據(jù)表才是其實(shí)質(zhì)內(nèi)容。根據(jù)信息的分類(lèi)情況,一個(gè)數(shù)據(jù)庫(kù)中可能包含若干個(gè)數(shù)據(jù)表。 數(shù)據(jù)表是用行(字段)和列(屬性)構(gòu)成的一張二維表。,Oracle 表(Table),一般方式創(chuàng)建表 表名最大長(zhǎng)度為30個(gè)字符。在同一個(gè)用戶(hù)下(同一個(gè)數(shù)據(jù)庫(kù)),表不能重名,但不同用戶(hù)表的名稱(chēng)可以相重。另外,表的名稱(chēng)不能使用Oracle的保留字。在一張表中最多可以包含2000列。
13、語(yǔ)法: CREATE TABLE 表名( 列名 數(shù)據(jù)類(lèi)型 DEFAULT 表達(dá)式 COLUMN CONSTRAINT, TABLE CONSTRAINT, TABLE_PARTITION_CLAUSE ); DEFAULT 表達(dá)式:用來(lái)定義列的默認(rèn)值。 COLUMN CONSTRAINT:用來(lái)定義列級(jí)的約束條件。 TABLE CONSTRAINT:用來(lái)定義表級(jí)的約束條件。 TABLE_PARTITION_CLAUSE:定義表的分區(qū)子句。,Oracle 表(Table),通過(guò)子查詢(xún)創(chuàng)建表 如果要?jiǎng)?chuàng)建一個(gè)同已有的表結(jié)構(gòu)相同或部分相同的表 語(yǔ)法: CREATE TABLE 表名(列名) AS SQL
14、查詢(xún)語(yǔ)句; 該語(yǔ)法既可以復(fù)制表的結(jié)構(gòu),也可以復(fù)制表的內(nèi)容,并可以為新表命名新的列 名。新的列名在表名后的括號(hào)中給出,如果省略將采用原來(lái)表的列名。復(fù)制的內(nèi)容由查詢(xún)語(yǔ)句的WHERE條件決定。,Oracle 表(Table),表的修改(這些操作都無(wú)法回滾) 改表名: alter table 當(dāng)前表名 rename to 新表名; 改列名: alter table 表名 rename column 當(dāng)前列名 to 新列名; 增加列: Alter table 表名 add (column datatype default expr,column datatype.); 修改列: Alter table
15、table_name modify (column_name datatype default expr,column datatype.); 刪除列: Alter table table_name drop column column_name;,Oracle 表(Table),刪除已創(chuàng)建的表 語(yǔ)法如下: DROP TABLE 表名CASCADE CONSTRAINTS; 表的刪除者必須是表的創(chuàng)建者或具有DROP ANY TABLE權(quán)限。CASCADE CONSTRAINTS表示當(dāng)要?jiǎng)h除的表被其他表參照時(shí),刪除參照此表的約束條件。,Oracle 表(Table)的補(bǔ)充,oracle數(shù)據(jù)類(lèi)型,
16、Oracle 表(Table)的補(bǔ)充,oracle數(shù)據(jù)類(lèi)型 字符型 char nchar(都是2000字節(jié)) 定長(zhǎng),速度快,占空間大,需處理 varchar2 nvarchar2 varchar(都是4000字節(jié)) 不定長(zhǎng),空間小,速度慢,無(wú)需處理 格式如下 char(sizebyte|char) nchar (size); 無(wú)n開(kāi)頭的系統(tǒng)默認(rèn)為byte單位,有n開(kāi)頭的不用指定byte或者char,其一定是char的 。char和 nchar 為固定長(zhǎng)度(自己設(shè)定的那個(gè))不夠則用空格補(bǔ)充,最多可以存儲(chǔ)2000字節(jié)(是字符,也不是漢字,注意轉(zhuǎn)化后的值)。 varchar2 nvarchar2 v
17、archar 為變長(zhǎng)字符串類(lèi)型,不用空格補(bǔ)充,最多可以?xún)?chǔ)存4000字節(jié) (varchar盡量不用,oracle可能把他廢棄) 有n開(kāi)頭(nchar,nvarchar2)兩種數(shù)據(jù)類(lèi)型用于包含unicode格式的字符串,其采用國(guó)家字符來(lái)儲(chǔ)存和管理,而不是默認(rèn)的字符集。長(zhǎng)度總是字符數(shù),而沒(méi)有n肯能會(huì)指定字節(jié)還是字符,Oracle 表(Table)的補(bǔ)充,oracle數(shù)據(jù)類(lèi)型 數(shù)值類(lèi)型 number(precision,scale) precision: 精度,也稱(chēng)為總位數(shù),取值為138 默認(rèn)為38,也可以用*表示 number(5,-2)可以存儲(chǔ)1234567 其為1234600,number(5,
18、10)可以?xún)?chǔ)存.0000 scale: 小數(shù)位數(shù),也稱(chēng)小數(shù)右邊的位數(shù),合法值為-48127,默認(rèn)取值取決于是否指定了精度 如果精度沒(méi)有指定這默認(rèn)為最大的取值區(qū)間,如果指定這默認(rèn)為0, number類(lèi)型是一中變長(zhǎng)格式,長(zhǎng)度為022字節(jié) 每增加兩位數(shù)字就增加一個(gè)自己的儲(chǔ)存空間,Oracle 表(Table)的補(bǔ)充,Oracle其他一些數(shù)據(jù)類(lèi)型 DATE 日期和時(shí)間類(lèi)型 LOB 超長(zhǎng)字符, 最大可達(dá)4G CLOB 超長(zhǎng)文本字符串 BLOB 超長(zhǎng)二進(jìn)制字符串 BFILE 超長(zhǎng)二進(jìn)制字符串, 保存在數(shù)據(jù)庫(kù)外的文件里是只讀的. 默認(rèn)值: DEFAULT SYSDATE -加當(dāng)前時(shí)間 default 默認(rèn)值
19、 default 1 -加上一個(gè)默認(rèn)數(shù)值,Oracle 表(Table)的補(bǔ)充,oracle約束 數(shù)字字典(user_constraints,user_cons_columns) primary key not null unique Foreign key check(): 如 constraint 名字 check (列100) 格式:列級(jí)在列定義后面加上這些語(yǔ)句 表級(jí):在表的后面加上。如 constraint 名字 unique(列名字,可以多個(gè)) constraint xxx_fk foreign key(該表的某個(gè)列名) references 某表(某列),Oracle 表(Tabl
20、e)的補(bǔ)充,約束的修改 alter table 語(yǔ)句對(duì)約束進(jìn)行修改: 可以添加或者刪除,但是不能修改有效化和無(wú)效化約束 添加 not null 約束時(shí) 要用modify語(yǔ)句 如: alter table employees add constraint emp_manager_fk foreign key(manager_id) referens table(column) alter table employees drop constraint emp_manager_fk 可以使用 cascade alter table employees drop primary key cascad
21、e,Oracle 索引(Index),Index常用的數(shù)據(jù)字典 User_indexes - 可以獲取有關(guān)用戶(hù)已創(chuàng)建的索引的詳細(xì)信息。 User_ind_partitions - 可以獲取有關(guān)用戶(hù)已創(chuàng)建的分區(qū)索引的詳細(xì)信息 User_ind_columns -獲取有關(guān)列(用戶(hù)的索引是基于這些列創(chuàng)建的)的詳細(xì)信息 其外還有 all_indexes all_ind_partitions all_ind_columns dba_indexes dba_ind_partitions dba_ind_columns,Oracle 索引(Index),索引 目標(biāo)是為了提高查詢(xún)的速度,當(dāng)用戶(hù)對(duì)查詢(xún)速度不滿(mǎn)意
22、而需要對(duì)數(shù)據(jù)庫(kù)的性能進(jìn)行調(diào) 校時(shí),優(yōu)先考慮建立索引。 數(shù)據(jù)庫(kù)中索引的概念與書(shū)索引的概念非常類(lèi)似, 不同之處在于數(shù)據(jù)庫(kù)索引用來(lái)在表中查找特定的行。 索引缺點(diǎn):向表中“添加/刪除”行時(shí),必須花費(fèi)額外的時(shí)間來(lái)更新該行的索引。 創(chuàng)建索引的時(shí)機(jī):當(dāng)需要從大表中檢索少數(shù)幾行時(shí),都應(yīng)該對(duì)列創(chuàng)建索引。 基本準(zhǔn)則:當(dāng)任何單個(gè)查詢(xún)要檢索的行=整個(gè)表行數(shù)的10%時(shí),索引就非常有用。 索引的候選列:應(yīng)該是用來(lái)存儲(chǔ)很大范圍的值的列 自動(dòng)創(chuàng)建索引: 表的主鍵和唯一鍵將自動(dòng)創(chuàng)建索引 語(yǔ)法 create unique| bitmap index 索引名 -unique指定索引列中的值是唯一的,索引名建議以idx打頭 on 表
23、名(列1, 列2. .) -可以對(duì)多列創(chuàng)建索引,這種索引稱(chēng)為“復(fù)合索引” tablespace 表空間名; -省去后,索引將被存儲(chǔ)到用戶(hù)的默認(rèn)表空間中 提示: 出于性能方面的原因,通常應(yīng)該將索引與表存儲(chǔ)到不同的表空間中,Oracle 索引(Index)的補(bǔ)充,索引的類(lèi)型 B-樹(shù)索引位圖索引HASH索引索引編排表反轉(zhuǎn)鍵索引基于函數(shù)的索引分區(qū)索引本地和全局索引簡(jiǎn)要解釋?zhuān)?b*tree index:幾乎所有的關(guān)系型數(shù)據(jù)庫(kù)中都有b*tree類(lèi)型索引,也是被最多使用的。其樹(shù)結(jié)構(gòu)與二叉樹(shù)比較類(lèi)似,根據(jù)rid快速定位所訪(fǎng)問(wèn)的行。 反向索引:反轉(zhuǎn)了b*tree索引碼中的字節(jié),是索引條目分配更均勻,多用于并行服
24、務(wù)器環(huán)境下,用于減少索引葉的競(jìng)爭(zhēng)。 降序索引:8i中新出現(xiàn)的索引類(lèi)型,針對(duì)逆向排序的查詢(xún)。 位圖索引:使用位圖來(lái)管理與數(shù)據(jù)行的對(duì)應(yīng)關(guān)系,多用于OLAP系統(tǒng)。 函數(shù)索引:這種索引中保存了數(shù)據(jù)列基于function返回的值,在select * from table where function(column)=value這種類(lèi)型的語(yǔ)句中起作用。,Oracle 索引(Index),各種索引的創(chuàng)建方法 (1)B*Tree索引 Create index indexname on tablename(columnnamecolumnname.) tablespace tablespacename (2)反
25、向索引。 Create index indexname on tablename(columnnamecolumnname.) reverse tablespace tablespacename (3)降序索引。 Create index indexname on tablename(columnname DESCcolumnname.) tablespace tablespacename (4)位圖索引。 Create BITMAP index indexname on tablename(columnnamecolumnname.) tablespace tablespacename (5
26、)函數(shù)索引。 Create index indexname on tablename(functionname(columnname) tablespace tablespacename 刪除索引 drop index indexname;,Oracle 序列(Sequence),Sequence介紹 Sequence是數(shù)據(jù)庫(kù)系統(tǒng)按照一定規(guī)則自動(dòng)增加的數(shù)字序列。這個(gè)序列一般作為代主鍵(因?yàn)椴粫?huì)重復(fù)) Sequence是數(shù)據(jù)庫(kù)系統(tǒng)的特性,有的數(shù)據(jù)庫(kù)有Sequence,有的沒(méi)有。比如Oracle、DB2、PostgreSQL數(shù)據(jù)庫(kù)有Sequence,MySQL、SQL Server、Sybase等
27、數(shù)據(jù)庫(kù)沒(méi)有Sequence。(identity) Sequence與indentity的基本作用都差不多。都可以生成自增數(shù)字序列。 Sequence是數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)對(duì)象,可以在整個(gè)數(shù)據(jù)庫(kù)中使用,和表沒(méi)有任何關(guān)系;indentity僅僅是指定在表中某一列上,作用范圍就是這個(gè)表。,Oracle 序列(Sequence),Sequence完整語(yǔ)法 CREATE SEQUENCE schema.sequence START WITH integer INCREMENT BY integer MAXVALUE integer | NOMAXVALUE MINVALUE integer | NOMIN
28、VALUE CYCLE | NOCYCLE CACHE integer | NOCACHE ORDER | NOORDER 例子:create sequence jaking_seq start with 1start with不能小于minvalue increment by 1 maxvalue 9999999 minvalue 1 Nocycle noCache order,Oracle 序列(Sequence),語(yǔ)法解析 schema.是架構(gòu)包含序列。如果省略模式,oracle為您創(chuàng)建自己的模式序列。 START WITH integer 不能省略 The default is NOM
29、INVALUE. The default is NOMAXVALUE. The default is NOCYCLE. 如果省略 INCREMENT BY integer 這默認(rèn)為 1 CACHE integer | NOCACHE 此最低值參數(shù)為2 如果此處省略時(shí)候著默認(rèn)為CACHE并且設(shè) 置為20 如果你省略這兩個(gè)ORDER和NOORDER選項(xiàng), oracle選擇NOORDER默認(rèn) 如果指定CACHE值,ORACLE就可以預(yù)先在內(nèi)存里面放置一些sequence,這樣存取的快些 cache里面的取完后,oracle自動(dòng)再取一組到cache。使用cache或許會(huì)跳號(hào), 比如數(shù)據(jù)庫(kù)突 然不正常d
30、own掉(shutdown abort),cache中的sequence就會(huì)丟失. 所以可以在create sequence的時(shí)候用nocache防止這種情況。,Oracle 序列(Sequence),一些注意的事項(xiàng) 定義好SEQUENCE,你就可以用CURRVAL,NEXTVAL獲得值 CURRVAL為返回 SEQUENCE的當(dāng)前值 NEXTVAL為增加SEQUENCE的值,然后返回 SEQUENCE 值(此處在數(shù)據(jù)庫(kù)中存 儲(chǔ)的LastValue) CURRVAL只有當(dāng)NEXTVAL執(zhí)行一次以后才可以用.在創(chuàng)建表的時(shí)候,可以使用序列. NEXTVAL一次后序數(shù)就會(huì)往上加,永遠(yuǎn)都是存最新的那個(gè)
31、數(shù),只要調(diào)用SEQUENCE名.nextVal) sequence不屬于某個(gè)表,也不屬于某個(gè)字段,sequence僅僅屬于某個(gè)用戶(hù)。 其實(shí)在創(chuàng)建了sequence后,每個(gè)表都可以使用這個(gè)sequence,但是這樣會(huì)引起應(yīng)用的很 多麻煩,因此,建議每個(gè)表都使用一個(gè)sequence。 可以使用SEQUENCE的地方: - 不包含子查詢(xún)、snapshot、VIEW的 SELECT 語(yǔ)句 - INSERT語(yǔ)句的子查詢(xún)中 - INSERT語(yǔ)句的VALUES中 - UPDATE 的 SET中,Oracle 序列(Sequence),修改/刪除序列 修改前提是sequence 的owner,或者有ALTER
32、 ANY SEQUENCE 權(quán)限才能改動(dòng)sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence re_create . 例子: ALTER SEQUENCE emp_sequence INCREMENT BY 10 MAXvalue 10000 CYCLE - 到10000后從頭開(kāi)始 NOCACHE alter sequence mySeq maxvalue 500 注意:不能改start with,設(shè)置minvalue值的時(shí)候不能大于當(dāng)前值,其他隨便改 刪除: drop sequence 序列名稱(chēng),Oracl
33、e邏輯結(jié)構(gòu)(系統(tǒng)層),Oracle 塊(Block),1,Oracle 區(qū)(Extend),2,Oracle 段(Segment ),3,Oracle 表空間(Tablespace),4,Oracle塊(Block),數(shù)據(jù)塊 Oracle數(shù)據(jù)塊(Data Block)是一組連續(xù)的操作系統(tǒng)塊。分配數(shù)據(jù)庫(kù)塊大小是在Oracle數(shù)據(jù)庫(kù)創(chuàng)建時(shí)設(shè)置的,數(shù)據(jù)塊是Oracle讀寫(xiě)的基本單位。數(shù)據(jù)塊的大小一般是操作系統(tǒng)塊大小的整數(shù)倍,這樣可以避免不必要的系統(tǒng)I/O操作。從Oracle9i開(kāi)始,在同一數(shù)據(jù)庫(kù)中不同表空間的數(shù)據(jù)塊大小可以不同。數(shù)據(jù)塊是Oracle最基本的存儲(chǔ)單位,而表空間、段、區(qū)間則是邏輯組織的構(gòu)
34、成成員。在數(shù)據(jù)庫(kù)緩沖區(qū)中的每一個(gè)塊都是一個(gè)數(shù)據(jù)塊, 一個(gè)數(shù)據(jù)塊不能跨越多個(gè)文件。,Oracle塊(Block),數(shù)據(jù)塊頭(包括標(biāo)準(zhǔn)內(nèi)容和可變內(nèi)容): 數(shù)據(jù)塊頭(header)中包含了此數(shù)據(jù)塊的概要信息,例如塊地址(block address)及此數(shù)據(jù)塊所屬的段(segment)的類(lèi)型(例如,表或索引)。 表目錄區(qū) 如果一個(gè)數(shù)據(jù)表在此數(shù)據(jù)塊中儲(chǔ)存了數(shù)據(jù)行,那么數(shù)據(jù)表的信息將被記錄在數(shù)據(jù)塊的表目錄(table directory)中。 行目錄區(qū) 此區(qū)域包含數(shù)據(jù)塊中存儲(chǔ)的數(shù)據(jù)行的信息(每個(gè)數(shù)據(jù)行片斷(row piece) 在行數(shù)據(jù)區(qū)(row data area)中的地址)。一個(gè)數(shù)據(jù)塊中可能保存一個(gè)完
35、整的數(shù)據(jù)行,也可能只保存數(shù)據(jù)行的一部分 ,所以文中使用row piece當(dāng)一個(gè)數(shù)據(jù)塊(data block)的行目錄區(qū)(row directory)空間被使用后,即使數(shù)據(jù)行被刪除(delete),行目錄區(qū)空間也不會(huì)被回收。舉例來(lái)說(shuō),當(dāng)一個(gè)曾經(jīng)包含50條記錄的數(shù)據(jù)塊被清空后,其塊頭(header)的行目錄區(qū)仍然占用100字節(jié)(byte)的空間。只有在數(shù)據(jù)塊中插入(insert)新數(shù)據(jù)時(shí),行目錄區(qū)空間才會(huì)被 重新利用。,Oracle塊(Block),行數(shù)據(jù) 數(shù)據(jù)塊(data block)中行數(shù)據(jù)區(qū)(row data)包含了表或索引的實(shí)際數(shù)據(jù)。一個(gè)數(shù)據(jù)行可以跨多個(gè)數(shù)據(jù)塊。 可用空間區(qū) 在插入新數(shù)據(jù)行
36、,或在更新數(shù)據(jù)行需要更多空間時(shí)(例如,原來(lái)某行最后一個(gè)字段為空(trailing null),現(xiàn)在要更新為非空值),將 使用可用空間區(qū)(free space)中的空間。 如果一個(gè)數(shù)據(jù)塊(data block)屬于表或簇表的數(shù)據(jù)段(data segment),或?qū)儆谒饕乃?引段(index segment),那么在其可用空間區(qū)中還可能會(huì)存儲(chǔ)事務(wù)條目(transactionentry)。如果一個(gè)數(shù)據(jù)塊中的數(shù)據(jù)行(row)正在由 INSERT,UPDATE,DELETE,及 SELECT.FOR UPDATE 語(yǔ)句訪(fǎng)問(wèn),此數(shù)據(jù)塊中就需要保存事務(wù)條目。事務(wù)條目所需的存儲(chǔ)空間依據(jù)操作系統(tǒng)而定。在常見(jiàn)的
37、操作系統(tǒng)中事務(wù)條目大約需要占用23字節(jié)(byte)。,Oracle塊(Block),數(shù)據(jù)塊的結(jié)構(gòu)主要包括: 標(biāo)題:包括一般的塊信息,如塊地址,段類(lèi)型等。 表目錄:包括有關(guān)表在該數(shù)據(jù)塊中的行信息。 行目錄:包括有關(guān)在該數(shù)據(jù)塊中行地址等信息。 行數(shù)據(jù):包括表或索引數(shù)據(jù)。一行可跨越多個(gè)數(shù)據(jù)塊。 空閑空間:分配空閑空間是用于插入新的行和需要額外空間的行更新。 在數(shù)據(jù)操作中,有兩種語(yǔ)句可以增加數(shù)據(jù)庫(kù)塊的空閑空間:一個(gè)是Delete刪除語(yǔ)句,另一個(gè)是Update更新現(xiàn)有行。釋放的空閑空間可用于insert語(yǔ)句,如果insert語(yǔ)句是與產(chǎn)生空閑空間的語(yǔ)句在同一個(gè)事務(wù)之中,并在其后執(zhí)行,則insert語(yǔ)句可直
38、接使用生成的空閑空間。如果insert語(yǔ)句是在一個(gè)與產(chǎn)生空閑空間的語(yǔ)句相分離的事務(wù)中,則insert語(yǔ)句可在其他事務(wù)提交后,并在其需要空間時(shí),使用之前產(chǎn)生的空閑空間。 數(shù)據(jù)塊中釋放的空間可能是連續(xù)的,也可能不連續(xù)。Oracle只有在出現(xiàn)下列情況時(shí),才會(huì)合并數(shù)據(jù)塊的空閑空間:當(dāng)insert或update語(yǔ)句要使用一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊的空閑空間足以存儲(chǔ)新的一行,而且空閑空間均是碎片,數(shù)據(jù)塊中連續(xù)空間無(wú)法插入一行的時(shí)候。除此而外Oracle在系統(tǒng)性能下降時(shí)也需要壓縮數(shù)據(jù)塊的空間。,Oracle塊(Block),確定數(shù)據(jù)塊大小有兩個(gè)因素需要考慮: 一是數(shù)據(jù)庫(kù)環(huán)境類(lèi)型。例如,是DSS環(huán)境還是OLTP環(huán)境
39、?在數(shù)據(jù)倉(cāng)庫(kù)環(huán)境(OLAP或DSS)下,用戶(hù)需要進(jìn)行許多運(yùn)行時(shí)間很長(zhǎng)的查詢(xún),所以應(yīng)當(dāng)使用大的數(shù)據(jù)塊。在OLTP系統(tǒng)中,用戶(hù)處理大量的小型事務(wù),采用較小數(shù)據(jù)塊能夠獲得更好的效果。 二是SGA的大小。數(shù)據(jù)庫(kù)緩沖區(qū)的大小由數(shù)據(jù)塊大小和初始化文件的db_block_buffers參數(shù)決定。最好設(shè)為操作系統(tǒng)I/O的整數(shù)倍。,Oracle區(qū)(Extend),區(qū)(Extend)的介紹 也稱(chēng)為數(shù)據(jù)區(qū),是一組連續(xù)的數(shù)據(jù)塊。當(dāng)一個(gè)表、回滾段或臨時(shí)段創(chuàng)建或需要附加空間時(shí),系統(tǒng)總是為之分配一個(gè)新的數(shù)據(jù)區(qū)。一個(gè)數(shù)據(jù)區(qū)不能跨越多個(gè)文件,因?yàn)樗B續(xù)的數(shù)據(jù)塊。使用區(qū)的目的是用來(lái)保存特定數(shù)據(jù)類(lèi)型的數(shù)據(jù),也是表中數(shù)據(jù)增長(zhǎng)的基
40、本單位。在Oracle數(shù)據(jù)庫(kù)中,分配空間就是以數(shù)據(jù)區(qū)為單位的。一個(gè)Oracle對(duì)象包含至少一個(gè)數(shù)據(jù)區(qū)。設(shè)置一個(gè)表或索引的存儲(chǔ)參數(shù)包含設(shè)置它的數(shù)據(jù)區(qū)大小。 在一個(gè)段中可以存在多個(gè)區(qū)間,區(qū)間是為數(shù)據(jù)一次性預(yù)留的一個(gè)較大的存儲(chǔ)空間,直到那個(gè)區(qū)間被用滿(mǎn),數(shù)據(jù)庫(kù)會(huì)繼續(xù)申請(qǐng)一個(gè)新的預(yù)留存儲(chǔ)空間,即新的區(qū)間,一直到段的最大區(qū)間數(shù)(Max Extent)或沒(méi)有可用的磁盤(pán)空間可以申請(qǐng)。 在ORACLE8i以上版本,理論上一個(gè)段可以無(wú)窮個(gè)區(qū)間,但是多個(gè)區(qū)間對(duì)ORACLE卻是有性能影響的,ORACLE建議把數(shù)據(jù)分布在盡量少的區(qū)間上,以減少ORACLE的管理與磁頭的移動(dòng),但是在某些特殊情況下,需要把一個(gè)段分布在多個(gè)數(shù)
41、據(jù)文件或多個(gè)設(shè)備上,適當(dāng)?shù)募佣鄥^(qū)間數(shù)也是有很大好處的。,Oracle段(Segment),段(Segment) 段(Segment)是由多個(gè)數(shù)據(jù)區(qū)構(gòu)成的,它是為特定的數(shù)據(jù)庫(kù)對(duì)象(如表段、索引段、回滾段、臨時(shí)段)分配的一系列數(shù)據(jù)區(qū)。段內(nèi)包含的數(shù)據(jù)區(qū)可以不連續(xù),并且可以跨越多個(gè)文件。使用段的目的是用來(lái)保存特定對(duì)象。段是對(duì)象在數(shù)據(jù)庫(kù)中占用的空間,雖然段和數(shù)據(jù)庫(kù)對(duì)象是一一對(duì)應(yīng)的,但段是從數(shù)據(jù)庫(kù)存儲(chǔ)的角度來(lái)看的。一個(gè)段只能屬于一個(gè)表空間,當(dāng)然一個(gè)表空間可以有多個(gè)段。 表空間和數(shù)據(jù)文件是物理存儲(chǔ)上的一對(duì)多的關(guān)系,表空間和段是邏輯存儲(chǔ)上的一對(duì)多的關(guān)系,段不直接和數(shù)據(jù)文件發(fā)生關(guān)系。一個(gè)段可以屬于多個(gè)數(shù)據(jù)文件,
42、關(guān)于段可以指定擴(kuò)展到哪個(gè)數(shù)據(jù)文件上面。數(shù)據(jù)段:數(shù)據(jù)段也稱(chēng)為表段,它包含數(shù)據(jù)并且與表和簇相關(guān)。當(dāng)創(chuàng)建一個(gè)表時(shí),系統(tǒng)自動(dòng)創(chuàng)建一個(gè)以該表的名字命名的數(shù)據(jù)段。索引段:包含了用于提高系統(tǒng)性能的索引。一旦建立索引,系統(tǒng)自動(dòng)創(chuàng)建一個(gè)以該索引的名字命名的索引段。回滾段:包含了回滾信息,并在數(shù)據(jù)庫(kù)恢復(fù)期間使用,以便為數(shù)據(jù)庫(kù)提供讀入一致性和回滾未提交的事務(wù),即用來(lái)回滾事務(wù)的數(shù)據(jù)空間。當(dāng)一個(gè)事務(wù)開(kāi)始處理時(shí),系統(tǒng)為之分配回滾段,回滾段可以動(dòng)態(tài)創(chuàng)建和撤銷(xiāo)。系統(tǒng)有個(gè)默認(rèn)的回滾段,其管理方式既可以是自動(dòng)的,也可以是手工的。臨時(shí)段:它是Oracle在運(yùn)行過(guò)程中自行創(chuàng)建的段。當(dāng)一個(gè)SQL語(yǔ)句需要臨時(shí)工作區(qū)時(shí),由Oracle建立
43、臨時(shí)段。一旦語(yǔ)句執(zhí)行完畢,臨時(shí)段的區(qū)間便退回給系統(tǒng)。,Oracle段(Segment),段是對(duì)象在數(shù)據(jù)庫(kù)中占用的空間,雖然段和數(shù)據(jù)庫(kù)對(duì)象是一一對(duì)應(yīng)的,但段是從數(shù)據(jù)庫(kù)存儲(chǔ)的角度來(lái)看的。 每一個(gè)segment都是一個(gè)表空間下有一系列extent組成的邏輯存儲(chǔ)結(jié)構(gòu)。如:當(dāng)數(shù)據(jù)庫(kù)用戶(hù)創(chuàng)建一個(gè)表,那么oracle將分配一個(gè)或多個(gè)extent來(lái)組成表的數(shù)據(jù)段,創(chuàng)建一個(gè)索引,oracle也會(huì)分配一個(gè)extent給索引數(shù)據(jù)。 當(dāng)你創(chuàng)建一個(gè)非分區(qū)并且非聚焦表的時(shí)候,或者一個(gè)分區(qū)表的一個(gè)分區(qū),多個(gè)表合用的一個(gè)聚簇,都將是一個(gè)oracle將處理數(shù)據(jù)的單個(gè)data segment。 而一個(gè)index segment
44、,對(duì)于非分區(qū)索引,就是create index創(chuàng)建的索引就會(huì)分配一個(gè)segment來(lái)處理數(shù)據(jù);分區(qū)索引則對(duì)每一個(gè)分區(qū)分配一個(gè)segment來(lái)處理數(shù)據(jù)。 當(dāng)一個(gè)進(jìn)程查詢(xún)的時(shí)候,oracle常常需要一個(gè)臨時(shí)的工作區(qū)存放sql的解析和執(zhí)行的中間狀態(tài),oracle自動(dòng)分配的磁盤(pán)空間temporary segment。特別當(dāng)內(nèi)存的排序區(qū)不足時(shí),oracle將會(huì)分配一個(gè)temporary segment。,Oracle段(Segment),有時(shí)候,下面一些語(yǔ)句有時(shí)候需要用到temporary segment: create index . select . order by ; select distin
45、ct . select . group by select . union select . intersect select . minus 還有就是對(duì)一個(gè)子查詢(xún)來(lái)說(shuō)也會(huì)用到temporary segment。如果一個(gè)查詢(xún)包含distinct 子句,一個(gè)order by ,一個(gè)group by,那么就需要兩個(gè)temporary segment。當(dāng)創(chuàng)建一個(gè)臨時(shí)表或索引,oracle也會(huì)分配一些temporary segment。 對(duì)于temporary segment,oracle只是在一個(gè)用戶(hù)的會(huì)話(huà)(session)中分配,但sql語(yǔ)句執(zhí)行結(jié)束或者會(huì)話(huà)斷開(kāi),將釋放所有的temporary s
46、egment。分配這些temporary segment 的磁盤(pán)空間都是在臨時(shí)表空間,如果沒(méi)有定義臨時(shí)表空間,那么默認(rèn)的臨時(shí)表空間將是system表空間。對(duì)于DBA來(lái)說(shuō),由于分配和釋放這些temporary segment將非常頻繁,所以至少要定義一個(gè)temporary segment,這樣可以避免system表空間的碎片。對(duì)于臨時(shí)表來(lái)說(shuō),如果多個(gè)會(huì)話(huà)公用一個(gè)臨時(shí)表,那么知道所有的會(huì)話(huà)全部結(jié)束,那才會(huì)釋放這個(gè)臨時(shí)表分配的temporary segment。,Oracle表空間(Tablespace),表空間介紹 Oracle數(shù)據(jù)庫(kù)是由若干個(gè)表空間構(gòu)成的。任何數(shù)據(jù)庫(kù)對(duì)象在存儲(chǔ)時(shí)都必須存儲(chǔ)在某個(gè)表
47、空間中。表空間對(duì)應(yīng)于若干個(gè)磁盤(pán)文件,即表空間是由一個(gè)或多個(gè)磁盤(pán)文件構(gòu)成的。表空間相當(dāng)于操作系統(tǒng)中的文件夾,也是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)與物理文件之間的一個(gè)映射。每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)表空間,表空間的大小等于所有從屬于它的數(shù)據(jù)文件大小的總和。 表空間中包含有: 系統(tǒng)表空間(System) 系統(tǒng)輔助表空間(sysaux) 用戶(hù)表空間(Users) 臨時(shí)表空間(Temporary) 回滾段表空間(Rollback) 例子表空間(example) 數(shù)字字典:select * from dba_tablespaces;,Oracle表空間(Tablespace),系統(tǒng)表空間(System) 該表空間包含的數(shù)據(jù)文件稱(chēng)
48、為系統(tǒng)數(shù)據(jù)文件。 該存放系統(tǒng)表和數(shù)據(jù)字典,一般不放用戶(hù)的數(shù)據(jù),但是用戶(hù)腳本,如過(guò)程,函數(shù),包等卻是保存在數(shù)據(jù)字典中的。 數(shù)據(jù)字典是一些系統(tǒng)表或視圖,他存放系統(tǒng)的信息,他包括數(shù)據(jù)庫(kù)版本,數(shù)據(jù)文件信息,表與索引等段信息,系統(tǒng)的運(yùn)行狀態(tài)等各種和系統(tǒng)有關(guān)的信息和用戶(hù)腳本信息。數(shù)據(jù)庫(kù)管理員可以通過(guò)對(duì)數(shù)據(jù)字典的查詢(xún),就可以了解到Oracle的運(yùn)行狀態(tài)。 查看數(shù)據(jù)數(shù)據(jù)字典 select * from dict; 查看內(nèi)部系統(tǒng)表 select * from v$fixed_view_definition; 大量的讀少量的寫(xiě)是該表空間的一個(gè)顯著的特點(diǎn)。 再次提醒:該表空間不能脫機(jī) 例子表空間(example):
49、 它是數(shù)據(jù)庫(kù)在操作系統(tǒng)中的存儲(chǔ)位置。常見(jiàn)的物理結(jié)構(gòu)包括:控制文件、數(shù)據(jù)文件、重作日志文件、歸檔日志文件、初始化參數(shù)文件、還有其它文件(密碼文件、報(bào)警日志文件和后臺(tái)及用戶(hù)跟蹤文件)。,Oracle表空間(Tablespace),系統(tǒng)輔助表空間(sysaux) SYSAUX表空間在Oracle Database 10g中引入,作為SYSTEM表空間的輔助表空間. 以前一些使用獨(dú)立表空間或系統(tǒng)表空間的數(shù)據(jù)庫(kù)組件現(xiàn)在在SYSAUX表空間中創(chuàng)建.通過(guò)分離這些組件和功能,SYSTEM表空間的負(fù)荷得以減輕.反復(fù)創(chuàng)建一些相關(guān)對(duì)象及組件引起SYSTEM表空間的碎片問(wèn)題得以避免。 SYSAUX表空間是隨著數(shù)據(jù)庫(kù)的
50、創(chuàng)建而創(chuàng)建的,它充當(dāng)SYSTEM的輔助表空間,主要存儲(chǔ)除數(shù)據(jù)字典以外的其他對(duì)象。它減少了由數(shù)據(jù)庫(kù)和DBA管理的表空間數(shù)量,降低了SYSTEM表空間的負(fù)荷。 用戶(hù)表空間(Users) 其包含的數(shù)據(jù)文件稱(chēng)為用戶(hù)數(shù)據(jù)文件,一般是由用戶(hù)建立,來(lái)存取用戶(hù)數(shù)據(jù)的表空間,一般有兩類(lèi)常見(jiàn)的用戶(hù)型數(shù)據(jù),數(shù)據(jù)和索引,一般來(lái)說(shuō),如果條件許可的話(huà),可以考慮放在不同的磁盤(pán)上。 臨時(shí)表空間(Temporary) 該表空間包含的數(shù)據(jù)文件稱(chēng)為臨時(shí)數(shù)據(jù)文件,主要存放用戶(hù)的排序等臨時(shí)數(shù)據(jù),因?yàn)闆](méi)有辦法在一個(gè)永久表空間上開(kāi)辟臨時(shí)段,所以就必須有一個(gè)臨時(shí)表空間,主要用于不能在內(nèi)存上進(jìn)行的排序操作。我們必須為用戶(hù)指定一個(gè)臨時(shí)表空間。 臨時(shí)段占有的空間會(huì)在下次系統(tǒng)啟動(dòng)的時(shí)候全部被釋放。,Oracle表空間(Tablespace),回滾段表空間(Rollback) 如果數(shù)據(jù)庫(kù)進(jìn)行對(duì)數(shù)據(jù)的修改,那么就必須使用回滾段,回滾段是用來(lái)臨時(shí)存放修改前的數(shù)據(jù)(UNDO)?;貪L段通常都放
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融租賃服務(wù)項(xiàng)目建議書(shū)
- 2025年半導(dǎo)體用石英玻璃材料項(xiàng)目發(fā)展計(jì)劃
- 2025年鋼增強(qiáng)塑料復(fù)合管項(xiàng)目發(fā)展計(jì)劃
- 2025年特種機(jī)載裝置合作協(xié)議書(shū)
- 性別差異下的教育心理學(xué)如何針對(duì)不同性別激發(fā)學(xué)生潛力
- 教育投資的新趨勢(shì)游戲化學(xué)習(xí)平臺(tái)的融資路徑
- 教育政策成效評(píng)估的多維度分析
- 未來(lái)科技趨勢(shì)下的教育技術(shù)增強(qiáng)現(xiàn)實(shí)與虛擬現(xiàn)實(shí)的融合應(yīng)用研究
- 2025年甘肅省靖遠(yuǎn)縣四中物理高一第二學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 幼兒教育中教師心理調(diào)適的技巧與方法
- 先兆流產(chǎn)護(hù)理課件
- 《經(jīng)營(yíng)十二條詳解》課件
- 撫育林施工方案
- 響應(yīng)文件模板
- 機(jī)器設(shè)備維護(hù)保養(yǎng)記錄表
- 深基坑工程培訓(xùn)課件
- 油漆工進(jìn)場(chǎng)安全教育試題
- 2022年成都市第八人民醫(yī)院招聘考試真題
- 軟件工程(普通高等學(xué)校本科專(zhuān)業(yè))
- Q-SY 10342-2019 終端計(jì)算機(jī)安全管理規(guī)范
- 2019高中物理人教版(通用版)講義2-2-3牛頓第二定律
評(píng)論
0/150
提交評(píng)論