SQL,全稱Structured Query Language,結構化查詢語言。
SQL是操作關系數據庫的標准語言,是所有關系數據庫通用的。
SQL只是制定的一個標准,由具體的關系數據庫廠商來實現,所以某些關系數據庫可能不支持SQL中的少數語句。
各關系數據數據庫在SQL基礎上進行一些擴展,增加一些額外的功能,這些額外的功能是該種關系數據庫特有的,只能在該種數據庫中使用,稱為xx數據庫的特性。
如果想讓程序跨關系數據庫,盡量使用SQL,不要使用某種關系數據庫特定的功能/語句。
常見的關系型數據庫有Oracle、MySQL,
Oracle性能極好,但比較昂貴,大公司用得多;
MySQL開源免費,體積小,性能也不錯,中小公司用得多。
數據表是存儲數據的邏輯單元。
數據表中,一行稱為一條記錄,一列稱為一個字段。
主鍵:唯一標識此條記錄。
外鍵:一般使用其它的表的主鍵作為外鍵,用於關聯其它數據表
SQL語句大致可分為:(待修改)
- 查詢語句:select
- DML(Data Manipulation Language,數據操作)語句:操作記錄,包括insert、update、delete。
- DDL(Data Definition Language,數據定義)語句:操作數據庫對象(一般是表、約束、索引、視圖),包括create、alter、drop、truncate。
- DCL(Data Control Language,數據控制)語句:操作數據庫用戶權限,包括grant、revoke。
- 事務控制語句:包括commit、rollback、savepoint。
數據庫對象:
- 表table
- 數據字典:即系統表,一張特殊的表,存儲數據庫的相關信息,一般由DBMS維護。
- 約束constraint:執行數據校驗,保證數據完整性
- 視圖view:表中數據的邏輯顯示,視圖本身並不存儲數據
- 索引index:相當於書的目錄,用於提高查詢性能
- 函數function:完成一次特定的計算
- 存儲過程procedure:用於完成一次完整的業務處理
- 觸發器trigger:相當於一個事件監聽器,當數據庫發生特定事件后,觸發器被觸發,完成相應處理
函數、存儲過程、觸發器屬於數據庫編程的內容,需要大量使用數據庫特性。
數據庫標識符:
- 用於定義表名、列名、變量名等
- 可包含字母、數字、三個特殊字符(#_$),必須以字母開頭
- 不能使用當前數據庫系統的關鍵字、保留字
通常使用多個單詞連接而成,單詞之間用下划線連接。