MySQL常用DOS命令
如何進入MySQL
mysql -u root -p
回車收到Enter password提示後,輸入自己的密碼後,命令行窗口會進入MySQL命令方式。
顯示所有的數據庫
進入MySQL命令方式成功後,在命令行窗口輸入:
show databases;
該命令可以顯示MySQL已創建的所有數據庫。
新增數據庫
在命令行窗口輸入:
create database <創建的數據庫的名稱>;
創建完之後,可以使用show databases;
檢查是否成功創建。
刪除數據庫
在命令行窗口輸入:
drop database <刪除的數據庫名稱>;
刪除完之後,可以使用show databases;
檢查是否成功刪除。
進入數據庫
在命令行窗口輸入:
use <數據庫名稱>;
當命令行窗口輸出:Database changed,說明打開成功。
顯示當前數據庫包含的數據表
在使用use <數據庫名稱>;
進入數據庫之後。
在命令行窗口輸入:
show tables;
當命令行窗口顯示Tables_in_<數據庫名稱>,說明顯示完畢。
顯示其他數據庫包含數據表
在命令行窗口輸入:
show tables from <數據庫名稱>;
當命令行窗口顯示Tables_in_<數據庫名稱>,說明顯示完畢。
顯示當前使用數據庫名稱
在命令行窗口輸入:
select database();
當命令行窗口顯示database(),則他下一行的就是當前使用數據庫的名稱。
查看MySQL的狀態
在命令行窗口輸入:
status;
注:MySQL默認端口號:3306。
MySQL目錄結構
目錄 | 功能 |
---|---|
bin | 存放可執行文件 |
docs | 存放文檔和日誌 |
include | 存放頭文件 |
lib | 存放一系列庫文件 |
share | 存放字符集,語言信息 |
COPYING | 版本許可協議 |
mydefault.ini | 數據庫使用的配置文件 |
Data | 存放數據庫裏存的信息,數據庫遷移時,拷貝這裏面的文件夾 |
數據表結構
數據表
數據表是數據庫最重要的組成部分之一,包括行和列。一個關係型數據庫包括多個數據表。
如下圖:
學號 | 姓名 | 性別 | 班級 |
---|---|---|---|
196******1 | 王明 | 男 | 2 |
196******7 | 李紅 | 女 | 2 |
196******6 | 李明 | 男 | 1 |
196******4 | 王紅 | 女 | 1 |
列
一列(數據元素)包含了相同意義和相同類型的一組數據。又稱爲屬性或者字段。字段包括字段名和字段值兩部分,字段名是在創建表格結構時定義的,字段值是在表格定義完成之後添加的。如上圖,學號,姓名,性別,班級都是字段名,而下面對應的數據則是字段值。
冗餘字段
某一字段屬於一個數據表,但是同時出現在別的數據表。
壞處:影響數值一致性,會加大內存影響空間。
好處:使用空間換取時間,提高響應速度。
主鍵
主鍵是一個字段或者多個字段且不能爲空,其值能唯一地標識表中的每一行,通過它可強制表的實體完整性。 RDBMS還規定一個數據表中只能包含一個主鍵。
外鍵
外鍵用於關聯兩個數據表,在同一數據庫當中,有的表是有關聯的,所以爲了降低數據冗餘,經常用一種數據單獨存在一個表中,查詢的時候向多個表獲得數據。
表關係外鍵
1對1
比如員工的工資,一個僱員只有一個工資,而一個工資只能屬於一個僱員。則僱員和工資之間具有一對一關係。
1對n
學生與班級,一個班級有多名學生,但是一名學生只有一個班級,則學生與班級是1對n關係。
學號 | 姓名 | 性別 | 班級 |
---|---|---|---|
196******1 | 王明 | 男 | 2 |
196******7 | 李紅 | 女 | 2 |
196******6 | 李明 | 男 | 1 |
196******4 | 王紅 | 女 | 1 |
班級 | 班主任 |
---|---|
1 | 王老師 |
2 | 李老師 |
n對m
學生與課程,一名學生可以選擇多門課程,一門課程也有多名學生,而遇到這種情況需要把n對m關係轉化成連個1對n關係。
學生表
學號 | 姓名 | 性別 |
---|---|---|
196******1 | 王明 | 男 |
196******7 | 李紅 | 女 |
196******6 | 李明 | 男 |
196******4 | 王紅 | 女 |
學生課程成績表
學號 | 課程編號 | 成績 |
---|---|---|
196******1 | 101 | 80 |
196******7 | 102 | 87 |
196******6 | 101 | 83 |
196******4 | 102 | 85 |
課程表
課程編號 | 課程名稱 |
---|---|
101 | 計算機基礎 |
102 | 程序設計 |
如增加學生課程成績表,則學生表和學生課程成績表之間是一對多關係,課程表和學生課程成績表之間也是一對多的關係。
數據庫表的設計 E-R圖
什麼是E-R圖?
E-R圖也稱實體-聯繫圖,提供了表示實體類型、屬性和聯繫的方法,用來描述現實世界的概念模型。
爲什麼要使用E-R圖?
利用E-R模型,更好的模擬現實。
實體
用矩形表示,矩形框內寫明實體名。
實體是現實世界中各種事物的抽象,是數據的載體。關鍵在於一個實體能與另一個實體相區別,具有相同屬性的實體具有相同的特徵和性質。
屬性
用橢圓形表示,並用無向邊將其與相應的實體連接起來。
實體所具有的某一特性,一個實體可由若干個屬性來刻畫。屬性不能脫離實體,屬性是相對實體而言的。
關係
用菱形表示,菱形框內寫明聯繫名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上關係的類型(1:1,1 : n 或 m : n)。
比如老師給學生授課存在授課關係,學生選課存在選課關係。
設計原則
- 一張表描述一個實體或實體之間的關係。
- 避免表之間存在重複字段。
- 表中的字段是最原始的基本數據元素。
實例
實體包括:
- 貨倉表:貨倉號,面積,電話號碼。
- 職工表:職工號、姓名、年齡、職稱。
- 學生表:學號,姓名,年齡。
三範式
1.原子性
數據庫表每一列都是不可再分的數據單元,則滿足第一範式(1NF)。
2.非主屬性依賴
如果一個關係滿足1NF,並且除了主鍵以外的其他列完全依賴主鍵,則他滿足第二範式(2NF)(第二範式要求每個表只描述一種事情)
3.傳遞性依賴
必須先滿足2NF,並且要求表中的每一列只與主鍵直接相關而不是間接相關,(表中的每一列只能依賴於主鍵),則它滿足第三範式(3NF)。