關系數據庫系統與文件數據庫系統的區別如下:
(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語句逐一從游標中獲取記錄,並賦給主變量,交由主語言進一步處理。