數(shù)據(jù)庫原理疑難問題解答的示例分析

本篇文章為大家展示了數(shù)據(jù)庫原理疑難問題解答的示例分析,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

為南澳等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及南澳網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、南澳網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1、Interbase怎么與Access聯(lián)接?
答:首先在ACCESS中建立數(shù)據(jù)庫,并為這個(gè)數(shù)據(jù)庫指定訪問的別名以及用戶名和口令,然后在Interbase中建立一個(gè)外部數(shù)據(jù)庫聯(lián)接(注意是使用當(dāng)初指定的數(shù)據(jù)庫別名),在用戶名和口令處指定為先前設(shè)置的用戶名和口令,在程序設(shè)計(jì)語言中使用一個(gè)數(shù)據(jù)庫對象,設(shè)置好這個(gè)對象的相關(guān)屬性(包括數(shù)據(jù)庫別名、用戶名及口令等),這樣就可以通過這個(gè)對象訪問Access數(shù)據(jù)庫了。

2、Access是否可以用來建立網(wǎng)站留言板?
答:應(yīng)當(dāng)是可以的,但一般來說不使用它作留言板的后臺數(shù)據(jù)庫,因?yàn)锳ccess適用的對象是中小型企業(yè)的數(shù)據(jù)庫管理,一般網(wǎng)站留言板都應(yīng)使用較大型的數(shù)據(jù)庫作平臺,所以建議使用SQL或Oracle等。

3、MySQL與SQL誰更適合在UNIX中使用。
答:當(dāng)然應(yīng)當(dāng)是MYSQL,因?yàn)镸YSQL對于UNIX來說兼容性更好。

4、請問Interdev和Ultradev哪個(gè)和SQL2000兼容性好。
答:我想應(yīng)是Interdev更好一些,因?yàn)樵赟QL2000和Interdev中有許多地方是相容的,而且他們可以聯(lián)合起來開發(fā)應(yīng)用程序,對于Ultradev來說只是使用上更方便一些。

5、請問怎樣將數(shù)據(jù)庫中的數(shù)據(jù)放入到EXECL中
答:在WIN9X操作系統(tǒng)中首先要有相在數(shù)據(jù)庫的驅(qū)動程序,若沒有就先安裝,然后就可以在EXECL中直接打開相關(guān)的數(shù)據(jù)庫文件。在有些數(shù)據(jù)庫中還可以只指通過兩個(gè)程序進(jìn)行數(shù)據(jù)拖放來實(shí)現(xiàn),如ACCESS等。

6、如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)?
答:數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)組成部分:邏輯設(shè)計(jì)和物理設(shè)計(jì)。邏輯數(shù)據(jù)庫設(shè)計(jì)包括使用數(shù)據(jù)庫組件(如表和約束)為業(yè)務(wù)需求和數(shù)據(jù)建模,而無須考慮如何或在哪里物理存儲這些數(shù)據(jù)。物理數(shù)據(jù)庫設(shè)計(jì)包括將邏輯設(shè)計(jì)映射到物理媒體上、利用可用的硬件和軟件功能使得盡可能快地對數(shù)據(jù)進(jìn)行物理訪問和維護(hù),還包括生成索引。
要在設(shè)計(jì)后更改這些組件很困難,因此在數(shù)據(jù)庫應(yīng)用程序開發(fā)的早期階段正確設(shè)計(jì)數(shù)據(jù)庫、使其為業(yè)務(wù)需求建模,并利用硬件和軟件功能很重要。

7、我們的計(jì)算機(jī)在進(jìn)行數(shù)據(jù)查詢時(shí)速度很慢,可能由哪些因素引起?
答:
A、網(wǎng)絡(luò)通訊速度慢。
B、服務(wù)器計(jì)算機(jī)的內(nèi)存不足或 Microsoft SQL Server 2000 可用的內(nèi)存不足。
C、缺少有用的統(tǒng)計(jì)數(shù)據(jù)。
D、統(tǒng)計(jì)數(shù)據(jù)過期。
E、缺少有用的索引。
F、缺少有用的數(shù)據(jù)條帶化。

8、在VFP中怎樣實(shí)現(xiàn)用遞歸的方法求數(shù)的階乘?  
答:程序如下:  
遞歸子程序:  
func abc(n)  
if n>=1 then s=n*abc(n-1)  
else  
retu  
endfunc  
調(diào)用主程序  
set talk off  
@13,13 say " " get n  
read  
abc(n)  
 
9、學(xué)習(xí)SQL需要什么基礎(chǔ)?  
答:學(xué)習(xí)SQL需要一些基本的數(shù)據(jù)庫基礎(chǔ)知識,比如,可以學(xué)習(xí)FOXBASE、VFP及ACCESS。  
 
10、SQL Server的事務(wù)處理日志如何處理?  
答:可以通過SQL Server的企業(yè)管理器來處理相關(guān)的日志,或者通過SQL的日志查看器來處理。  
 
11、如何將SQL 7的數(shù)據(jù)轉(zhuǎn)換成SQL 2000的數(shù)據(jù)?  
答:使用復(fù)制數(shù)據(jù)庫向?qū)Э梢詮?Microsoft SQL Server 7.0 向 Microsoft SQL Server 2000 實(shí)例移動或復(fù)制數(shù)據(jù)庫,數(shù)據(jù)庫復(fù)制向?qū)Щ诜蛛x和附加功能,該功能允許將用戶數(shù)據(jù)庫從源服務(wù)器移動或復(fù)制到目的服務(wù)器。數(shù)據(jù)轉(zhuǎn)換服務(wù) (DTS) 包執(zhí)行實(shí)際的移動或復(fù)制操作??梢哉{(diào)度該包在指定的時(shí)間運(yùn)行或必要時(shí)重新運(yùn)行。  
    數(shù)據(jù)庫管理員可以將一個(gè)或多個(gè)數(shù)據(jù)庫從 SQL Server 7.0 實(shí)例移動或復(fù)制到您的本地計(jì)算機(jī)上的 SQL Server 2000 默認(rèn)實(shí)例,或者到遠(yuǎn)程計(jì)算機(jī)上的默認(rèn)或命名實(shí)例。該升級功能不支持 SQL Server 6.5 數(shù)據(jù)庫。  
 
12、如何配置日志傳送?  
答:使用數(shù)據(jù)庫維護(hù)計(jì)劃向?qū)渲萌罩緜魉汀?  
    在配置日志傳送之前,必須在主數(shù)據(jù)庫上創(chuàng)建一個(gè)共享以使事務(wù)日志可用。這是從事務(wù)日志轉(zhuǎn)儲目錄創(chuàng)建的共享。例如,如果將日志轉(zhuǎn)儲到目錄 e:\data\tlogs\,則可以從該目錄創(chuàng)建 \\logshipping\tlogs 共享。  
    ⑴.在"選擇數(shù)據(jù)庫"屏幕上,選擇"如下數(shù)據(jù)庫"復(fù)選框,然后選擇要進(jìn)行日志傳送的數(shù)據(jù)庫。如果選擇了多個(gè)數(shù)據(jù)庫,則不會執(zhí)行日志傳送,日志傳送選項(xiàng)也不可用。不允許選擇已配置了日志傳送的數(shù)據(jù)庫。  
    ⑵.選擇"將事務(wù)日志傳送到其它的 SQL Server(日志傳送)"復(fù)選框。  
    ⑶.繼續(xù)執(zhí)行向?qū)?,指定其余的?shù)據(jù)庫維護(hù)選項(xiàng),直到到達(dá)"指定日志傳送目的"屏幕。  
    ⑷.單擊"添加"按鈕添加目的數(shù)據(jù)庫。要使該選項(xiàng)可用,必須已經(jīng)在向?qū)У那懊娌襟E中選擇了使用日志傳送。  
    ⑸.在"添加目的數(shù)據(jù)庫"屏幕中,選擇一個(gè)服務(wù)器名。  
該服務(wù)器必須已經(jīng)注冊,而且正在運(yùn)行 Microsoft SQL Server 2000 企業(yè)版,這樣才能顯示在下拉列表中。如果要使該目的成為可用的源目的,必須選擇"允許數(shù)據(jù)庫采用主角色"復(fù)選框。如果該復(fù)選框未被選中,則該目的數(shù)據(jù)庫將來就無法采用源目的角色。如果已選定"允許數(shù)據(jù)庫采用主角色"復(fù)選框,還必須在日志將要備份到的目的數(shù)據(jù)庫中指定"事務(wù)日志備份目錄"。  
    ⑹.若要從默認(rèn)位置更改事務(wù)日志目的數(shù)據(jù)庫,請?jiān)?quot;目錄"框中輸入一個(gè)位置。  
    ⑺.如果源數(shù)據(jù)庫不在目的數(shù)據(jù)庫上,則選擇"創(chuàng)建新數(shù)據(jù)庫"復(fù)選框。"數(shù)據(jù)庫名稱"框?qū)⒛J(rèn)為源數(shù)據(jù)庫名。如果想要在目的服務(wù)器上用另一個(gè)數(shù)據(jù)庫名,則指定一個(gè)新名稱。如果已經(jīng)選擇了允許該目的數(shù)據(jù)庫承擔(dān)源角色,就無法從默認(rèn)值改變該數(shù)據(jù)庫的名稱。  
    ⑻.如果已經(jīng)選擇了"創(chuàng)建新數(shù)據(jù)庫"復(fù)選框,則還必須在"用于數(shù)據(jù)"和"用于日志"框中指定目的數(shù)據(jù)庫上數(shù)據(jù)和日志的文件目錄。  
    ⑼.如果源數(shù)據(jù)庫已經(jīng)存在于目的數(shù)據(jù)庫上,則選擇"使用現(xiàn)有數(shù)據(jù)庫"復(fù)選框。如果目的服務(wù)器上的數(shù)據(jù)庫名不同,則在"數(shù)據(jù)庫名稱"框中輸入該名。該數(shù)據(jù)庫必須是使用 WITH STANDBY 選項(xiàng)還原過的,以便正確接受日志。  
    ⑽.在"初始化目的數(shù)據(jù)庫"屏幕上,執(zhí)行下列操作之一:  
單擊"立即提取完全數(shù)據(jù)庫備份"。  
-或-單擊"使用最新備份文件"以初始化目的數(shù)據(jù)庫。  
    ⑾.在"日志傳送調(diào)度"屏幕上,查看默認(rèn)的日志傳送調(diào)度。如果要改變調(diào)度,請單擊"更改"。  
    ⑿.在"復(fù)制/裝載的頻率"框中,設(shè)置希望目的服務(wù)器從源服務(wù)器備份和還原事務(wù)日志的頻率(以分鐘計(jì))。  
    ⒀.在"裝載延遲"框中,設(shè)置希望目的數(shù)據(jù)庫從源服務(wù)器還原事務(wù)日志之前要等待的延遲(以分鐘計(jì))。該框的默認(rèn)值為 0 分鐘,表示目的數(shù)據(jù)庫應(yīng)立即還原所有事務(wù)日志備份。  
    ⒁.在"文件保持期"框中指定事務(wù)日志在刪除之前應(yīng)該存留的時(shí)間長度。  
    ⒂.從"日志傳送閾值"對話框中,設(shè)置"備份警報(bào)閾值"。  
這是距離源服務(wù)器上一次事務(wù)日志備份時(shí)間的最長期限。一旦時(shí)間超過此指定閾值,監(jiān)視服務(wù)器將生成警報(bào)。  
    ⒃.在"不同步警報(bào)閾值"框中,指定源服務(wù)器上最近一次事務(wù)日志備份與目的服務(wù)器最近一次事務(wù)日志還原之間的時(shí)間。一旦時(shí)間超過此指定閾值,監(jiān)視服務(wù)器將生成警報(bào)。  
    ⒄.在"指定日志傳送監(jiān)視器信息"屏幕中,鍵入將監(jiān)視日志傳送的服務(wù)器名稱。  
單擊"使用 Windows 身份驗(yàn)證"或"使用 SQL Server 身份驗(yàn)證"連接到監(jiān)視服務(wù)器。log_shipping_monitor_probe 登錄名是固定的,必須使用它連接到監(jiān)視服務(wù)器。如果這是一個(gè)新帳戶,則選擇一個(gè)新密碼。如果該帳戶已經(jīng)存在于監(jiān)視服務(wù)器上,則必須指定現(xiàn)有的密碼。  
說明 使用數(shù)據(jù)庫維護(hù)向?qū)гO(shè)置日志傳送,只可以向磁盤傳送日志,而不能使用"備份到磁帶"選項(xiàng)。  
 
13、如何管理或查看 SQL Server 消息(企業(yè)管理器)?  
答:管理或查看 SQL Server 消息  
    ⑴、展開一個(gè)服務(wù)器組,然后右擊一個(gè)服務(wù)器。  
    ⑵、指向"所有任務(wù)",然后單擊"管理 SQL Server 消息"命令。  
    ⑶、若要指定搜索選項(xiàng),請執(zhí)行以下一個(gè)或多個(gè)操作:  
在"消息正文包含"框中,鍵入要搜索的文本。  
在"錯(cuò)誤號"框中,鍵入要搜索的錯(cuò)誤號。  
在"嚴(yán)重度"下,選擇要搜索的嚴(yán)重級別。  
    ⑷、若要指定要包含的消息,請執(zhí)行下列操作之一:  
選擇"僅包含已日志記錄的消息"復(fù)選框。  
-或-選擇"僅包含用戶定義的消息"復(fù)選框。  
    ⑸、單擊"查找"以查找所有滿足搜索條件的消息  
 
14、要學(xué)習(xí)SQL2000應(yīng)先掌握哪些知識?  
答:若要學(xué)習(xí)SQL2000可以先學(xué)習(xí)一些數(shù)據(jù)庫基礎(chǔ)方面的知識,如:FOX、ACCESS等,然后學(xué)習(xí)SQL2000的操作方面知識,再學(xué)習(xí)SQL2000 SERVER。  
 
15、對于學(xué)生管理軟件應(yīng)考慮哪些方面的問題?  
答:首先:應(yīng)進(jìn)行需求分析,因?yàn)槲覀冮_發(fā)的軟件都是為用戶服務(wù)的,若脫離客戶而開發(fā),那么開發(fā)出來的東西是沒有用的。  
    其次:考慮程序開發(fā)的模塊和算法,對于開發(fā)的軟件應(yīng)將它細(xì)化,分成若干多個(gè)模塊,每一個(gè)實(shí)現(xiàn)一部分功能,這樣開發(fā)的程序結(jié)構(gòu)清楚。另外就是算法,算法是解決問題的關(guān)鍵,沒有好的算法,我們編出的程序效率也是不高的。  
    第三:就是數(shù)據(jù)庫的確立,好的數(shù)據(jù)集合對我們開發(fā)者來說是事半功倍,反之就會徒勞,另外的方面就是數(shù)據(jù)平臺,平臺的好壞對程序的移植和通用性是非常關(guān)鍵的。  
 
16、為什么我建的數(shù)據(jù)庫在有的機(jī)器上能打開,在有的機(jī)器上不能打開?  
答:可能的原因有:  
    ⑴、所使用的數(shù)據(jù)庫平臺不一樣,如SQL的數(shù)據(jù)庫在ACCESS上是不能打開的,反之也一樣。  
    ⑵、所使用軟件版本不一樣,一般來說,同一數(shù)據(jù)庫平臺高版本可以打開低版本的,但低版本不能打開高版本的。  
    ⑶、在移置的過程中數(shù)據(jù)庫損壞。  
 
17、學(xué)習(xí)SQL Server多久才能精通?  
答:這個(gè)問題不能肯定的回答,因?yàn)樽陨硪蛩睾苤匾粽J(rèn)真學(xué),時(shí)間能保證,那最多一個(gè)月一定能入門的,要說精通就不一定了,不過多的實(shí)驗(yàn)對熟悉的幫助是很大的,對這個(gè)問題再熟悉的人可能都不敢說精通。  
 
18、SQL的作用是什么?  
答:能常意義上講的SQL是指數(shù)據(jù)庫查詢語言,主要用于數(shù)據(jù)庫的操作、管理和查詢。對于SQL來說它又分了兩方面,即SERVER和CLIENT,SERVER主要提供數(shù)據(jù)庫平臺,用于數(shù)據(jù)庫的建立、管理等,而CLIENT主要是提供數(shù)據(jù)庫連接和操作。  
 
19、如何書寫數(shù)據(jù)庫報(bào)告?  
答:書寫數(shù)據(jù)庫報(bào)告可從以下方面進(jìn)行考慮:  
    ⑴、數(shù)據(jù)庫建立的環(huán)境和必要性  
    ⑵、數(shù)據(jù)庫建立的平臺  
    ⑶、數(shù)據(jù)庫建立的具體細(xì)節(jié)  
    ⑷、操作的方法和技巧  
    ⑸、安全性和穩(wěn)定性  
    ⑹、可移植性和兼容性  
    ⑺、其他  
 
20、為什么按照書上書寫的SQL語句在Visual Foxpro中不能執(zhí)行?  
答:Visual Foxpro中的SQL語句與書上書寫的標(biāo)準(zhǔn)SQL語句有一些微小的差別,要依據(jù)Visual Foxpro中SQL語句的語法規(guī)定。同樣SQL Server中書寫的SQL語句要符合SQL Server中SQL語句的語法規(guī)定。

21、在什么情況下使用CLUSTERED INDEX 在什么情況下使用nonclustered index呢?  
答:聚集 聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲這些數(shù)據(jù)行。由于數(shù)據(jù)行按基于聚集索引鍵的排序次序存儲,因此聚集索引對查找行很有效。每個(gè)表只能有一個(gè)聚集索引,因?yàn)閿?shù)據(jù)行本身只能按一個(gè)順序存儲。數(shù)據(jù)行本身構(gòu)成聚集索引的最低級別。  
    包含聚集索引時(shí),表內(nèi)的數(shù)據(jù)行才按排序次序存儲。如果表沒有聚集索引,則其數(shù)據(jù)行按堆集方式存儲。  
    非聚集索引具有完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu)。非聚集索引的最低行包含非聚集索引的鍵值,并且每個(gè)鍵值項(xiàng)都有指針指向包含該鍵值的數(shù)據(jù)行。數(shù)據(jù)行不按基于非聚集鍵的次序存儲。  
    索引內(nèi),從索引行指向數(shù)據(jù)行的指針稱為行定位器。行定位器的結(jié)構(gòu)取決于數(shù)據(jù)頁的存儲方式是堆集還是聚集。對于堆集,行定位器是指向行的指針。對于有聚集索引的表,行定位器是聚集索引鍵。  
    創(chuàng)建了聚集索引時(shí),表內(nèi)的行才按特定的順序存儲。這些行就基于聚集索引鍵按順序存儲。如果一個(gè)表只有非聚集索引,它的數(shù)據(jù)行將按無序的堆集方式存儲。  
    另外如果大多數(shù)引用 emp_sample 的查詢在它們的 WHERE 子句中有關(guān)于 emp_id 的等式或范圍比較,聚集索引將發(fā)揮很好的作用。如果大多數(shù)查詢的 WHERE 子句引用的是 emp_name 而非 emp_id,則通過將 emp_name 上的索引置為聚集索引可提高性能。  
 
22、在VFP中如何像VB一樣能顯示所有控件代碼?  
答:使用VFP中的類設(shè)計(jì)器即可。  
 
23、在多CPU的機(jī)器中,網(wǎng)卡是否總是使用高序號的CPU呢?  
答:不一定,在網(wǎng)絡(luò)操作系統(tǒng)中,可以使用多個(gè)CPU,CPU之間是協(xié)作式工作,而不是分工,所以網(wǎng)卡不一定總使用高序號的CPU。  
 
24、你覺得SQL2000 SERVER是管理難學(xué)還是編程難呢?  
答:針對MCDBA而言相對來說應(yīng)當(dāng)是管理比編程難,因?yàn)榫幊讨灰煜ち薙QL的相關(guān)東西和編程的算法要領(lǐng),問題就不大了。而管理并不是熟悉SQL SERVER就行,而要對出現(xiàn)的各種情況都要能應(yīng)對,不然即便出現(xiàn)一個(gè)很小的問題都會讓你束手無策。  
 
25、現(xiàn)在學(xué)那種數(shù)據(jù)庫最好?  
答:這個(gè)問題已經(jīng)很多同學(xué)問了,其實(shí)每一種數(shù)據(jù)庫都有它存的價(jià)值,不然已經(jīng)被淘汰了。所以這之中沒有最好,只有最適合,應(yīng)當(dāng)說最適合學(xué)或用哪種數(shù)據(jù)庫。其實(shí)幾種數(shù)據(jù)庫都很好,ACCESS主要針對中小型企業(yè)管理而作為他們數(shù)據(jù)庫平臺,VFP則多用于開發(fā)數(shù)據(jù)庫應(yīng)用程序,MCDBA主要針對MC認(rèn)證,它之中涉及到SQL2000的管理和應(yīng)用程序設(shè)計(jì),這主要是當(dāng)前大多大中型企業(yè)和網(wǎng)站使用的數(shù)據(jù)庫平臺和開發(fā)工具。所以致于哪種最好,應(yīng)當(dāng)說適合自己的就是最好的。  
 
26、問:ACCESS、VFP、SQL有什么區(qū)別?適應(yīng)的環(huán)境有什么不同?  
答:ACCESS、VFP、SQL都是針對數(shù)據(jù)庫管理而開發(fā)的三個(gè)軟件,只是在使用的時(shí)候,ACCESS主要用于中小型企業(yè)的數(shù)據(jù)庫管理系統(tǒng),VFP主要適用于開發(fā)數(shù)據(jù)庫管理系統(tǒng)的應(yīng)有型開發(fā)軟件,SQL主要針對于大中型企業(yè)的數(shù)據(jù)庫平臺。  
 
27.ODBC數(shù)據(jù)源的具體含意及與其相關(guān)的操作有那些?  
答:ODBC是一種編程接口,它能使應(yīng)用程序訪問以結(jié)構(gòu)化查詢語言(SQL)作為數(shù)據(jù)訪問標(biāo)準(zhǔn)的數(shù)據(jù)庫管理系統(tǒng)。相關(guān)的操作有配置數(shù)DNS和數(shù)據(jù)庫訪問引擎。在應(yīng)用程序中我們首先要配置ODBC數(shù)據(jù)源使它能指定到一個(gè)具體的數(shù)據(jù)庫,并為這個(gè)數(shù)據(jù)庫命名一個(gè)應(yīng)用程序訪問的別名,這樣在應(yīng)用程序中我們就可以通過訪問這個(gè)別名來訪問相關(guān)數(shù)據(jù)庫。  
 
28.網(wǎng)頁中,需要將“記錄表”格式化,然后甲方填表后,由乙方檢查補(bǔ)充,再打印保存為數(shù)據(jù)庫并自動編號。還可按格式化自動查詢“記錄表”,要實(shí)現(xiàn)此類功能,應(yīng)用什么技術(shù)可實(shí)現(xiàn),我應(yīng)該學(xué)習(xí)哪些網(wǎng)頁編輯軟件或技術(shù)才能實(shí)現(xiàn)。  
答:要實(shí)現(xiàn)此類功能,使用可以先學(xué)習(xí)一些數(shù)據(jù)庫方面的知識,在其中就講到了相關(guān)的技術(shù),如:SQL、Oracle等,另外就是要了解一些有關(guān)網(wǎng)絡(luò)數(shù)據(jù)庫的配置技術(shù),如SQL Server 、ODBE 、Inerbase等。作為網(wǎng)頁編輯軟件來說,現(xiàn)在很多軟件都是可行的,我認(rèn)為要好用一點(diǎn)的就是DREAMWEAVER等。  
 
29.請問SQL2000中的“實(shí)例”是什么意思,因怎樣理解呢?  
答:SQL實(shí)例簡單的說就是一個(gè)SQL的進(jìn)程,類似于操作系統(tǒng)中的進(jìn)程,它有兩種,即:  
SQL Server 的默認(rèn)實(shí)例。  
    此實(shí)例由運(yùn)行它的計(jì)算機(jī)的網(wǎng)絡(luò)名稱標(biāo)識。使用以前版本 SQL Server 客戶端軟件的應(yīng)用程序可以連接到默認(rèn)實(shí)例。SQL Server 6.5 版或 SQL Server 7.0 版服務(wù)器可作為默認(rèn)實(shí)例操作。但是,一臺計(jì)算機(jī)上每次只能有一個(gè)版本作為默認(rèn)實(shí)例運(yùn)行。  
    SQL Server 的命名實(shí)例。  
    該實(shí)例通過計(jì)算機(jī)的網(wǎng)絡(luò)名稱加上實(shí)例名稱以<計(jì)算機(jī)名稱>\<實(shí)例名稱>格式進(jìn)行標(biāo)識。應(yīng)用程序必須使用 SQL Server 2000 客戶端組件連接到命名實(shí)例。計(jì)算機(jī)可以同時(shí)運(yùn)行任意數(shù)目的 SQL Server 命名實(shí)例。同時(shí),命名實(shí)例還可作為現(xiàn)有的 SQL Server 6.5 版或 SQL Server 7.0 版安裝運(yùn)行。該實(shí)例名不能超過 16 個(gè)字符。  
 
30.SQL中什么是DTS,主要的作用是什么?  
答:DTS就是SQL提供的數(shù)據(jù)轉(zhuǎn)換服務(wù),使用它可以導(dǎo)入和導(dǎo)出SQL數(shù)據(jù)。  
 
31.我有一個(gè)數(shù)據(jù)庫是架設(shè)在SQL Server2000上的,我想把它轉(zhuǎn)回SQL7.0,但SQL2000的bak文檔不能在SQL7.0里恢復(fù),請問有辦法讓SQL2000轉(zhuǎn)回SQL7.0嗎?  
答:在 SQL Server 2000 的實(shí)例上創(chuàng)建的 DTS 包不能裝載到或運(yùn)行于 SQL Server 7.0 版(或早期版本)的實(shí)例上。如果試圖這么做,則可能會收到下面消息中的一個(gè):  
    "無效的類字符串。" "參數(shù)不正確。"  
    兩條消息都指明:當(dāng)前的服務(wù)器并不包含用于裝載該包所必須的所有組件,并且不能支持在 DTS 包中所定義的對象(例如任務(wù)及轉(zhuǎn)換)。  
    但是,如果收到這兩條消息中的一條,仍然可以在 SQL Server 2000 實(shí)例上打開并運(yùn)行包。  
    當(dāng)然要將SQL2000中的數(shù)據(jù)庫移植到SQL以前的版本中還有一個(gè)方法就是它提供的數(shù)據(jù)庫復(fù)制向?qū)А?  
 
32、如何才能為VF6.0設(shè)計(jì)一個(gè)簡單的啟動程序?利用表單可以嗎?我不想脫開VF?  
答:你可以寫一個(gè)腳本,在系統(tǒng)的注冊表中加入名稱,利用表單也可以。  
 
33、請問在SQL中的char、nchar、nvarchar、varchar四種數(shù)據(jù)類型,它們之間有何區(qū)別?如何用?  
答:char是定長的數(shù)據(jù)類型,varchar是變成數(shù)據(jù)類型,nchar和nvarchar相同,但針對多字節(jié)nchar定長,nvarchar變長。  
 
34、編程后不脫離VF和脫離有何利弊?  
答:沒什么利弊可言。  
 
35、ORACLE數(shù)據(jù)庫的超級用戶名稱和密碼是什么?  
答:system/manager。  
 
36、char和nchar各自最多可存貯多少字節(jié)的內(nèi)容?  
答:都是4000個(gè)字節(jié)。  
 
37、有關(guān)MSSQL7的參考書,老師能否給我推薦一下?  
答:買什么書主要看你需要哪方面的資料。  
 
38、請問VF的數(shù)據(jù)可以上傳至SQL服務(wù)器?  
答:當(dāng)然可以,如可以參考微軟的資料。

39、可不可以客戶端用VF而服務(wù)器用大型的數(shù)據(jù)庫?  
答:當(dāng)然可以,我以前作過很多這樣的項(xiàng)目。  
 
40、/dev/null的null是什么?  
答:表示空值、或長度為0的值。  
 
41、VF與哪些大型數(shù)據(jù)庫兼容?  
答:Oracle,DB2,SQL Server等都可以。  
 
42、哪種大型的數(shù)據(jù)庫易學(xué)易用?  
答:SQL Server容易學(xué)點(diǎn)。  
 
43、在MYSQL中怎樣使用unix shell建庫?  
答:先用腳本寫一個(gè)批處理文件然后用shell調(diào)用(給予執(zhí)行權(quán)然后就可以執(zhí)行)。  
 
44、VF中的主關(guān)鍵字段名在數(shù)據(jù)庫建好后還能改名嗎?  
答:可以修改。先刪除現(xiàn)有的PK,然后重建。  
 
45、請問何為pk?  
答:primary key(主關(guān)鍵字)。  
 
46、刪除pk后各表之間的聯(lián)結(jié)都斷了,怎么辦?  
答:刪除后還得把關(guān)聯(lián)加上是比較麻煩一些,但能恢復(fù)。  
 
47、informix中可用/informix/bin/isql 調(diào)用isql建庫,但在MYSQL中怎么用?  
答:因?yàn)镸YSQL是運(yùn)行在unix/linux平臺上的所以用起來會難一些,每一種數(shù)據(jù)庫都有各自的特點(diǎn),但會一種之后另一種就很容易了。  
 
48、我的程序?yàn)槭裁床荒艽虬鼮閙db格式,是因?yàn)橛泻陠幔?  
答:有宏也可以打包成mdb格式。  
 
49、對變量名訪問的時(shí)候,m.與m->是什么命令?起什么作用?  
答:m.中,m是父類名,m->主要用在引用m的對象。  
 
50、請問如何在局域網(wǎng)里共享數(shù)據(jù)庫?  
答:要在局域網(wǎng)中共享數(shù)據(jù)庫,一般需要一臺數(shù)據(jù)庫服務(wù)器,前臺用瀏覽器或者其他程序?qū)λM(jìn)行存取訪問。  
 
51、SQL Server 和Oracle 哪個(gè)更好?  
答:SQL Server屬于中型數(shù)據(jù)庫,它沒有Oracle通用,但是SQL Server 和NT操作系統(tǒng)結(jié)合比較緊密。  
 
52、SQL的全稱是?  
答:SQL的全稱是Structured Query Language(結(jié)構(gòu)化查詢語言)  
 
53、大型數(shù)據(jù)庫除了SQL Server和Oracle,還有哪些?  
答:常見的還有Sysbase,DB2和Informix等。AS400則是把硬件,操作系統(tǒng)和數(shù)據(jù)庫都集成到了一起。  
 
54、怎樣才能學(xué)好SQL數(shù)據(jù)庫?  
答:我覺得關(guān)系數(shù)據(jù)庫很多概念都是相通的 不管你學(xué)SQL Server還是Access,首先都要注意建立起一些基本的概念,比如說表、查詢、關(guān)鍵字等。然后熟悉數(shù)據(jù)庫管理系統(tǒng)的窗口環(huán)境,掌握怎樣創(chuàng)建各種對象,如何修改各種設(shè)置項(xiàng)或者屬性。  
 
55、請問怎樣選擇使用哪種數(shù)據(jù)庫?  
答:那要看具體應(yīng)用的規(guī)模和條件了,一般VFP和access屬于桌面數(shù)據(jù)庫,對于小型的應(yīng)用性能還是不錯(cuò)的。網(wǎng)絡(luò)環(huán)境下一般用SQL Server和Oracle。  
    Oracle數(shù)據(jù)庫以其強(qiáng)大的功能和穩(wěn)定性而著稱,但同時(shí),在開發(fā)和管理方面也存在很多困難,在此總結(jié)了一些Oracle數(shù)據(jù)庫開發(fā)和管理的常見問題,希望能對大家有所幫助。  
 
56、如果發(fā)現(xiàn)表中有壞塊,如何檢索其它未壞的數(shù)據(jù)?  
答:首先需要找到壞塊的ID(可以運(yùn)行dbverify實(shí)現(xiàn)),假設(shè)為1234。運(yùn)行下面的查詢語句查找段名:  
    select segment_name, segment_type, block_id, blocks from dba_extents  
where (1234 between block_id and (block_id + blocks - 1));  
一旦找到壞段名稱,若段是一個(gè)表,則最好建立一個(gè)臨時(shí)表,存放好的數(shù)據(jù)。若段是索引,則刪除它,再重建。  
create table good_table  
as  
select ? from bad_table where rowid not in  
( select /?+index(bad_table, any_index)?/ rowid  
from bad_table where substr( rowid, 1, 8 ) = 1234)

57、如請問如何關(guān)閉FORM調(diào)用REPORT時(shí)的小窗口?  
答:在利用Oracle數(shù)據(jù)庫的Develop 2000設(shè)計(jì)開發(fā)界面的過程中,當(dāng)FORM調(diào)用REPORT時(shí),會顯示一個(gè)背景窗口REPORT BACKGROUD ENGINE,等待FORM對REPORT的調(diào)用,當(dāng)FORM調(diào)用其它REPORT時(shí),也使用這個(gè)后臺服務(wù)器,不論調(diào)用多少個(gè)REPORT,這個(gè)后臺服務(wù)器存在且只有一個(gè)。但當(dāng)FORM與REPORT全部退出后,該窗口仍處于等待狀態(tài),不會關(guān)閉,這時(shí),我們需要手工將其關(guān)閉。  
    我們可以使用以下參數(shù)在FORM調(diào)用REPORT時(shí)不顯示這個(gè)小窗口:  
    Add_Parameter( pl_id, 'ORACLE_SHUTDOWN',TEXT_Parameter, 'Yes' );  
    需要注意的是,該參數(shù)必須加在所有參數(shù)的前面,即它必須為第一個(gè)參數(shù)。

58、請問如何根據(jù)查詢條件在REPORT中動態(tài)顯示記錄?  
答:  
    ⑴. 在REPORT的“數(shù)據(jù)模型”下面的“用戶參數(shù)”中,創(chuàng)建用戶自定義參數(shù)W_CLAUSE,W_CLAUSE為從FORM傳遞過來的查詢條件,數(shù)據(jù)類型為字符型,缺省值為NULL。  
    ⑵. 修改查詢Q_1,將SQL查詢語句修改為select ? from dept &&w_clause。  
    ⑶. 在運(yùn)行報(bào)表時(shí),報(bào)表會自動將符合&&w_clause的查詢條件記錄顯示出來。  
    如果從FORM傳遞過來的w_clause為where dept=1,本報(bào)表的SQL查詢自動轉(zhuǎn)換為:  
    select from dept where dept=1,并在報(bào)表運(yùn)行結(jié)果中顯示符合該查詢條件的記錄,如果從FORM傳遞過來的w_cluase為where to_char(年度,'YYYY.MM')='2000.03',則在報(bào)表運(yùn)行結(jié)果中自動顯示2000年3月份的記錄。

59、在Oracle中,我們?nèi)绾尾榭茨潮砩系募s束?  
答:我們可以使用下面語句從all_constraints視圖中查看某表上的約束:  
    SELECT constraint_name, table_name, r_owner, r_constraint_name FROM all_constraints  
WHERE table_name = 'table_name' and owner = 'owner_name';  
    另一個(gè)視圖ALL_CONS_COLUMNS也包括組成表上約束列的信息。

60、如何將數(shù)據(jù)庫從noarchivelog方式改變?yōu)閍rchivelog方式?  
答:首先打開Init.ora文件,確保存檔日志目標(biāo)指向一有效目錄。  
    然后啟動Server Manager  
    svrmgrl〉 shutdown immediate  
    svrmgrl〉 startup mount  
    svrmgrl〉 alter database archivelog;  
    svrmgrl〉 alter database open;  
    svrmgrl〉 archive log list;  
    在init.ora中設(shè)置參數(shù)archive_log_start=TRUE,它設(shè)置存檔日志為自動啟動。在Oracle 8i中支持多個(gè)存檔日志的目標(biāo),因此參數(shù)修改為log_archive_dest[n],其中n為1到5。

61、在Oracle數(shù)據(jù)庫中,我們?nèi)绾卧黾颖砜臻g的大???  
答: 在開發(fā)Oracle數(shù)據(jù)庫中,我們有兩種方法增加表空間的大?。?  
    ⑴.增加額外的數(shù)據(jù)文件到表空間中  
    例如:alter tablespace users add datafile '/u01/oradata/orcl/users02.dbf' size 25m;  
    ⑵.修改表空間當(dāng)前的數(shù)據(jù)文件  
    例如:alter database datafile '/u01/oradata/orcl/users01.dbf' resize 50M;

62、請問如何在REPORT中設(shè)置動態(tài)顯示域?  
答:在REPORT中設(shè)置動態(tài)顯示域的方法如下:  
    ⑴. 在REPORT的“數(shù)據(jù)模型”下面的“用戶參數(shù)”中,創(chuàng)建用戶自定義參數(shù),如RQ,RQ是從FORM傳遞過來的顯示日期,數(shù)據(jù)類型為字符型。  
    ⑵. 在布局模型中,創(chuàng)建一個(gè)顯示域F_1,在屬性選項(xiàng)板中修改該顯示域的源為用戶自定義參數(shù)RQ,并且設(shè)為“不可見的”。  
    ⑶. 在動態(tài)預(yù)覽中,創(chuàng)建一個(gè)文本域D_1,調(diào)整該文本域的位置和寬度,在該域的內(nèi)容中輸入&&F_1,則該域會動態(tài)顯示用戶定義參數(shù)RQ的值。

63、有關(guān)口令的問題。  
我在Solaris系統(tǒng)上運(yùn)行 Oracle8i 8.1.7企業(yè)版。我創(chuàng)建了兩個(gè)數(shù)據(jù)庫:SUGAR和TestDb。將兩者的remote_login_passwordfile都設(shè)置為 “獨(dú)占(exclusive)”。我試圖以SYSDBA身份連接到TestDb,但未能成功。下面是我的做法:  
$sqlplus /nolog  
SQL> conn sys/change_on_install@testdb  
Connected.(已連接)  
SQL> select * from v$pwfile_users;  
username sysdb sysop  
-----------------------------------------  
internal true true  
sys true true  
SQL> conn sys/change_on_install@testdb as  
sysdba  
ERROR(錯(cuò)誤)  
ORA-01017: invalid username/password; logon  
denied(無效的用戶名/口令,登錄被拒絕)  
Warning: You are on longer connected to  
ORACLE(警告:你已經(jīng)與ORACLE斷開連接)

64、我為什么不能以SYSDBA身份連接到TestDb?  
答:通常Oracle中的SYS口令與INTERNAL口令是同步的,SYS口令存儲于口令文件中。在上述情況下你建立了包含有一個(gè)口令的口令文件,而不是使用缺省的 “change_on_install,”這就是問題之所在。  
希望下面的方法對你有所幫助。首先,建立一個(gè)口令文件,其中包含一個(gè)口令,這個(gè)口令不要與系統(tǒng)口令匹配:  
$ orapwd file=orapw password=foobar  
entries=40  
然后,進(jìn)入服務(wù)器,啟動數(shù)據(jù)庫:  
$ svrmgr  
SVRMGR> connect internal  
Connected.(已連接)  
SVRMGR> startup  
ORACLE instance started.(ORACLE 實(shí)例已啟動)  
Total System Global Area (系統(tǒng)全局區(qū)域大?。?  
193073136 bytes  
Fixed Size (固定大?。?  
69616 bytes  
Variable Size (可變大?。?  
141639680 bytes  
Database Buffers (數(shù)據(jù)庫緩沖區(qū))  
45056000 bytes  
Redo Buffers (重做緩沖區(qū))  
6307840 bytes  
Database mounted. (數(shù)據(jù)庫已加載)  
Database opened.數(shù)據(jù)庫已打開。  
現(xiàn)在使用SYS用戶的口令,以SYS身份連接:  
SVRMGR> connect sys/change_on_install@ora81  
Connected.(已連接)  
成功了?,F(xiàn)在試著以SYSDBA身份連接:  
SVRMGR> connect sys/change_on_install@ora81  
as sysdba;  
ORA-01017: invalid username/password; logon  
denied(無效的用戶名/口令;登錄被拒絕)  
這里出現(xiàn)了你所說的錯(cuò)誤。你的SYS口令為:change_on_install,但口令文件中的口令卻是foobar。SYS用戶是專用的,以SYSDBA身份連接就像是以INTERNAL連接,你必須使用口令文件中的口令。試試這樣做:  
SVRMGR— connect sys/foobar@ora81 as sysdba;  
Connected.(已連接)  
并不是每個(gè)人都需要使用口令文件中的口令;用戶需要使用他們自己的口令。通過授權(quán)SYSDBA給SCOTT,你就可以明白這一點(diǎn):  
SVRMGR> grant sysdba to scott;  
Statement processed.(已處理)  
這個(gè)命令將SCOTT以SCOTT的憑證加入到口令文件中。如果你改變了SCOTT的口令,口令文件也會自動同步改變?,F(xiàn)在,你可以試試以SYSDBA身份連接SCOTT了:  
SVRMGR> connect scott/tiger@ora81 as sysdba;  
Connected.(已連接)  
一切正常?,F(xiàn)在可以使用ALTER USER 命令來改變SYS用戶的口令。  
SVRMGR> alter user sys identified by  
change_on_install;  
Statement processed.(已成功更改)  
SVRMGR&Gt; connect sys/change_on_install@ora81  
as sysdba;  
Connected.(已連接)  
你還可以用change_on_install,因?yàn)楦淖僑YS用戶口令將同時(shí)改變口令文件中的口令。當(dāng)你建立了口令文件后,Oracle數(shù)據(jù)庫在其中放入兩個(gè)賬號:SYS和INTERNAL,并將你在命令行中提供的口令作為這兩個(gè)賬戶的口令。當(dāng)你改變數(shù)據(jù)庫中的SYS用戶口令時(shí),數(shù)據(jù)庫將沖掉口令文件中的SYS和INTERNAL口令。下面操作將顯示口令foobar已經(jīng)是無效的了:  
SVRMGR> connect sys/foobar@ora81 as sysdba;  
ORA-01017: invalid username/password; logon  
denied(無效的用戶名/口令,登錄被拒絕)

65、利用QUERY選項(xiàng)輸出數(shù)據(jù)。  
我知道在Oracle8i中,可以使用QUERY有選擇地輸出表數(shù)據(jù)。我想用EXP命令來實(shí)現(xiàn),但沒有成功。下面是我所寫的命令,以及得到的錯(cuò)誤信息:  
exp ddd/ddd file=/dbf/u11/customer.dmp  
tables=AASC.AST_CUSTOMER_KEEP  
query=\'where CUA_TRANS_DTS \<  
add_months\(sysdate, -6\)\'  
table_export[2]: CUA_TRANS_DTS: not found.(沒有找到)  
答:操作系統(tǒng)不同,用來指定QUERY=參數(shù)的方法也不同。WHERE 語句里面往往有很多特殊的字符,如=.>.<和空格等等。而UNIX和Windows操作系統(tǒng)中的外殼命令提示是不歡迎這些字符的,這些字符將被忽略。你應(yīng)該根據(jù)不同的操作系統(tǒng)采用不用的方法。我一般使用帶有QUERY選項(xiàng)的參數(shù)文件(PARFILE),利用PARFILE,可以不考慮操作系統(tǒng)平臺而使用完全相同的方法。  
下面給出一個(gè)例子。我用select * from all_objects建立了一個(gè)表T,我希望輸出所有object_id 小于5000的行。在Windows中,必須這樣做:  
C:\exp>exp userid=tkyte/tkyte tables=t  
query="""where object_id < 5000"""  
注意:在windows中,需要在WHERE語句的兩端使用三個(gè)雙引號。在UNIX中,必須這樣做:  
$ exp userid=/ tables=t query=\"where  
object_id \< 5000\"  
exp userid=/ tables=t parfile=exp.par  
如果使用包含query="where object_id < 5000"的PARFILE文件,我可以在兩個(gè)系統(tǒng)中使用相同的一個(gè)命令:  
exp userid=/ tables=t parfile=exp.par  
在兩種操作系統(tǒng)中,完全相同。這相對于在不同的平臺中使用不同的QUERY字符串容易多了。

66、DBMS_RANDOM。  
您能否告訴我寫一個(gè)能產(chǎn)生大于0小于1的隨機(jī)數(shù)的隨機(jī)數(shù)產(chǎn)生器的最好方法?  
答:Oracle8 8.0版介紹了DBMS_RANDOM包,Oracle8i 8.1.6版介紹了DBMS_RANDOM包的新功能,但Oracle8i 文檔中沒有詳細(xì)全面介紹其功能。幸運(yùn)的是:有一個(gè)新的DBMS_RANDOM包函數(shù)能夠返回0-1之間的隨機(jī)數(shù)。這個(gè)新函數(shù)是:  
FUNCTION value RETURN NUMBER;  
FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;  
FUNCTION normal RETURN NUMBER;  
FUNCTION string (opt char, len NUMBER)  
RETURN VARCHAR2;  
VALUE函數(shù)的第一種形式返回一個(gè)大于或等于0且小于1的隨機(jī)數(shù);第二種形式返回一個(gè)大于或等于LOW,小于HIGH的隨機(jī)數(shù)。下面是其用法的一個(gè)示例:  
SQL> select dbms_random.value,  
dbms_random.value(55,100)  
2 from dual;  
VALUE DBMS_RANDOM.VALUE(55,100)  
--------------- -----------------------------  
.782821936 79.6367038  
NORMAL函數(shù)返回服從正態(tài)分布的一組數(shù)。此正態(tài)分布標(biāo)準(zhǔn)偏差為1,期望值為0。這個(gè)函數(shù)返回的數(shù)值中有68%是介于-1與+1之間,95%介于-2與+2之間,99%介于-3與+3之間。事實(shí)上,這就是你在清單1中所看到的。  
最后,是STRING函數(shù)。它返回一個(gè)長度達(dá)60個(gè)字符的隨機(jī)字符串。參數(shù)OPT可以是清單2顯示的值中的任何一個(gè)單個(gè)字符。  
關(guān)于這些函數(shù)及DBMS_RANDOM包的文件都包含在SQLPlus中:  
select text  
from all_source  
where name = 'DBMS_RANDOM' and type = 'PACKAGE' order by line;

67、連接次序與謂詞求值。  
在下面的查詢中,WHERE 語句的哪一部分先執(zhí)行?  
Select field names from emp, dept  
where emp.dept_num = dept.num and  
emp.name Like 'S%' and dept.name='IT';  
答:執(zhí)行次序隨已有的索引、統(tǒng)計(jì)、和session/init.ora參數(shù)的不同而變化。  
假定已有一個(gè)建立在DEPT(name)和EMP(dept_num)上的索引。假定優(yōu)化器認(rèn)為DEPT是唯一的,它可能按下面的順序進(jìn)行操作:  
利用建立在DEPT(name)上的索引查找dept列  
利用建立在EMP(dept_num)上的索引查找匹配的emp列(即連接emp.dept_num = dept.num)  
依據(jù)建立在emp.ename like 'S%'進(jìn)行過濾  
現(xiàn)在,我們假定沒有建立在EMP(dept_num)上的索引,也沒有建立在DEPT(name)上的索引,而存在建立在EMP(name)和DEPT(num)上的索引。優(yōu)化器可能按下面的次序進(jìn)行操作:  
利用建立在EMP(name)上的索引找到帶有S的EMPS  
利用建立在DEPT(num)上的索引找到匹配項(xiàng)  
根據(jù)dept.name = 'IT'過濾結(jié)果  
謂詞求值的次序是不確定的,可以隨時(shí)間的改變而改變,并由優(yōu)化器決定。不要假定任何事情會按一定的次序發(fā)生。如果你那么做,隨著時(shí)間的推移,你的應(yīng)用程序可能會出現(xiàn)一些看起來非常奇怪的錯(cuò)誤??匆韵碌睦樱航⒁粋€(gè)表,輸入一些數(shù)據(jù)。當(dāng)X='a’時(shí),第二列的數(shù)據(jù)“Y”是一個(gè)數(shù)值,當(dāng)X='b’時(shí),“Y”不是數(shù)字。  
SQL> create table t ( x varchar2(1), y varchar2(1) );  
Table created.  
SQL> insert into t values ( 'a', '1' );  
1 row created.  
SQL> insert into t values ( 'b', 'x' );  
1 row created.  
現(xiàn)在根據(jù)這個(gè)表運(yùn)行一個(gè)查詢:查找滿足x='a',y=1的行。  
SQL> select * from t where x = 'a' and  
y = 1;  
ERROR:  
ORA-01722: invalid number  
no rows selected(錯(cuò)誤,無效的數(shù)字,沒有選擇任何行)  
呦,沒有成功。在這種情況下,數(shù)據(jù)庫首先執(zhí)行Y=1,當(dāng)找到Y(jié)='X'的行后,很顯然,它不能將'X'轉(zhuǎn)換為一個(gè)數(shù)字,所以失敗了。而下面的程序?qū)⒔o出不同的結(jié)果:  
SQL> analyze table t compute statistics;  
Table analyzed.(表已經(jīng)分析過)  
SQL> select * from t where x = 'a' and  
y = 1;  
X Y  
- -  
a 1  
使用不同的優(yōu)化器模式,成功了!為什么?優(yōu)化器說:“嘿,檢查x= 'a'要比檢查y=1來得快,因?yàn)樵趛=1中有一個(gè)將y從字符變?yōu)閿?shù)字的轉(zhuǎn)換。所以,我先檢查x= 'a',然后再檢查y=1?!?  
這個(gè)例子說明謂詞執(zhí)行的次序可能是不確定的,你不能指望有一種特定的執(zhí)行次序。也就是說,當(dāng)你依靠一個(gè)隱含的轉(zhuǎn)換時(shí),必須非常謹(jǐn)慎。

68、顯示SGA--fixed size(固定大?。┡cvariable size(可變大小)。  
當(dāng)在svrmgr提示符下運(yùn)行 “show SGA”時(shí),fixed size和variable size是什么意思?  
答:fixed size就是SGA中固定組件(它在編譯oracle 數(shù)據(jù)庫本身時(shí)就固定于其中)的大小。它是固定大小的內(nèi)存,用來指向SGA的其它部分。SGA這一部分的大小是不能改變的。  
variable size指分配的內(nèi)存塊大小可變。SGA的可變塊,分為共享池、大池、JAVA池、游標(biāo)區(qū)和其他結(jié)構(gòu)。  

上述內(nèi)容就是數(shù)據(jù)庫原理疑難問題解答的示例分析,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:數(shù)據(jù)庫原理疑難問題解答的示例分析
文章出自:http://muchs.cn/article2/piohic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、App設(shè)計(jì)、域名注冊、網(wǎng)站設(shè)計(jì)、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)