資料庫(database) 是儲存有組織的資料的容器(通常是乙個檔案或一組檔案)。
理解資料庫的一種最簡單的辦法是將其想象為乙個檔案櫃。
此檔案櫃是乙個存放資料的物理位置,不管資料是什麼以及如何組織的。
資料庫軟體應稱為dbms(資料庫管理系統),如 mysql。資料庫是通過dbms建立和操縱的容器。
在你將資料放入自己的檔案櫃時,並不是隨便將它們扔進某個抽屜就完事了,而是在檔案櫃中建立檔案,然後將相關的資料放入特定的檔案中。
在資料庫領域中,這種檔案稱為表。表是一種結構化的檔案,可用來儲存某種特定型別的資料。表可以儲存顧客清單、產品目錄,或者其他資訊清單。
表(table)是某種特定型別資料的結構化清單。
表名具有唯一性,表示在同乙個資料庫中的表的名稱具有唯一性。注意:在相同資料庫中不能兩次使用相同的表名,但在不同的資料庫中卻可以使用相同的表名。
表具有一些特性,這些特性定義了資料在表中如何儲存,如可以儲存什麼樣的資料,資料如何分解,各部分資訊如何命名,等等。描述表的這組資訊就是所謂的模式,模式可以用來描述資料庫中特定的表以及整個資料庫(和其中表的關係)。
模式描述了表中資料的型別、組織方式、表間關係等。
表由列組成。列中儲存著表中某部分的資訊。
列(column) 是表中的乙個字段。所有表都是由乙個或多個列組成的。
資料庫中每個列都有相應的資料型別。
資料型別限制可儲存在列中的資料種類
(例如,防止在數值字段中錄入字元值)。資料型別還幫助正確地排序資料,並在優化磁碟使用方面起重要的作用。因此,在建立表時必須對資料型別給予特別的關注。
表中的資料是按行儲存的,所儲存的每個記錄儲存在自己的行內。行是表中的乙個記錄。
表中每一行都應該有可以唯一標識自己的一列(或一組列)。乙個顧客表可以使用顧客編號列,而訂單表可以使用訂單id,雇員表可以使用雇員id或雇員社會保險號。
主鍵(primary key)是一列(或一組列),其值能夠唯一區分表中每個行。
表中的任何列都可以作為主鍵,只要它滿足以下條件(mysql本身強制實施的。
):
任意兩行都不具有相同的主鍵值;
每個行都必須具有乙個主鍵值(主鍵列不允許null值)。
主鍵通常定義在表的一列上,但這並不是必需的,也可以一起使用多個列作為主鍵。在使用多列作為主鍵時,上述條件必須應用到構成主鍵的所有列,所有列值的組合必須是唯一的(但單個列的值可以不唯一)。
除mysql強制實施的規則外,應該堅持的幾個普遍認可的最好習慣為:
不更新主鍵列中的值;
不重用主鍵列的值;
不在主鍵列中使用可能會更改的值。(例如,如果使用乙個名字作為主鍵以標識某個**商,當該**商合併和更改其名字時,必須更改這個主鍵。)
sql(發音為字母s-q-l或sequel)是結構化查詢語言(structured query language)的縮寫。sql是一種專門用來與資料庫通訊的語言。
sql有如下的優點。
sql不是某個特定資料庫**商專有的語言。幾乎所有重要的dbms都支援sql,所以,學習此語言使你幾乎能與所有資料庫打交道。
sql簡單易學。它的語句全都是由描述性很強的英語單詞組成,而且這些單詞的數目不多。
sql儘管看上去很簡單,但它實際上是一種強有力的語言,靈活使用其語言元素,可以進行非常複雜和高階的資料庫操作。
面試基礎知識 資料庫
事務是指作為單個邏輯工作單元執行的一系列操作,可以被看作乙個單元的一系列sql語句的集合。要麼完全地執行,要麼完全地不執行。如果不對資料庫進行併發控制,可能會產生 髒讀 非重複讀 幻像讀 丟失修改的異常情況。同一時間,只允許乙個事務請求同一資料,不同的事務之間彼此沒有任何干擾。比如a正在從一張銀行卡...
資料庫基礎知識 資料庫系統的型別
層級資料庫 由樹實現 網狀資料庫 由圖實現 缺點 需要使用者建立指標來維護,結構描述複雜 資料庫檢索操作依賴於由指標指示的路徑 逐一記錄的操作,不能有效支援記錄集合的操作。關聯式資料庫 由表實現 優點 資料之間的關聯關係由table中屬性的值來表徵,結構描述簡單 資料檢索操作不依賴於路徑資訊或過程資...
資料庫基礎知識 概念篇
1.資料庫,伺服器,表關係 什麼是資料庫 資料庫是資料的集合,具有統一的結構形式並存放於統一的儲存介質內,是多種應用資料的整合,並可被各個應用程式所共享。2.最基礎的建庫 表 插入資料 查詢資料 建立資料庫 create database name 使用資料庫 use database 建立表 cr...