一、數據庫基礎
- 什麼是數據庫
數據庫這個術語的用法有很多,有時,它可以表示存放數據的地方;有時又可以表示爲數據庫管理系統;還可以表示爲安裝數據庫服務端的服務器。
數據庫是什麼
簡單來說,數據庫就是一個倉庫,這個倉庫是一個存放數據的物理位置,將數據按照一定的格式存儲起來,你無須關心數據是如何在裏面按照怎樣的方式存儲的。
- 庫(database)
保存有組織的數據的容器(文件夾) - 表(table)
我們將數據存入數據庫時,不是隨便的將數據往倉庫內一丟就行了,而是要在倉庫中創建一個小房間(文件),把數據放在這個房間(文件)中。
表是一種結構化的文件,用來存儲某種特定類型的數據。 - 行(row)
表中的一條記錄(record)表中的數據是按行存儲的,每一行代表一條記錄。 - 列(column)
表中的一個字段(field)。所有的表都是由一個或多個列組成的
一張表就好像一個網格。網格中的每一列存儲着相同種類的信息,每一行存儲着同一個對象的不同信息。
表中的每個列都有相應的數據類型。數據類型限制了列可以存儲的數據種類。還可以將數據正確排序,並優化磁盤使用。
在創建表時,必須對數據類型給與特別的關注。
- 主鍵(primary key)
表中的每一個行(記錄)都應該有一個可以唯一標識自己的一個列(或多個列聯合)。沒有主鍵,更新或刪除表中特定行很困難,因爲沒有安全的方法保證只修改或刪除你想改的行。
主鍵不是強制要求你定義的,但是,作爲數據庫設計人員,應該保證創建的每個表都具有一個主鍵,以便於後期對數據的增刪改查等。
定義爲主鍵的列應該滿足一下條件:
1.任意兩行都不具有相同的主鍵值;
2.每個行都必須具有一個主鍵值
有時候,我們可以使用多個列聯合作爲主鍵(上面提到的多個列聯合)。在使用多列作爲主鍵時,上述條件必須應用到構成主鍵的所有列,所有列的組合必須是唯一的(單個列的值可以重複)
關於主鍵的使用的一些好習慣:
- 不更新主鍵列中的值
- 不重用主鍵列的值
- 不在主鍵列中使用可能會更改的值。(栗子:使用薪資作爲主鍵,薪資隨時可能會更改,這種會隨時更改的數據列不應該作爲主鍵)
- SQL語句
SQL(Structured Query Language)結構化查詢語言。SQL是一種專門用來與數據庫通信的語言。與其他語言相比,SQL由很少的詞組成,這是有意而爲的。設計SQL的目的就是爲了很好地完成一項任務,提供一種從數據庫中讀寫數據的簡單有效的方法。
優點:
- SQL不是某個特定數據庫管理系統獨有的語言。幾乎所有的DBMS都支持SQL。
- SQL簡單易學。
- SQL是一種強有力的語言,靈活,可以進行非常複雜和高級的數據庫操作。