一、插入數(shù)據(jù)前必須使用USE選擇操作的數(shù)據(jù)庫(kù)嗎
插入數(shù)據(jù)前必須使用USE選擇操作的數(shù)據(jù)庫(kù),原因在于 SQL Server 或 MySQL 等數(shù)據(jù)庫(kù)管理系統(tǒng)中可以存在多個(gè)數(shù)據(jù)庫(kù),而每個(gè)數(shù)據(jù)庫(kù)中都可能包含有相同名稱(chēng)的表格。因此,如果沒(méi)有指定要操作的數(shù)據(jù)庫(kù),就無(wú)法確定具體是哪一個(gè)數(shù)據(jù)庫(kù)中的表格需要執(zhí)行插入操作。一般情況下,在操作數(shù)據(jù)庫(kù)之前,需要使用 USE 命令來(lái)指定要使用的數(shù)據(jù)庫(kù),才能執(zhí)行后續(xù)的 SQL 命令。
二、數(shù)據(jù)庫(kù)的特征
1、數(shù)據(jù)結(jié)構(gòu)化
數(shù)據(jù)庫(kù)采用數(shù)據(jù)結(jié)構(gòu)化的方式,將數(shù)據(jù)以表格形式組織起來(lái),相互獨(dú)立的文件的記錄內(nèi)部是有結(jié)構(gòu)的,這是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的根本區(qū)別。傳統(tǒng)文件的最簡(jiǎn)單形式是等長(zhǎng)同格式的記錄集合。
2、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充
數(shù)據(jù)庫(kù)系統(tǒng)從整體角度描述數(shù)據(jù),數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此數(shù)據(jù)可以被多個(gè)用戶(hù)、多個(gè)應(yīng)用共享使用,數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性。數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫(kù)系統(tǒng)彈性大,易于擴(kuò)充,可以適應(yīng)各種用戶(hù)要求。
3、數(shù)據(jù)的獨(dú)立性高
數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。物理獨(dú)立性是指用戶(hù)的應(yīng)用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的,也就是說(shuō),數(shù)據(jù)在磁盤(pán)上的數(shù)據(jù)庫(kù)中的存儲(chǔ)是由DBMS管理的,用戶(hù)程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu)。邏輯獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶(hù)程序也可以不變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),從而簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。
4、數(shù)據(jù)由DBMS統(tǒng)一管理和控制
數(shù)據(jù)庫(kù)系統(tǒng)采用集中式的方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,由DBMS統(tǒng)一進(jìn)行建庫(kù)、操作和控制,使數(shù)據(jù)的安全性、完整性、并發(fā)控制和數(shù)據(jù)庫(kù)恢復(fù)得到保證。為此,DBMS還必須提供以下幾方面的數(shù)據(jù)控制功能:
數(shù)據(jù)的安全性(Security)保護(hù):數(shù)據(jù)的安全性是指保護(hù)數(shù)據(jù)以防止不合法的使用造成數(shù)據(jù)的泄密和破壞。使每個(gè)用戶(hù)只能按規(guī)定,對(duì)某些數(shù)據(jù)以某些方式進(jìn)行使用和處理。數(shù)據(jù)的完整性(Integrity)檢查:數(shù)據(jù)的完整性指數(shù)據(jù)的正確性、有效性和相容性。完整性檢查將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿(mǎn)足一定的關(guān)系。并發(fā)(Concurrency)控制:當(dāng)多個(gè)用戶(hù)的并發(fā)進(jìn)程同時(shí)存取、修改數(shù)據(jù)庫(kù)時(shí),可能會(huì)發(fā)生相互干擾而得到錯(cuò)誤的結(jié)果,或使得數(shù)據(jù)庫(kù)的完整性遭到破壞,因此必須對(duì)多用戶(hù)的并發(fā)操作加以控制和協(xié)調(diào)。數(shù)據(jù)庫(kù)恢復(fù)(Recovery):計(jì)算機(jī)系統(tǒng)的硬件故障、軟件故障、操作員的失誤,以及故意的破壞會(huì)影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫(kù)部分或全部數(shù)據(jù)的丟失。DBMS必須具有將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱(chēng)為完整狀態(tài)或一致?tīng)顟B(tài))的功能,這就是數(shù)據(jù)庫(kù)的恢復(fù)功能。數(shù)據(jù)庫(kù)可以供各種用戶(hù)共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性,DBMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶(hù)同時(shí)使用數(shù)據(jù)庫(kù)時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。
延伸閱讀1:SQL數(shù)據(jù)庫(kù)的數(shù)據(jù)體系結(jié)構(gòu)
SQL數(shù)據(jù)庫(kù)的數(shù)據(jù)體系結(jié)構(gòu)基本上是三級(jí)結(jié)構(gòu),但使用術(shù)語(yǔ)與傳統(tǒng)關(guān)系模型術(shù)語(yǔ)不同。在SQL中,關(guān)系模式(模式)稱(chēng)為“基本表”(base table);存儲(chǔ)模式(內(nèi)模式)稱(chēng)為“存儲(chǔ)文件”(stored file);子模式(外模式)稱(chēng)為“視圖”(view);元組稱(chēng)為“行”(row);屬性稱(chēng)為“列”(column)。