freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

sql基礎(chǔ)教程-資料下載頁(yè)

2025-08-04 10:05本頁(yè)面
  

【正文】 ,而不需要我們?nèi)ト斯す芾怼he AUTO_INCREMENT attribute can be used to generate a unique identity for new rows:CREATE TABLE animals ( id int NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id))。INSERT INTO animals (name) VALUES (39。dog39。),(39。cat39。),(39。penguin39。), (39。lax39。),(39。whale39。),(39。ostrich39。)。SELECT * FROM animals。但是,oracle中沒有自增類型的字段的,所以通常情況下需要定義一個(gè)sequence來(lái)作為自動(dòng)增長(zhǎng)類型字段的數(shù)據(jù)。 Oracle中的序列(sequence)如何定義一個(gè)序列,格式為:  create sequence 序列名稱  start with 起始數(shù)  increment by 增長(zhǎng)量  [maxvalue值]  [minvalue 值]  [cycle 當(dāng)?shù)竭_(dá)最大值的時(shí)候,將繼續(xù)從頭開始]  [Nocycle 一直累加,不循環(huán)]  [Cache 緩存]可使用NEXTVAL和CURRVAL關(guān)鍵字訪問(wèn)序列值。NEXTVAL返回序列中的下一個(gè)編號(hào),而CURRVAL提供對(duì)當(dāng)前值的訪問(wèn)。sequence不屬于某個(gè)表,也不屬于某個(gè)字段,sequence僅僅屬于某個(gè)用戶。注意:第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會(huì)自動(dòng)增加你定義的INCREMENT BY值,然后返回增加后的值。CURRVAL 總是返回當(dāng)前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否則會(huì)出錯(cuò)。一次NEXTVAL會(huì)增加一次 SEQUENCE的值。下面創(chuàng)建一個(gè)序列:create sequence myseqstart with 1increment by 2maxvalue 9999minvalue 1nocycle。問(wèn)題:在那里可以查出我們剛剛創(chuàng)建好的序列seq_test?回答:?jiǎn)栴}:怎樣使用sequence?第一步:創(chuàng)建一個(gè)測(cè)試表Create table test_seq( nextv number, currv number)。利用序列,插入數(shù)據(jù)庫(kù):Insert into test_seq(nextv,currv) values (, )。查詢,并觀察結(jié)果:Select * from test_seq。然后再插入,再查詢:Insert into test_seq(nextv,currv) values (, )。查詢,觀察結(jié)果:Select * from test_seq。練習(xí):創(chuàng)建一個(gè)序列,主鍵自動(dòng)增長(zhǎng)1,并插入數(shù)據(jù)進(jìn)行測(cè)試。9 索引在數(shù)據(jù)庫(kù)中,索引的含義與日常意義上的“索引”一詞并無(wú)多大區(qū)別(想想查字典時(shí)候的索引),它是用于提高數(shù)據(jù)庫(kù)表數(shù)據(jù)訪問(wèn)速度的數(shù)據(jù)庫(kù)對(duì)象。A)索引可以避免全表掃描。多數(shù)查詢可以僅掃描少量索引頁(yè)及數(shù)據(jù)頁(yè),而不是遍歷所有數(shù)據(jù)頁(yè)。B)對(duì)于非聚集索引,有些查詢甚至可以不訪問(wèn)數(shù)據(jù)頁(yè)。C)聚集索引可以避免數(shù)據(jù)插入操作集中于表的最后一個(gè)數(shù)據(jù)頁(yè)。D)一些情況下,索引還可用于避免排序操作。當(dāng)然,眾所周知,雖然索引可以提高查詢速度,但是它們也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng)更新數(shù)據(jù)的性能下降,因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)更新需要同時(shí)更新索引。創(chuàng)建索引:創(chuàng)建索引一般有以下兩個(gè)目的:維護(hù)被索引列的唯一性和提供快速訪問(wèn)表中數(shù)據(jù)的策略。 在select操作占大部分的表上創(chuàng)建索引; 在where子句中出現(xiàn)最頻繁的列上創(chuàng)建索引; 在選擇性高的列上創(chuàng)建索引(補(bǔ)充索引選擇性,最高是1,eg:primary key) 復(fù)合索引的主列應(yīng)該是最有選擇性的和where限定條件最常用的列小于1M的表,最好不要使用索引來(lái)查詢,表越小,越適合用全表掃描。我們常見的數(shù)據(jù)庫(kù)系統(tǒng),其索引使用的數(shù)據(jù)結(jié)構(gòu)多是BTree或者B+Tree。例如,MsSql使用的是B+Tree,Oracle及Sysbase使用的是BTree。所以在最開始,簡(jiǎn)單地介紹一下BTree。BTree不同于Binary Tree(二叉樹,最多有兩個(gè)子樹),一棵M階的BTree滿足以下條件:1)每個(gè)結(jié)點(diǎn)至多有M個(gè)孩子;2)除根結(jié)點(diǎn)和葉結(jié)點(diǎn)外,其它每個(gè)結(jié)點(diǎn)至少有M/2個(gè)孩子;3)根結(jié)點(diǎn)至少有兩個(gè)孩子(除非該樹僅包含一個(gè)結(jié)點(diǎn));4)所有葉結(jié)點(diǎn)在同一層,葉結(jié)點(diǎn)不包含任何關(guān)鍵字信息;5)有K個(gè)關(guān)鍵字的非葉結(jié)點(diǎn)恰好包含K+1個(gè)孩子;另外,對(duì)于一個(gè)結(jié)點(diǎn),其內(nèi)部的關(guān)鍵字是從小到大排序的。以下是BTree(M=4)的樣例:對(duì)于每個(gè)結(jié)點(diǎn),主要包含一個(gè)關(guān)鍵字?jǐn)?shù)組Key[],一個(gè)指針數(shù)組(指向兒子)Son[]。在BTree內(nèi),查找的流程是:使用順序查找(數(shù)組長(zhǎng)度較短時(shí))或折半查找方法查找Key[]數(shù)組,若找到關(guān)鍵字K,則返回該結(jié)點(diǎn)的地址及K在Key[]中的位置;否則,可確定K在某個(gè)Key[i]和Key[i+1]之間,則從Son[i]所指的子結(jié)點(diǎn)繼續(xù)查找,直到在某結(jié)點(diǎn)中查找成功;或直至找到葉結(jié)點(diǎn)且葉結(jié)點(diǎn)中的查找仍不成功時(shí),查找過(guò)程失敗。接著,我們使用以下圖片演示如何生成BTree(M=4,依次插入1~6):從圖可見,當(dāng)我們插入關(guān)鍵字4時(shí),由于原結(jié)點(diǎn)已經(jīng)滿了,故進(jìn)行分裂,基本按一半的原則進(jìn)行分裂,然后取出中間的關(guān)鍵字2,升級(jí)(這里是成為根結(jié)點(diǎn))。其它的依類推,就是這樣一個(gè)大概的過(guò)程。一條索引記錄中包含的基本信息包括:鍵值(即你定義索引時(shí)指定的所有字段的值)+邏輯指針(指向數(shù)據(jù)頁(yè)或者另一索引頁(yè))。當(dāng)你為一張空表創(chuàng)建索引時(shí),數(shù)據(jù)庫(kù)系統(tǒng)將為你分配一個(gè)索引頁(yè),該索引頁(yè)在你插入數(shù)據(jù)前一直是空的。此頁(yè)此時(shí)既是根結(jié)點(diǎn),也是葉結(jié)點(diǎn)。每當(dāng)你往表中插入一行數(shù)據(jù),數(shù)據(jù)庫(kù)系統(tǒng)即向此根結(jié)點(diǎn)中插入一行索引記錄。當(dāng)根結(jié)點(diǎn)滿時(shí),數(shù)據(jù)庫(kù)系統(tǒng)大抵按以下步驟進(jìn)行分裂:A)創(chuàng)建兩個(gè)兒子結(jié)點(diǎn)B)將原根結(jié)點(diǎn)中的數(shù)據(jù)近似地拆成兩半,分別寫入新的兩個(gè)兒子結(jié)點(diǎn)C)根結(jié)點(diǎn)中加上指向兩個(gè)兒子結(jié)點(diǎn)的指針通常狀況下,由于索引記錄僅包含索引字段值(以及49字節(jié)的指針),索引實(shí)體比真實(shí)的數(shù)據(jù)行要小許多,索引頁(yè)相較數(shù)據(jù)頁(yè)來(lái)說(shuō)要密集許多。一個(gè)索引頁(yè)可以存儲(chǔ)數(shù)量更多的索引記錄,這意味著在索引中查找時(shí)在I/O上占很大的優(yōu)勢(shì),理解這一點(diǎn)有助于從本質(zhì)上了解使用索引的優(yōu)勢(shì)。注意:mysql下有可能不支持。示例1:在emp表中的empno字段上創(chuàng)建索引。 Create index index_empno on emp(ename)。刪除索引:drop index index_empno。驗(yàn)證索引的作用:使用10章中的test_seq表做測(cè)試表::建立索引:create index test_seq_currv on (currv)。 然后再進(jìn)行查詢:查詢時(shí)間有所減少,但是不是很明顯,建議測(cè)試的時(shí)候多插入一些數(shù)值。練習(xí):自己創(chuàng)建一個(gè)名叫student表,有兩個(gè)字段,學(xué)號(hào)sno,和學(xué)生姓名sname,sno表利用sequence生成數(shù)值進(jìn)行插入,而sname可以隨意給值,向表里插入十萬(wàn)行左右的的數(shù)據(jù),比較建立索引和沒有建立索引進(jìn)行查詢時(shí)時(shí)間的差別。10 視圖(view)視圖是一種特殊的表(虛擬表),它其實(shí)質(zhì)就是一條查詢語(yǔ)句的別名,而這個(gè)表的數(shù)據(jù),就是這條查詢語(yǔ)句所查詢的結(jié)果。視圖在數(shù)據(jù)庫(kù)中沒有實(shí)際的存儲(chǔ)數(shù)據(jù),數(shù)據(jù)是查詢時(shí)生成的。視圖在開發(fā)中使用中比較多,往往開發(fā)中通過(guò)視圖來(lái)實(shí)現(xiàn)一些權(quán)限控制,安全性控制,封裝復(fù)雜查詢等等作用。視圖:是一個(gè)封裝了各種復(fù)雜查詢的語(yǔ)句,就稱為視圖。視圖是一個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來(lái)自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。從數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部來(lái)看,視圖是由一張或多張表中的數(shù)據(jù)組成的,從數(shù)據(jù)庫(kù)系統(tǒng)外部來(lái)看,視圖就如同一張表一樣,對(duì)表能夠進(jìn)行的一般操作都可以應(yīng)用于視圖,例如查詢,插入,修改,刪除操作等。  * 簡(jiǎn)單性??吹降木褪切枰?。視圖不僅可以簡(jiǎn)化用戶對(duì)數(shù)據(jù)的理解,也可以簡(jiǎn)化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。   * 安全性。通過(guò)視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫(kù)中的其它數(shù)據(jù)則既看不見也取不到。數(shù)據(jù)庫(kù)授權(quán)命令可以使每個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的檢索限制到特定的數(shù)據(jù)庫(kù)對(duì)象上,但不能授權(quán)到數(shù)據(jù)庫(kù)特定行和特定的列上。通過(guò)視圖,用戶可以被限制在數(shù)據(jù)的不同子集上:   * 邏輯數(shù)據(jù)獨(dú)立性。視圖可幫助用戶屏蔽真實(shí)表結(jié)構(gòu)變化帶來(lái)的影響。語(yǔ)法:CREATE VIEW 視圖名字(字段) AS 子查詢(雇員的編號(hào)、姓名、工資)CREATE VIEW v_emp_dept20 AS SELECT empno,ename,sal FROM emp WHERE deptno=20 。其他操作,如查詢,刪除等等操作和表一樣。練習(xí):1:創(chuàng)建一個(gè)包含傭金高于其薪金的雇員視圖2:創(chuàng)建一個(gè)包含所有雇員的雇員編號(hào)、雇員名稱、部門名稱和薪金的視圖3:創(chuàng)建一個(gè)包含各種工作的薪金總和的視圖作業(yè):登陸下面的網(wǎng)址,并自學(xué)和復(fù)習(xí)SQL。新疆大學(xué)軟件學(xué)院數(shù)據(jù)庫(kù)原理與技術(shù)SQL教程 廖彬 liaobin665@
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1