1.什么是數(shù)據(jù)庫,? 數(shù)據(jù)庫是組織形式的信息的集合,,用于替換,,更好地訪問,存儲和操縱,。 也可以將其定義為表,,架構(gòu),視圖和其他數(shù)據(jù)庫對象的集合,。 2.什么是數(shù)據(jù)倉庫,?數(shù)據(jù)倉庫是指來自多個信息源的中央數(shù)據(jù)存儲庫,。 這些數(shù)據(jù)經(jīng)過整合,,轉(zhuǎn)換,,可用于采礦和在線處理,。 3.什么是數(shù)據(jù)庫中的表,?表是一種數(shù)據(jù)庫對象,,用于以保留數(shù)據(jù)的列和行的形式將記錄存儲在并行中,。 4.什么是數(shù)據(jù)庫中的細(xì)分,? 數(shù)據(jù)庫表中的分區(qū)是分配用于在表中存儲特定記錄的空間,。 5.什么是數(shù)據(jù)庫中的記錄,?記錄(也稱為數(shù)據(jù)行)是表中相關(guān)數(shù)據(jù)的有序集合。 6.什么是表中的列,?列是表中的垂直實體,,包含與表中特定細(xì)分關(guān)聯(lián)的所有信息。 7.什么是DBMS,?數(shù)據(jù)庫管理系統(tǒng)是程序的集合,,使用戶能夠存儲,檢索,,更新和刪除數(shù)據(jù)庫中的信息,。 8. DBMS的類型是什么?DBMS有兩種類型: 1.關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS) 2.非關(guān)系數(shù)據(jù)庫管理系統(tǒng) 9.什么是RDBMS,?RDBMS代表- [R elational d atabase中號anagement小號ystem,。 RDBMS是基于關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。 可以使用結(jié)構(gòu)化查詢語言(SQL)訪問關(guān)系數(shù)據(jù)庫中的數(shù)據(jù) 10.在IT行業(yè)中流行的數(shù)據(jù)庫管理系統(tǒng)是什么,?Oracle,,MySQL,Microsoft SQL Server,,PostgreSQL,, Sybase,MongoDB,,DB2和Microsoft Access等,, 11.什么是SQL?SQL概述:SQL代表結(jié)構(gòu)化查詢語言,。它是美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)的標(biāo)準(zhǔn),。 它是用于訪問和操作數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,。 使用SQL,我們可以做的一些動作是創(chuàng)建數(shù)據(jù)庫,,表,,存儲過程(SP), 執(zhí)行查詢,,針對數(shù)據(jù)庫檢索,,插入,,更新,,刪除數(shù)據(jù)。 12. SQL命令有哪些不同類型,?SQL命令分為以下幾種類型: DDL –數(shù)據(jù)定義語言 DML –數(shù)據(jù)處理語言 DQL –數(shù)據(jù)查詢語言 DCL –數(shù)據(jù)控制語言 TCL –交易控制語言 13. SQL中有哪些不同的DDL命令,?DDL命令用于定義或更改數(shù)據(jù)庫的結(jié)構(gòu)。 CREATE:創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫對象 ALTER:更改現(xiàn)有的數(shù)據(jù)庫對象 DROP:刪除數(shù)據(jù)庫和數(shù)據(jù)庫對象 TRUNCATE:從表中刪除所有記錄,,但不刪除其數(shù)據(jù)庫結(jié)構(gòu) RENAME:重命名數(shù)據(jù)庫對象 14. SQL中有哪些不同的DML命令,?DML命令用于管理數(shù)據(jù)庫中存在的數(shù)據(jù),。 SELECT:從數(shù)據(jù)庫中選擇特定數(shù)據(jù) INSERT:將新記錄插入表中 UPDATE:更新現(xiàn)有記錄 DELETE:從表中刪除現(xiàn)有記錄 15. SQL中有哪些不同的DCL命令,?DCL命令用于創(chuàng)建角色,授予權(quán)限以及控制對數(shù)據(jù)庫對象的訪問,。 GRANT:提供用戶訪問權(quán)限 DENY:拒絕用戶權(quán)限 REVOKE:刪除用戶訪問權(quán)限 16. SQL中的TCL命令有哪些不同,?TCL命令用于管理DML語句所做的更改。 COMMIT:將更改寫入并存儲到數(shù)據(jù)庫 ROLLBACK:自上次提交以來還原數(shù)據(jù)庫 17.什么是索引,?索引用于加快查詢的性能,。它可以更快地從表中檢索數(shù)據(jù)。 可以在一個列或一組列上創(chuàng)建索引,。 18.所有不同類型的索引是什么,?索引有三種類型 1.唯一索引:唯一索引通過確保表中沒有兩行數(shù)據(jù)具有相同的鍵值來幫助維護(hù)數(shù)據(jù)完整性。定義主鍵時,,可以自動應(yīng)用唯一索引,。它確保索引鍵列中的值是唯一的。 2.聚集索引:聚集索引對表的物理順序進(jìn)行重新排序,,并根據(jù)鍵值進(jìn)行搜索,。每個表只有一個聚集索引。 3.非聚集索引:非聚集索引不會更改表的物理順序,,并且會保持?jǐn)?shù)據(jù)的邏輯順序,。每個表可以具有許多非聚集索引。 19.群集索引和非群集索引有什么區(qū)別,?SQL中的聚集索引和非聚集索引之間的區(qū)別如下: 聚集索引: 用于從數(shù)據(jù)庫中輕松檢索數(shù)據(jù),,并且速度更快,。 一個表只能有一個聚集索引 它改變了記錄在數(shù)據(jù)庫中的存儲方式,因為它通過設(shè)置為聚集索引的列對行進(jìn)行排序,。 非聚集索引: 與聚集索引相比,,它更慢。 一個表可以具有多個非聚集索引,。 它不會改變其排序方式,,但是會在一個表內(nèi)創(chuàng)建一個單獨的對象,該對象在搜索后指向原始表行,。 20.什么是SQL視圖,?視圖就像邏輯上存儲在數(shù)據(jù)庫中的表的子集。視圖是一個虛擬表,。 它包含類似于真實表的行和列,。視圖中的字段是來自一個或多個實際表的字段。 視圖不包含自己的數(shù)據(jù),。它們用于限制對數(shù)據(jù)庫的訪問或隱藏數(shù)據(jù)復(fù)雜性,。 21.視圖的優(yōu)點是什么?視圖的一些優(yōu)點是 視圖不占空間 視圖用于簡單地檢索需要經(jīng)常執(zhí)行的復(fù)雜查詢的結(jié)果,。 視圖用于限制對數(shù)據(jù)庫的訪問或隱藏數(shù)據(jù)復(fù)雜性,。 22.什么是關(guān)系,它們是什么,?數(shù)據(jù)庫關(guān)系定義為數(shù)據(jù)庫中表之間的連接,。有各種數(shù)據(jù)庫關(guān)系,,即 1.一對一的關(guān)系 2.一對多的關(guān)系 3.多對一的關(guān)系 4.自指關(guān)系 23.什么是查詢,?數(shù)據(jù)庫查詢是從數(shù)據(jù)庫表或表組合中獲取數(shù)據(jù)或信息的請求。 數(shù)據(jù)庫查詢可以是選擇查詢或動作查詢,。 24.什么是子查詢,?子查詢是另一個查詢中的SQL查詢。它是Select語句的子集,, 其返回值用于過濾主查詢的條件,。 25.子查詢的類型是什么,?子查詢有兩種類型: 1.關(guān)聯(lián)的:在SQL數(shù)據(jù)庫查詢中,關(guān)聯(lián)的子查詢是使用外部查詢中的值來完成的子查詢,。因為相關(guān)子查詢要求首先執(zhí)行外部查詢,,所以相關(guān)子查詢必須為外部查詢中的每一行運行一次,。也稱為同步子查詢,。 2.不相關(guān):不相關(guān)子查詢是其中外部查詢和內(nèi)部查詢都彼此獨立的子查詢,。 26.局部變量和全局變量有什么區(qū)別,?局部變量: 局部變量只能在函數(shù)內(nèi)部使用或存在,。這些變量未被任何其他功能使用或引用,。 這些是其他功能未知的,。只要調(diào)用該函數(shù)就可以創(chuàng)建變量。 全局變量: 全局變量可以在整個程序中使用或存在,。在全局中聲明的相同變量不能在函數(shù)中使用,。 每當(dāng)調(diào)用該函數(shù)時就無法創(chuàng)建全局變量。 27.什么是數(shù)據(jù)完整性,?數(shù)據(jù)完整性定義了存儲在數(shù)據(jù)庫中的數(shù)據(jù)的準(zhǔn)確性和一致性,。 它還定義了完整性約束,以在將數(shù)據(jù)輸入到應(yīng)用程序或數(shù)據(jù)庫中時對數(shù)據(jù)執(zhí)行業(yè)務(wù)規(guī)則,。 28.什么是SQL中的自動增量,?這是重要的Oracle DBA面試問題之一。 自動增量關(guān)鍵字使用戶可以創(chuàng)建一個唯一的數(shù)字,,以便在將新記錄插入表中時生成該數(shù) 字,。每當(dāng)使用主鍵時,都可以使用自動遞增關(guān)鍵字,。在Oracle中使用自動遞增關(guān)鍵字 在SQL Server中使用IDENTITY關(guān)鍵字,。 29.什么是臨時表?臨時表是用于臨時存儲數(shù)據(jù)的臨時存儲結(jié)構(gòu),。 30.如何避免查詢中重復(fù)記錄,?SQL SELECT DISTINCT查詢僅用于返回唯一值。它消除了所有重復(fù)的值,。 31.Rename和Alias有什么區(qū)別,?“Rename”是賦予表或列的永久名稱 “Alias”是賦予表或列的臨時名稱,。 32.什么是Join?join是一個查詢,,它從多個表中檢索相關(guān)的列或行,。 33.聯(lián)接的類型有哪些?聯(lián)接的類型如下: 內(nèi)部聯(lián)接 左聯(lián)接 正確加入 外連接 35.內(nèi)部聯(lián)接和外部聯(lián)接之間有什么區(qū)別,?內(nèi)部聯(lián)接:當(dāng)正在比較的兩個(或多個)表之間至少有一些匹配數(shù)據(jù)時,內(nèi)部聯(lián)接將返回行,。 外部聯(lián)接:外部聯(lián)接從兩個表返回行,,這些行包括與一個或兩個表不匹配的記錄。 36.什么是SQL約束,?SQL約束是在數(shù)據(jù)庫中插入,,刪除或更新數(shù)據(jù)時實施一些約束的一組規(guī)則。 37. SQL中可用的約束有哪些,?SQL中的一些約束包括–主鍵,,外鍵,唯一鍵,,SQL非空,,默認(rèn),檢查和索引約束,。 38.什么是唯一約束,?使用唯一約束來確保字段/列中沒有重復(fù)值。 39.什么是主鍵,?一個PRIMARY KEY 約束唯一標(biāo)識數(shù)據(jù)庫表中的記錄,。 參與主鍵約束的所有列均不得包含NULL值。 40.一個表可以包含多個PRIMARY KEY嗎,?簡短的答案是“否”,,一個表不允許包含多個主鍵, 但是它允許一個包含兩個或更多列的復(fù)合主鍵,。 41.什么是復(fù)合 主鍵,?復(fù)合主鍵是在表中的多個列(多個字段的組合)上創(chuàng)建的主鍵。 42.什么是外鍵,?一個FOREIGN KEY是用于兩個表連接在一起的關(guān)鍵,。 一個FOREIGN KEY 的表與鏈接的PRIMARY KEY 另一個表。 43.一個表可以包含多個FOREIGN KEY嗎,?一個表可以有許多 FOREIGN KEY,。 44. UNIQUE和PRIMARY KEY約束有什么區(qū)別?一個表中應(yīng)該只有一個PRIMARY KEY,,而可以有任意數(shù)量的UNIQUE鍵,。 PRIMARY KEY 不允許使用 NULL值,,而Unique鍵則允許使用NULL值。 45.什么是NULL值,?用字段NULL值是沒有值的字段,。甲NULL值是從零值或包含空格的字段不同。 具有NULL值的字段是在記錄創(chuàng)建過程中留為空白的字段,。 假設(shè)表中有一個字段是可選的,,并且可以在不向可選字段添加值的情況下插入記錄 則該字段將以NULL值保存。 46. NULL值,,零和空白之間有什么區(qū)別,?如前所述,空值是沒有值的字段,,該值不同于零值和空格,。 空值是沒有值的字段。 零是數(shù)字,, 空格是我們提供的值,。space的ASCII值為CHAR(32)。 47.如何測試NULL值,?用字段NULL值是沒有值的字段,。NULL值不能與其他NULL值進(jìn)行比較。 因此,,不可能使用比較運算符(例如=,,<或<>)測試NULL值。 為此,,我們必須使用IS NULL和IS NOT NULL運算符,。 SELECT column_names FROM table_name WHERE column_name IS NULL; SELECT column_names FROM table_name WHERE column_name IS NOT NULL; 48.什么是SQL NOT NULL約束?NOT NULL約束用于確保字段中的值不能為NULL 49.什么是CHECK約束,?CHECK約束用于限制一列或多列接受的值,。 例如,“年齡”字段應(yīng)僅包含大于18的值,。 CREATE TABLE EMP_DETAILS(EmpID int NOT NULL, NAME VARCHAR (30) NOT NULL, Age INT CHECK (AGE > 18), PRIMARY KEY (EmpID)); 50.什么是默認(rèn) 約束,? 如果在插入記錄時未提供任何值,則DEFAULT約束用于在列中包括默認(rèn)值,。 51.什么是標(biāo)準(zhǔn)化,?規(guī)范化是表設(shè)計的過程,以最大程度地減少數(shù)據(jù)冗余,。 53.什么是非正規(guī)化,?非規(guī)范化是一種數(shù)據(jù)庫優(yōu)化技術(shù),用于提高數(shù)據(jù)庫基礎(chǔ)結(jié)構(gòu)的性能。 它涉及將冗余數(shù)據(jù)添加到一個或多個表的過程,。 在規(guī)范化的數(shù)據(jù)庫中,,我們將數(shù)據(jù)存儲在單獨的邏輯表中,并嘗試最小化冗余數(shù)據(jù),。 54.什么是存儲過程,?存儲過程是已創(chuàng)建并存儲在數(shù)據(jù)庫中以執(zhí)行特定任務(wù)的SQL語句的集合。 該存儲過程接受輸入?yún)?shù)并對其進(jìn)行處理,,并返回單個值,, 例如數(shù)字或文本值或結(jié)果集(行集)。 55.什么是扳機,?觸發(fā)器是一個SQL過程,,用于響應(yīng)事件(插入,刪除或更新)而啟動操作,。 當(dāng)新雇員添加到Employee_Details表中時,新記錄將在相關(guān)表中創(chuàng)建,, 例如Employee_Payroll,,Employee_Time_Sheet等, 56.解釋SQL數(shù)據(jù)類型,?在SQL Server中,,數(shù)據(jù)庫表中的每一列都有一個名稱和一種數(shù)據(jù)類型。 在創(chuàng)建SQL表時,,我們需要決定在表的每一列中存儲哪種數(shù)據(jù)類型,。 57.可以在BOOLEAN數(shù)據(jù)字段中存儲哪些可能的值? 真與假 58. BYTE數(shù)據(jù)字段中可以存儲的最大值是多少,?一個字節(jié)中可以表示的最大數(shù)字是11111111或255,。 可能的值的數(shù)目是256(即255(最大的可能值)加上1(零)或2 8)。 59. SQL中有哪些運算符,?SQL Operator是保留字,,主要在SQL語句的WHERE子句中使用,以執(zhí)行諸如算術(shù)運算和比較之類的操作,。這些用于在SQL語句中指定條件,。 共有三種類型的運算符。 算術(shù)運算符,、比較運算符,、邏輯運算符 60. SQL Server運行哪個TCP / IP端口?默認(rèn)情況下為1433 61.列出ACID屬性并解釋,?以下是ACID的四個屬性,。這些保證了數(shù)據(jù)庫事務(wù)的可靠處理。 原子性 一致性 隔離 耐用性 62.定義SELECT INTO語句。SELECT INTO語句將數(shù)據(jù)從一個表復(fù)制到新表中,。將使用舊表中定義的列名和類型創(chuàng)建新表,。您可以使用AS子句創(chuàng)建新的列名稱。 SELECT * INTO newtable FROM oldtable WHERE condition; 63. Delete,,Truncate和Drop命令之間有什么區(qū)別,?Delete,Truncate和Drop命令之間的區(qū)別是 Delete命令是DML命令,,用于從表中刪除行,。可以回滾,。 Truncate是DDL命令,,用于刪除表中的所有行并釋放包含表的空間。它不能回滾,。 Drop是DDL命令,,它會刪除完整的數(shù)據(jù)以及表結(jié)構(gòu)(與truncate命令僅刪除行不同)。所有表的行,,索引和特權(quán)也將被刪除,。 64. Delete和Truncate有什么區(qū)別?Delete和Truncate之間的區(qū)別是
65. Union和Union All命令之間有什么區(qū)別,?這是棘手的SQL面試問題之一,。采訪者可能以另一種方式問您這個問題,因為“全聯(lián)盟”優(yōu)于“全聯(lián)盟”有什么優(yōu)勢,。 Union和Union All都將兩個表的結(jié)果連接在一起,,但是這兩個查詢處理重復(fù)表的方式不同。 聯(lián)合:省略重復(fù)的記錄,,僅返回兩個或多個select語句的不同結(jié)果集,。 全部合并: 返回不同選擇語句結(jié)果集中的所有行,包括重復(fù)項,。 在性能方面,,Union All比Union更快,,因為Union All不會刪除重復(fù)項。聯(lián)合查詢檢查重復(fù)值,,這會花費一些時間來刪除重復(fù)記錄,。 假定:表1有10條記錄,表2 有10條記錄,。兩個表中的最后一條記錄是相同的,。 如果運行聯(lián)合查詢。 SELECT * FROM Table1UNIONSELECT * FROM Table2 輸出:共19條記錄 如果運行聯(lián)合查詢,。 SELECT * FROM Table1UNION ALLSELECT * FROM Table2 輸出:共20條記錄 兩個表中所有列的數(shù)據(jù)類型應(yīng)相同,。 66. SQL中的CLAUSE是什么?SQL CLAUSE通過為SQL查詢提供條件來幫助限制結(jié)果集,。 CLAUSE有助于從整個記錄集中過濾行,。SQL子句在哪里和擁有。 67. Have和Where子句有什么區(qū)別,?Where子句用于從指定特定條件的數(shù)據(jù)庫中獲取數(shù)據(jù),,而Haveing子句 與“ GROUP BY”一起使用以獲取符合Aggregate函數(shù)指定的特定條件的數(shù)據(jù)。 Where子句不能與Aggregate函數(shù)一起使用,,但是Haveing子句可以,。 68. SQL中的聚合函數(shù)是什么?SQL聚合函數(shù)返回單個值,,該值是根據(jù)列中的值計算得出的。 SQL中的一些匯總函數(shù)如下
AVG()–此函數(shù)返回平均值 COUNT()–此函數(shù)返回行數(shù) MAX()–此函數(shù)返回最大值 MIN()–此函數(shù)返回最小值 ROUND()–此函數(shù)將數(shù)字字段舍入為指定的小數(shù)位數(shù) SUM()–此函數(shù)返回總和 69. SQL中的字符串函數(shù)是什么,?SQL字符串函數(shù)主要用于字符串操作,。 一些廣泛使用的SQL字符串函數(shù)是
LEN()–返回文本字段中值的長度 LOWER()–將字符數(shù)據(jù)轉(zhuǎn)換為小寫 UPPER()–將字符數(shù)據(jù)轉(zhuǎn)換為大寫 SUBSTRING()–它從文本字段中提取字符 LTRIM()–從字符串開頭刪除所有空格 RTRIM()–刪除字符串末尾的所有空格 CONCAT()–串聯(lián)函數(shù)將多個字符串組合在一起 REPLACE()–更新字符串的內(nèi)容。 70.什么是用戶定義的功能,?顧名思義,,這些是由用戶根據(jù)其要求編寫的。 用戶定義的函數(shù)是編寫為在需要時使用邏輯的函數(shù),。 71.什么是用戶定義功能的所有類型,?用戶定義的函數(shù)有三種類型,即 ·標(biāo)量函數(shù) ·內(nèi)聯(lián)表值函數(shù) ·多語句值函數(shù) 標(biāo)量函數(shù)返回單位,,變體定義了return子句,。 內(nèi)聯(lián)表值函數(shù)和多語句值函數(shù)以返回表的形式返回表。 72.什么是自加入,?自聯(lián)接是表與自身聯(lián)接的聯(lián)接,,特別是當(dāng)表具有引用其自己的主鍵的外鍵時。 73.什么是交叉加入,?如果未與交叉聯(lián)接一起使用WHERE子句,,則交叉聯(lián)接將產(chǎn)生一個結(jié)果集 該結(jié)果集是第一個表中的行數(shù)乘以第二個表中的行數(shù)。 這種結(jié)果稱為笛卡爾積。如果假設(shè)在交叉聯(lián)接中使用Where子句 則查詢將像內(nèi)部聯(lián)接一樣工作,。 74.什么是整理,?歸類定義為一組規(guī)則,這些規(guī)則確定如何對字符數(shù)據(jù)進(jìn)行排序和比較,。 使用定義正確字符序列的規(guī)則以及用于指定區(qū)分大小寫,,字符寬度,重音符號,, 假名字符類型的選項對字符數(shù)據(jù)進(jìn)行排序,。 75.歸類敏感性有哪些不同類型?排序規(guī)則敏感性的不同類型如下 :區(qū)分大小寫:A和a以及B和b,。 假名敏感性:日語假名字符,。 寬度靈敏度:單字節(jié)字符和雙字節(jié)字符。 口音敏感度,。 實用的SQL查詢面試問題(帶有答案的SQL Server查詢示例) 在這一部分中,,我們將看到SQL實踐問題,其中包含復(fù)雜的SQL查詢面試問題和基本的SQL面試問題,。 讓我們看一下重要的SQL查詢以進(jìn)行面試 76.如何從表中獲取唯一記錄,?通過使用DISTINCT關(guān)鍵字,我們可以從表中獲得唯一記錄 SELECT DISTINCT Col1, Col2 from Table1
|
UPDATE Employee_Details set Salary = 7500 where Employee_Name = ‘yuhan’;
Select * from table_name;
查看特定數(shù)據(jù)庫上可用的表
USE TestDBGOSELECT * FROM sys.TablesGO
SQL Delete語句用于從表中刪除記錄,。
DELETE FROM table_name WHERE some_column=some_value;
DELETE from Players WHERE Player_Name = ‘Sachin’
通過使用DISTINCT關(guān)鍵字,,我們每個名字只能獲得一次。
SELECT DISTINCT employee_name FROM employee_table;
通過使用SQL AS關(guān)鍵字
SELECT column_name AS new_name FROM table_name;
SQL SELECT語句的順序如下
選擇,從,,在哪里,,分組依據(jù),,擁有,訂購依據(jù),。
在SQL中,有一個名為GetDate()的內(nèi)置函數(shù),,該函數(shù)有助于返回當(dāng)前日期,。
SELECT FirstName, LastName FROM Employee_Details;
SP_RENAME TABLE 'SCOREBOARD', 'OVERALLSCORE'
重命名表名和列名
sp_rename OldTableName,NewTableName
sp_rename 'TableName.OldColumnName', 'NewColumnName'
要從表中選擇所有偶數(shù)記錄:
Select * from table where id % 2 = 0
要從表中選擇所有奇數(shù)記錄:
Select * from table where id % 2 != 0
SQL Case語句允許在SELECT語句中嵌入if-else like子句。
select case when null = null then 'True' else 'False' end as Result;
該查詢返回“ False”,。在上述問題中,我們可以看到null = null不是比較null值的正確方法,。為了將一個值與null進(jìn)行比較,,我們在SQL中使用IS運算符。
所以正確的方法如下
select case when null is null then 'True' else 'False' end as Result;
select case when null is null then 'Queries In SQL Server' else 'Queries In MySQL' end as Result;
該查詢將返回“ SQL Server中的查詢”,。
單行注釋:單行注釋以兩個連續(xù)的連字符(–)開頭,,并以該行的結(jié)尾結(jié)束,。
多行注釋:多行注釋以/*開頭,并以*/結(jié)尾,。/*和*/之間的任何文本都將被忽略。
這三個功能以相同的方式工作。這些函數(shù)用于將NULL值替換為另一個值,。Oracle開發(fā)人員使用NVL函數(shù),,MySQL開發(fā)人員使用IFNULL函數(shù),而SQL Server開發(fā)人員使用ISNULL函數(shù),。
假設(shè)列中的某些值是NULL,。
如果在下面的語句中運行,則結(jié)果為NULL
SELECT col1 * (col2 + col3) FROM Table1
假設(shè)col3中的任何值為NULL,,那么正如我所說的,,您的結(jié)果將為NULL,。
為了克服這個問題,我們使用NVL()函數(shù),,IFNULL()函數(shù),,ISNULL()函數(shù)。
甲骨文:
SELECT col1 * (col2 + NVL(col3,0)) FROM Table1
MySQL:
SELECT col1 * (col2 + IFNULL(col3,0)) FROM Table1
另外,,您可以使用COALESCE()函數(shù)
SELECT col1 * (col2 + COALESCE(col3,0)) FROM Table1
SQL Server:
SELECT col1 * (col2 + ISNULL(col3,0)) FROM Table1
它是AKA后端測試或數(shù)據(jù)測試。
數(shù)據(jù)庫測試涉及驗證前端數(shù)據(jù)與后端數(shù)據(jù)的完整性,。
它驗證架構(gòu),,數(shù)據(jù)庫表,列,,索引,,存儲過程,觸發(fā)器,,數(shù)據(jù)重復(fù),,孤立記錄,垃圾記錄,。
它涉及更新數(shù)據(jù)庫中的記錄并在前端進(jìn)行驗證,。
GUI測試是AKA用戶界面測試或前端測試,。
數(shù)據(jù)庫測試是AKA后端測試或數(shù)據(jù)測試,。
GUI測試處理向用戶開放以進(jìn)行交互的所有可測試項目,例如菜單,,窗體等,。
數(shù)據(jù)庫測試處理通常對用戶隱藏的所有可測試項目。
正在執(zhí)行GUI測試的測試人員無需了解結(jié)構(gòu)化查詢語言
正在執(zhí)行數(shù)據(jù)庫測試的測試人員無需了解結(jié)構(gòu)化查詢語言
GUI測試包括使文本框,,復(fù)選框,,按鈕,下拉菜單,,表單等無效,,主要是整個應(yīng)用程序的外觀
數(shù)據(jù)庫測試涉及驗證前端數(shù)據(jù)的完整性和后端數(shù)據(jù)的完整性結(jié)束。它驗證架構(gòu),,數(shù)據(jù)庫表,,列,索引,,存儲過程,,觸發(fā)器,數(shù)據(jù)重復(fù),,孤立記錄,,垃圾記錄,。它涉及更新數(shù)據(jù)庫中的記錄并在前端進(jìn)行驗證。
|