關係資料庫系統與檔案資料庫系統的區別如下:
(a)關係資料庫系統的主要特徵是資料的結構化,而檔案資料庫系統是資料的非結構化。
(b)關係資料庫系統中,使用者看到的邏輯結構是二維表,而檔案資料庫系統中,基本元素是檔案。
(c)檔案資料庫系統可以實現多**檔案管理,支援c/s工作模式。
acid,指資料庫事務正確執行的四個基本要素的縮寫。包含:原子性(atomicity),一致性(consistency),隔離性(isolation),永續性(durability)。
資料查詢:select select * from table where 條件語句
資料操作:insert into table(欄位名1,欄位名2...)values(值1,值2...)
update table set 欄位名=字段值 where 條件語句
delete from table where 條件表示式
資料定義:create table tablename(欄位1,欄位2...)
drop table tablename
資料控制:grant 《系統許可權》|《角色》[,《系統許可權》|《角色》]...to 《使用者名稱》|《角色》|public[,《使用者名稱》|《角色》]...[with admin option]
revoke 《系統許可權》|《角色》[,《系統許可權》|《角色》]...from 《使用者名稱》|《角色》|public[,《使用者名稱》|《角色》]...
內連線和外連線的區別
儲存過程,sql語句執行的時候要先編譯,然後再被執行。在大型資料庫系統中,為了提高效率,將為了完成特定功能的sql語句集進行編譯優化後,儲存在資料庫伺服器中,使用者通過指定儲存過程的名字來呼叫執行。
在資料庫中,鎖主要是堆資料進行讀/寫的一種保護機制,從資料庫系統的角度來看,一般可以將鎖分為共享鎖和互斥鎖。共享鎖簡稱s所,也叫讀鎖。互斥鎖簡稱x鎖,也叫排他鎖,用於資料的修改操作。
常見的正規化有1nf,2nf,3nf,bcnf,以及4nf。
檢視是由從資料庫的基本表中選取出來的資料組成的邏輯視窗,不同於基本表。它是乙個虛表,在資料庫中,存放的只是檢視的定義而已,不存放檢視包含的資料項,這些專案仍然存放在原來的基本表結構中。
觸發器是一種特殊型別的儲存過程,它由事件觸發,而不是程式呼叫或手工啟動。當資料庫有特殊的操作時,對這些操作由資料庫中的事件來出發,自動完成這些sql語句。使用觸發器可以用來保證資料的有效性和完整性,完成比約束更複雜的資料約束。
事前觸發發生在事件之前驗證一些條件或進行一些準備工作;事後觸發發生在事件發生之後,做收尾工作,保證事務的完整性。而事前觸發可以獲得之前和新的字段值。語句級觸發器可以在語句執行之前或之後執行,而行級觸發在觸發器所影響的每一行觸發一次。
索引是一種提高資料庫查詢速度的機制,它是乙個在資料庫的表或檢視上按照某個關鍵字段的值,公升序或降序排序建立的物件。當使用者查詢索引欄位時,它可以快速地執行檢索操作,借助索引,在執行查詢的時候不需要掃瞄整個表就可以快速的找到所需要的資料。索引是與表或檢視關聯的磁碟上的結構,即對錶中列值排序的一種結構,可以加快從表或檢視中檢索行的速度,執行查詢時不必掃瞄整個表就能更快的訪問資料庫中的資訊。
索引結構一般b樹,b+樹,當然也可以使雜湊表。建立索引可以大大提高系統的效能:
(a)通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。
(b)通過索引,可以大大加快資料的檢索速度。
(c)通過索引可以加速表和表之前的連線,從而有效實現資料的參考完整性。
(d)在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間。
(e)通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。
b+樹最常用,效能也不差,用於範圍查詢和單值查詢都可以。特別是範圍查詢,非得用b+樹這種順序的才可以了。
hash的如果只是對單值查詢的話速度比b+樹快一些。
點陣圖的使用情況很侷限,只有很少的情況才能用,一定要確定真正合適使用這種索引採用(值的型別很少並且需要復合查詢),否則建立一大堆位圖一點意義都沒有了。
游標(cursor)是系統為使用者開設的乙個資料緩衝區,存放sql語句的執行結果。每個游標區都有乙個名字,使用者可以用sql語句逐一從游標中獲取記錄,並賦給主變數,交由主語言進一步處理。
程式設計師面試筆試寶典學習記錄(四)(網路相關知識)
網路模型 c s和b s的區別,主要以下部分 a 硬體要求不同,c s一般建立在專用的網路上,是小範圍的網路環境 而b s一般構建在廣域網上,不需要專門的網路硬體環境,只要能夠接入網路即可。b s架構應用中,客戶端只需要能夠執行瀏覽器即可。b 架構要求不同,c s程式更加注重流程,需要對許可權多層次...
程式設計師面試寶典學習記錄001
1,分析 include using namespace std int func int x return count int main 求輸出?看到這個題目之後就不知道怎麼弄了,我就在想乙個數和比它小1的數相與的結果是什麼呢,想不明白。於是拿出了最笨的辦法,死算。我先求出了9999的二進位制形式...
java程式設計師面試筆試寶典8 3排序
1如何進行選擇排序 1 對於給定的一組紀錄,經過第一輪比較得到最小的紀錄將該紀錄與第乙個紀錄的位置進行交換。2 接著對不包括第乙個紀錄以外的其他紀錄進行第二輪比較,得到最小的紀錄並與第二個紀錄進行位置交換。3 重複該過程,直到進行比較的紀錄只有乙個時為止。以陣列為例 public class tes...