ER图和关系模型到MySQL数据库表
本篇主要介紹了MySQL數據庫表從ER圖到關系模型,再到數據庫表的創建過程及其表結構的修改。通過本篇的學習,可以掌握以下內容:
● 應用ER圖和關系模型創建數據庫表
● 數據庫表結構的修改
?
1、mooc數據庫表的ER圖和關系模型
在創建數據庫表之前,首先需要設計數據庫表。設計數據庫表的主要工具是ER圖,使用ER圖設計數據庫表詳見《數據庫實體聯系模型與關系模型》一文。mooc數據庫表的ER圖如下。
?
圖 1 mooc數據庫ER圖
?
ER圖給出了mooc數據庫表的圖形化描述,但還缺乏建立數據庫表必要的字段名稱、字段類型等信息。還需要把ER圖歸納為滿足一定約束條件二維表的形式,才可以開始創建數據庫表。mooc數據庫二維表見下表。
?
?
?
2、MySQL數據庫常用字段數據類型
表結構是由多個字段構成的,定義字段時需要定義字段的名稱、數據類型、數據大小及其數據格式等內容。MySQL提供了一組預定義的數據規則,用于描述數據類型、數據大小及格式。當我們定義字段數據類型時,需要遵循這些規則。MySQL預定義的數據規則大體分為日期和時間、數值和字符串,下面分別給予說明。
(1)日期和時間
?
(2)整型數值
?
(3)浮點數值
?
浮點數值類型帶有附加參數,m表示數值總的位數,d表示小數占的位數。例如,float(7,3) 表示數值總位數不會超過 7 位數字,小數點后面帶有 3 位數字。對于小數點后面的位數超過允許范圍的值,MySQL 會自動將它四舍五入為最接近它的值,因此使用浮點類型的時候,數值的精度會影響到查詢操作。
(4)字符串
?
其中,char類型占用固定的存儲空間,與char類型的字段值大小無關。varchar類型的存儲空間是動態變化的,占用存儲空間的大小與存儲的內容相關。這里需要注意的是,char和varchar的長度是指可存儲字符的個數,并不代表字節個數。
?
3、新建mooc數據庫表
有了mooc數據庫二維表,就可以開始創建數據庫表了。使用MySQL命令或Navicat等數據庫管理工具都可以創建數據庫表。這里重點介紹使用MySQL命令創建數據庫表,Navicat等數據庫管理工具基本都是圖形用戶界面程序,操作相對容易掌握,這里就不再介紹了。
創建數據庫表的MySQL命令語句如下:
create table table_name (column_name column_type [約束條件] [, column_name column_type [約束條件]…]);
其中,create table為命令串,table_name為創建表的名稱,column_name為字段名稱,column_type為字段數據類型,約束條件是字段約束項,可以允許有多個字段約束項,每個字段約束項之間用英文空格分隔。可以允許有多個字段,每個字段之間用英文逗號分隔。
下面的語句分別創建course表、teacher表、student表、student_course表。
?
其中,命令中not null是字段約束項,表示該字段不能為空。primary key用于定義哪個字段作為主鍵,可以定義多個主鍵,每個主鍵之間用英文逗號分隔。
?
3 、修改mooc數據庫表結構
表創建完成后,由于各種原因可能需要修改表的結構。例如,在原有的表中增加字段或者刪除字段,修改字段的數據類型等。
添加字段
MySQL添加字段的命令語句如下:
alter table 表名 add 字段1[, 字段2…]
例如,需要在course表增加時間字段和類型字段,可以使用下面的命令:
alter table course
add create_time date not null,
add type varchar(10);
修改字段
MySQL修改字段的命令語句如下:
alter table 表名稱 change 字段名稱 字段名稱 字段類型 [是否允許非空];
例如,需要修改course表type字段的名稱和類型,字段名稱修改為course_type,數據類型修改為int。可以使用下面的命令:
alter table course
change type course_type int;
刪除字段
MySQL修改字段的命令語句如下:
alter table 表名稱 drop column 字段名稱[, drop column 字段名稱…]
例如,要刪除course表的create_time字段和course_type字段,可以使用下面的命令:
alter table course
drop column create_time,
drop column course_type;
?
■ 課程小結
(1)在創建數據庫表之前,首先要進行表的設計,設計表的主要工具就是ER圖,ER圖給出了數據庫表的圖形化描述,但還缺乏建立數據庫表必要的字段名稱、字段類型等信息。因此還需要把ER圖歸納為滿足一定約束條件的二維表的形式,才可以開始創建表。
(2)MySQL提供了一組用于創建和管理數據庫表的命令,通過這些命令可以建立新表、修改表原有的結構。當然也可以使用Navicat等工具可視化地管理數據庫表。
總結
以上是生活随笔為你收集整理的ER图和关系模型到MySQL数据库表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Map构造选择题题库(洛谷P5601题
- 下一篇: 加括号改变连除式结果(洛谷P2651题题