? ? ? 數(shù)據(jù)庫術(shù)語清單:了解數(shù)據(jù)庫的基本概念和相關(guān)術(shù)語(必備的基礎(chǔ)),從而深入學習Mysql和SQL。
1. 什么數(shù)據(jù)庫(database)?
數(shù)據(jù)庫(database):顧名思義,就是以某種有組織的方式存儲數(shù)據(jù)的repository。
2.為什么要用數(shù)據(jù)庫存數(shù)據(jù)?
主要有三個原因:
? ? ? ? ?1.可以持久性存儲:相對于以前的數(shù)據(jù)存儲技術(shù)來說用數(shù)據(jù)庫來存儲時間更久。
? ? ? ? ?2.數(shù)據(jù)讀寫優(yōu)化:這是數(shù)據(jù)庫最顯著的特點,即增刪改查(CURD)相對于傳統(tǒng)的數(shù)據(jù)存儲技術(shù)要快的多
? ? ? ? ?3.保證了數(shù)據(jù)的有效性:數(shù)據(jù)庫管理系統(tǒng)(DBMS)可以對數(shù)據(jù)進行有效性檢查。
3.什么是表(table)?
額。。。。這個東西用術(shù)語來定義有點難理解。不妨用一個通俗的例子來簡單的理解:
大家都見過中醫(yī)抓藥吧!整個中醫(yī)的中藥柜就相當于一個database,而每個抽屜就相當于一個table,而抽屜上中藥的名字相當于表名(table name),而且這個表名基本上都是唯一的。
table:某種特定類型的數(shù)據(jù)的結(jié)構(gòu)化表格。
4.為什么要有表(table)
試想一下中醫(yī)店的中藥柜如果沒有一個一個帶有名字的抽屜,那么大夫怎么找到自己想要的中藥呢??沒有的話,他不得在中藥柜一里個一個得去找哪一個是他想要的中藥,這樣找太麻煩了。而有個table,大夫只用看到表名就知道了我要找的藥在哪。
所以table的作用就是:數(shù)據(jù)的優(yōu)化讀寫,即CURD變快
5.列、行、主鍵、數(shù)據(jù)類型
列、行、主鍵、數(shù)據(jù)類型:都是表的相關(guān)術(shù)語
列(column):表中的一個字段,列(字段)代表實體(entity)的屬性(attribute)。比如學生表有:姓名、年齡、性別等attribute。這些attribute都是column。
行(row):每一行代表一個實體(entity)。比如學生表中每一行代表一個學生實體(entity)。
主鍵(primary key):每一行都要有一個主鍵來唯一標識自己。這個東西有點像每一行的ID,獨一無二。學生表中可以用學生ID(即學生學號)做
primary key。
primary key 的作用:沒有主鍵更新和刪除表中的特定row是很困難的。應(yīng)為你其他的column可能有重復(fù),比如說姓名,如果你以姓名來刪除某個人很有可能刪錯數(shù)據(jù),但是如果你以primary key來刪除絕對不會出錯,因為primary key 是唯一的標識(主鍵不能重復(fù)),且沒有哪一行沒有primary key (每一行主鍵不能為NULL)
所以應(yīng)該總是設(shè)置primary key,雖然有時候并不需要但是primary key ,但是數(shù)據(jù)庫設(shè)計人員應(yīng)該保證他們創(chuàng)建的每一表都應(yīng)該具有一個主鍵,便于以后的管理,這已經(jīng)約定俗稱。
設(shè)定主鍵column的三個原則:
? ? ? ? ? 1.不更新primary key 的值
? ? ? ? ? 2.不重用primary key
? ? ? ? ? 3.確保primary key 不被修改,不使用可能被修改的列作為主鍵列?
數(shù)據(jù)類型 (database):表中每個列中數(shù)據(jù)的數(shù)據(jù)類型,它限制了該列存儲的數(shù)據(jù)(例如,防止數(shù)值列錄入字符列)