設計數據庫
做一個數據庫之前,一定要先規劃好要做什麼,如何做,以及需要存儲哪些數據,這些數據之間的關係是什麼,需要滿足哪些用戶要求,都到先考慮好.這就是數據庫設計的前提。SQL語句不區分大小寫
,
數據庫的名字後綴加上 _db
表格名稱的前面加上 _tb
數據庫設計
數據庫的設計就是將數據規範化,過程化
- 需求設計
- 概念結構設計
- 邏輯結構設計
- 物理結構設計
- 數據庫的實施
- 數據庫的維護
需求設計
需求設計(需求分析)
主要是根據用戶的要求,分析其功能的可行性與實現方法。採用從上到下從簡單到複雜從整體到部分的方式進行分析,把整個系統分爲幾個模塊,又把這幾個模塊又分爲多個功能。
概念結構設計
從需求分析中找到實體和聯繫
1,實體
所謂實體就是表示需求設計分析出來的實際存在的事物,每一類實體都有它們自己的屬性來描述。
如:學生、教師、課程等都可以稱爲教務管理系統中的實體。
2,聯繫類型
1:1,一對一的關係
A表中的一行最多隻能對應B中的一行,反之亦然。
1:n,一對多的關係
A表中的一行能對應B表中的多行,但B表中的一行只能對應A表中的一行。
n:m,多對多的關係
A表中的一行匹配B表中的多行,反之亦然。
表的建立
數據有多種多樣,如何進行需求的分析和使用
列:教務管理系統
有這些數據 學號,姓名,性別,年齡,老師,老師號,職稱,手機號,成績…
我們可以將這些數據分成多個表格使用
1.學生表: 2. 課程表: 3. 成績表: 4. 班級表:
邏輯結構設計
將模型轉換成特定支持的數據模型
對於關係型數據庫來說,就是把實體聯繫轉換成二維數據表格
第一範式
1NF 原子過濾性,過濾重複屬性
關係模式中的每一個分量都應該是不可再分的數據項,也就是說實體的每一個屬性不能存在子屬性
第二範式
2NF 非主屬性依賴於主屬性
第三範式
2NF 基礎上,所有非主屬性不能依賴其他非主屬性
範式就是設計數據庫的規則和標準,我們設計的時候遵照這個規則和規範
將我們設計數據庫的方法標準化,遵循範式的好處可以很好的處理比較複雜和大型的數據,方便多人維護和管理,所有人遵循同一個範式,方便多人溝通和維護.
物理結構設計
將邏輯結構實施到具體環境中,其依賴於給定的DBMS和硬件系統。
數據庫的實施
根據邏輯設計和物理設計的結果,建立數據庫系統,加載數據,測試,試運行。
數據庫的運行和維護
在數據庫正式投入使用之後,需要改善數據庫性能,維護數據庫的安全和完整性。
關係數據結構的特點
1.數據以表格的形式出現
2.每行爲各種記錄名稱
3.每列爲記錄名稱所對應的數據域
4.許多的行和列組成一張表(table)單
5.若干的表單組成數據庫(database)
數據庫的常用術語
數據庫: 數據庫存儲數據表的集合。(database)
數據表: 存儲數據內容,類似於電子錶(table)
列: 數據元素 包含了相同類型的數據。(column)
行:或記錄一組相關的數據。(row)
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。(primary key)
外鍵:外鍵用於關聯兩個表。(foreign key)
複合鍵:複合鍵(組合鍵)將多個列作爲一個索引鍵,一般用於複合索引。
索引:使用索引可快速訪問數據庫表中的特定信息。類似於書籍的目錄。
查詢: 使用特定的條件來查找特定的數據
常用命令
MySQL命令可以在MySQL命令界面上,或者用MySQL執行代碼的工具上運行
1,顯示數據庫
show databases;
2,切換數據庫
use 要切換的數據庫;
#切換到mysql 這個數據庫
use mysql;
3,顯示數據庫中的所有表格
show tables
4,顯示數據表結構
show columns from 表格;
desc 表格;
5,創建數據庫
create database 數據庫名;
6,創建表
create table if not exists 表格名稱(
屬性名1 屬性類型 [約束...],
......
屬性名n 屬性類型 [約束...],
);
7,插入數據
##加上values 可以連續插入數據
insert into 表名 value(屬性值1,屬性值2,…,屬性值n);
8,刪除表
drop table 數據表名;
9,退出
##有三種格式,注意分號
quit;
exit;
\q;
10,修改MySQL密碼
#修改密碼
update mysql.user set authentication_string=PASSWORD('123456');
#刷新權限
flush privileges;