一、數據庫基本操作
1、開啓mysql服務命令
net start mysql
2、進入mysql的兩種方式
明文進入:mysql -uroot -proot 格式:mysql -u帳號 -p密碼
密文進入:mysql -uroot -p
按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示爲***這樣。
3、查看mysql中所有的數據庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)
前面四個數據庫是mysql中自帶的,也就是必須的.
SHOW DATABASES;
4、創建名爲test_1的數據庫
格式:CREATE DATABASE 數據庫名
CREATE DATABASE test_1;
5、刪除名爲test_1的數據庫
格式:DROP DATABASE 數據庫名
DROP DATABASE test_1;
二、數據庫表的基本操作
1.創建表結構
CREATE TABLE Employee
(Eno CHAR(4) NOT NULL UNIQUE,
Ename CHAR(8)NOT NULL,
Sex CHAR(2) NOT NULL ,
Age INT NULL,
Is_Marry CHAR(1) NULL,
Title CHAR(6) NULL,
2.添加列
ALTER TABLE Employee ADD Emgr CHAR(4) NULL;
3.修改列的數據類型
ALTER TABLE Employee CHANGE Emgr Emgr CHAR(12);
ALTER TABLE Employee MODIFY Emgr CHAR(12);
注:mysql中alter語句中change和modify的區別:
Change :對列進行重命名或更改列的類型,需給定舊的列名稱和新的列名稱、當前的類型;
modify :可以改變列的類型,此時不需要重命名(不需給定新的列名稱)。
4.刪除列
ALTER TABLE Employee DROP COLUMN Emgr;
5.增加某列必須取唯一值的約束條件
ALTER TABLE Employee ADD CONSTRAINT UQ_name UNIQUE(Ename);//用戶爲該唯一值約束設定約束名
ALTER TABLE Employee ADD UNIQUE(Ename);//系統自動命名
三、細節
1.一個表或者視圖只允許有一個聚簇索引(CLUSTERED),建立聚簇索引後,表在磁盤中的物理存儲順序將與聚簇索引中的一致。
在最常查詢的列上建立聚簇索引可以加快查詢速度;在經常更新的列上建立聚簇索引,則DBMS維護所以代價太大。
四、關係數據庫規範化理論
1.未規範的問題
1.1 數據冗餘度大
1.2 修改異常
冗餘度大,不僅蘭妃存儲空間,在對數據進行修改時,易造成數據的不一致性。如當某個表中的工資變化時,滿足某個條件的人的工資都需要修改,一旦遺漏就會使數據不一致,產生修改異常。
1.3 插入異常
無法插入某部分信息的插入異常。因爲碼爲空的情況下無法插入相應的數據
1.4 刪除異常
刪除掉不應刪除的信息爲刪除異常。在刪除某個信息時連帶其他信息被刪除。
2. 函數依賴
2.1 函數依賴是指在關係R中,X、Y爲R的兩個屬性或屬性組,如果對於R的所有關係r都存在:對於X的每一個具體值,Y都只有一個具體值與之對應。
則稱屬性Y函數依賴於屬性X。或者說屬性X函數決定屬性Y,記做X->Y
2.2 聯繫中存在的依賴
1)如果兩屬性集X、Y是一對一聯繫,則存在函數依賴 X<-->Y
2) 如果兩屬性集X、Y是多對一聯繫,則存在函數依賴 X-->Y
3)如果兩屬性集X、Y是多對多聯繫,則不存在函數依賴
4)假設兩屬性集X、Y間 X-->Y成立,如果Y屬於X,則稱X-->Y是平凡函數依賴,反之是非平凡函數依賴。
3. 關係模式的規範化
當一個關係中的所有分量都是不可分的數據項時,該關係是規範化的。
注:規範化程度較高者必定是較低者的子集。
1)部分函數依賴與完全函數依賴:
設X、Y是關係R的兩個不同的屬性或屬性組,且X-->Y。如果存在X的某一個真子集X1,使得X1-->Y,則稱Y部分函數依賴於X
反正則爲完全函數依賴。
2)傳遞依賴:
在關係R中,如果X、Y、Z是R中的三個不同的屬性或屬性組,如果X-->Y,Y-->Z,但Y-/->X,且Y不是X的子集,則稱Z傳遞依賴於X
3.1 範式的種類:
1NF,2NF,3NF(BCNF),4NF,5NF
3.2 第一範式(1NF)
定義:如果關係模式R中不包含多值屬性,則R滿足第一範式
存在問題:存在部分函數依賴不是2NF,存在傳遞函數依賴不是3NF
3.3 第二範式
如果一個關係R屬於1NF,且它的所有非主屬性都完全依賴於R的任意候選碼,則R屬於第二範式。
即:第二範式中不存在部分函數依賴
推論:如果關係模式是第一範式,且它的每一個候選碼都是單碼,則這個關係模式是第二範式。
3.4 第三範式
如果關係模式R屬於第二範式,且它的每一個非主屬性都不傳遞依賴於任何候選碼,則稱R是第三範式。
推論1:如果關係模式屬於第一範式,且它的每一個非主屬性既不部分依賴、也不傳遞依賴於任何候選碼,則該模式屬於第三範式。
推論2:不存在非主屬性的關係模式一定爲第三範式。
3.5 改進的第三範式:BCNF
定義:設關係模式是第一範式,若F的任一函數依賴X-->Y(且Y不屬於X)中X都包含了R的一個碼,則稱R是BCNF範式。
推論:
1)R中所有非主屬性對每一個碼都是完全函數依賴
2)R中所有主屬性對每一個不包含它的碼,都是完全函數依賴
3)R中沒有任何屬性完全函數依賴於非碼的人格一組屬性
定理:如果R是BCNF範式,則R一定是第三範式
3NF比BCNF放寬了一個限制,即允許因素不包含碼。
如有錯誤,還請指正哦~