資料庫對應關系表
mysql資料庫表間的關系圖可以通過navicat查看:
第一步:下載navicat打開;
第二步:點擊navicat界面最右下角標注的按鈕即可查看關系圖。
最新的MySQL Workbench已經完全包含了資料庫建模與設計、資料庫SQL開發和資料庫管理與維護等功能。
Mysql資料庫-----表
sh.qihoo.com2018-04-07 08:20
1、定義: 表(table)是資料庫最基本的組成單元,資料庫是用來存儲數據的,資料庫中有很多表,每一個表都是一個獨立的單元,表也是一個結構化的文件,由行和列組成,行稱為數據或記錄,列稱為欄位,欄位又包含:欄位名稱、欄位類型、長度、約束。
2、創建表
(1)、語法格式:create table 表名稱(欄位名 類型(長度) 約束);
(2)、MySQL常用數據類型
VARCHAR:可變長度字元串(VARCH AR(3)表示存儲的數據長度丌能超過3個字元長度)
CHAR:定長字元串(CHAR(3) 表示存儲的數據長度丌能超過3個字元長度)
INT:整數型(INT(3)表示最大可以存儲999)
BIGINT:長整型(對應java程序中的long類型)
FLOAT:浮點型單精度(FLOAT(7,2)表示7個有效數字,2個有效小數位)
DOUBLE:浮點型雙精度(DOUBLE(7,2)表示7個有效數字,2個有效小數位)
DATE:日期類型( 實際開發中,常用字元串代替日期類型)
BLOB:二進制大對象 Binary Large Object(專門存儲圖片、視頻、聲音等數據)
CLOB:字元型大對象 Character Large Object( 可存儲超大文本,可存儲4G+字元串)
VARCHAR與CHAR對比:
都是字元串
VARCHAR比較智能,可以根據實際的數據長度分配空間,比較節省空間;但在分配的時候需要相關判斷,效率低。
CHAR不需要勱態分配空間,所以執行效率高,但是可能會導致空間浪費
若欄位中的數據不具備伸縮性,建議採用CHAR類型存儲
若欄位中的數據具備很強的伸縮性,建議採用VARCHAR類型存儲
② 資料庫怎麼設計多對多的數據表
1.資料庫中的多對多關聯關系一般需採用中間表的方式處理,將多對多轉化為兩個一對多。
2.通過表的關系,來幫助我們怎樣建表,建幾張表。
一對一
一張表的一條記錄一定只能與另外一張表的一條記錄進行對應,反之亦然。
學生表:姓名,性別,年齡,身高,體重,籍貫,家庭住址,緊急聯系人
其中姓名、性別、年齡、身高,體重屬於常用數據,但是籍貫、住址和聯系人為不常用數據
如果每次查詢都是查詢所有數據,不常用的數據就會影響效率,實際又不用
常用信息表:ID(P),姓名,性別,年齡,身高,體重
不常用信息表:ID(P),籍貫,家庭住址,緊急聯系人
解決方案:將常用的檔清和不常用的信息分享存儲,分成兩張表
不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠對應上:找一個具有唯一性的
欄位來共同連接兩張表。
一個常用表中的一條記錄永遠只能在一張不常用表中匹配一條記錄,反之亦然。
一對多
一張表中有一條記錄可以對應另外一張表中的多條記錄;但是反過來,另外一張表的一條記錄
只能對應第一張表的一條記錄,這種關系就是一對多或多對一
母親與孩子的關系:母親,孩子兩個局蠢液實體
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別
以上關系:一個媽媽可以在孩子表中找到多條記錄(也可能是一條),但是一個孩子只能找到一個媽媽
是一種典型的一對多的關系。
但是桐物以上設計:解決了實體的設計表問題,但是沒有解決關系問題,孩子找不到母親,母親也找不到孩子
解決方案:在某一張表中增加一個欄位,能夠找到另外一張表中的記錄:在孩子表中增加一個欄位
指向母親表,因為孩子表的記錄只能匹配到一條母親表的記錄。
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別,母親表ID(母親表主鍵)
多對多
一對表中(A)的一條記錄能夠對應另外一張表(B)中的多條記錄;同時B表中的一條記錄
也能對應A表中的多條記錄
老師和學生
老師表T_ID(P),姓名,性別
學生表S_ID(P),姓名,性別
以上設計方案:實現了實體的設計,但是沒有維護實體的關系
一個老師教過多個學生,一個學生也被多個老師教過
解決方案:增加一張中間關系表
老師與學生的關系表:ID(P),T_ID,S_ID
老師表與中間表形成一對多的關系,而中間表是多表;維護了能夠唯一找到一表的關系;
同樣的學生表與中間表也是一個一對多的關系;
學生找老師:找出學生ID--->中間表尋找匹配記錄(多條)--->老師表匹配(一條)
老師找學生:找出老師ID--->中間表尋找匹配記錄(多條)--->學生表匹配(一條)
③ 怎麼查看Access資料庫中各表之間的關系
1,打開該access資料庫,資料庫工具,點擊關系。
2,然後便會出現各個表之間對應的關系。點擊它們之間的連線,右擊,便可以看到它們的關系了。
④ 請問資料庫在創建表的時候如何設計表關系,一對一,一對多,多對多 請高手舉例說明。謝謝!!!
多對多關系至少需要3個表,我們把一個表叫做主表,一個叫做關系表,另外一個叫做字典表或者副表(字典表是紀錄比較少,而且基本穩定的,例如:版塊名稱;副表是內容比較多,內容變化的,例如)。
按照資料庫的增刪查改操作,多對多關系的查找都可以用inner join或者
select * from 主表 where id in (select 主表id from 關系表)
1,角色任命型
特點:關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵,有一個表是字典類型的表。
界面特點:顯示主表,用checkbox或多選select設置多選關系。
例如:任命版主(用戶表-關系表-版塊名稱表),角色許可權控制等,用戶是5個版塊版主,只要關系表5行紀錄就可以確立,關系表的兩個外鍵具有聯合主鍵性質。
增加關系:如果沒有組合紀錄,insert之。
刪除關系:如果有組合紀錄,刪除之。
2,集合分組型
特點:同角色任命型類似,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。區別是主副表都不是字典表,可能都很大不固定。
界面特點:顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:歌曲專集(專集表-關系表-歌曲表)。手機分組(分組表-關系表-手機表)。用戶圈子(圈子表-關系表-用戶表)。文章標簽(文章表-關系表-標簽表)
增加關系:同版主任命型。
刪除關系:同版主任命型。
3,明細帳型
特點:關系表可以有重復紀錄,關系表一般有時間欄位,有主鍵,可能還有文字型的欄位用來說明每次發生關系的原因(消費)。
界面特點:顯示關系表,用radio或下拉設置單選關系。
例如:現金消費明細帳或訂單(用戶表-訂單表-消費原因表),用戶可能多次在同一事情上重復消費。積分變化紀錄也屬於這類。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間。
刪除關系:根據關系表PK刪除。
4,評論回復型
特點:同明細帳型關系表一般有時間欄位,有主鍵,區別是重點在文字型的欄位用來說明每次發生關系的內容(評論回復)。
界面特點:回復文本框。
例如:論壇回復(用戶表-回復表-帖子表),用戶可能多次在不同帖子上評論回復費。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。
5,站內簡訊型
特點:主副表是同一個,關系表一般有時間欄位,有主鍵,重點在關系表文字型的欄位用來說明每次發生關系的內容(消息)或者其他標記位來表示文字已讀狀態時間等。
界面特點:回復文本框。
例如:站內簡訊(用戶表-簡訊表-用戶表),用戶可能給用戶群發或者單發,有標記位來表示文字已讀狀態時間等。
增加關系:不管有沒有組合紀錄,insert之,紀錄時間和文字。
刪除關系:根據關系表(回復表)PK刪除。
6,用戶好友型
特點:主副表是同一個,同集合分組型,關系表兩外鍵組合無重復紀錄,關系表一般不需要時間欄位和主鍵。
界面特點:同集合分組型,顯示主表,用搜索代替簡單的checkbox或多選select,或者一條一條的添加。
例如:下載站點的文件,(文件表-關系表-文件表)可以被軟體工具打開,軟體工具本身也是一種文件,可以被下載。用戶的好友,也是用戶(用戶表-好友關系表-用戶表)
增加關系:同版主任命型。
刪除關系:同版主任命型
⑤ SQL資料庫中表與表之間的關聯怎麼建立
1、在資料庫窗口中,單擊「創建」中「表格」中的「表設計」,打開表設計窗口。