MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

一、MySQL 數據庫表與表的關係

MySQL 數據庫是關係型數據庫,所以表與表之間存在三種關係

一對多:最常用的關係,例如:部門和員工

多對多: 例如:課程和學生,一個學生可以選擇多門課程,一門課程有多名學生

一對一: 相對使用少,例如:身份證號表

1、一對多

建表原則:在從表創建一個字段,字段作為外鍵指向主表的主鍵


MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

2、多對多

  • 建表原則:需要創建三張表,中間表種至少兩個字段,這兩個字段分別作為外鍵指向各自一方的主鍵


MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

3、一對一

  • 在實際開發中應用不多,因為一對一可以創建成一張表
  • 建表原則:外鍵唯一、外鍵是主鍵


MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範


數據存儲階段

【1】 人工管理階段

缺點 :數據無法共享,不能單獨保持,數據存儲量有限

【2】 文件管理階段 (.txt .doc .xls)

優點 :數據可以長期保存,可以存儲大量的數據,使用簡單

缺點 :數據一致性差,數據查找修改不方便,數據冗餘度可能比較大

【3】數據庫管理階段

優點 :數據組織結構化降低了冗餘度,提高了增刪改查的效率,容易擴展,方便程序調用,做自動化處理

缺點 :需要使用sql 或者 其他特定的語句,相對比較複雜

數據庫應用

融機構、遊戲網站、購物網站、論壇網站 ... ...

基礎概念

數據 :能夠輸入到計算機中並被識別處理的信息集合

數據結構 :研究一個數據集合中數據之間關係的

數據庫 :按照數據結構,存儲管理數據的倉庫。數據庫是在數據庫管理系統管理和控制下,在一定介質上的數據集合。

數據庫管理系統 :管理數據庫的軟件,用於建立和維護數據庫

數據庫系統 :由數據庫和數據庫管理系統,開發工具等組成的集合

數據庫分類和常見數據庫

  • 關係型數據庫和非關係型數據庫

關係型:採用關係模型(二維表)來組織數據結構的數據庫

非關係型:不採用關係模型組織數據結構的數據庫

  • 開源數據庫和非開源數據庫

開源:MySQL、SQLite、MongoDB

非開源:Oracle、DB2、SQL_Server

  • 常見的關係型數據庫

MySQL、Oracle、SQL_Server、DB2 SQLite

認識關係型數據庫和MySQL

  1. 數據庫結構

數據元素 --> 記錄 -->數據表 --> 數據庫

  1. 數據庫概念解析

數據表(table) :存放數據的表格

字段(column):每個列,用來表示該列數據的含義

記錄(row):每個行,表示一組完整的數據


  1. MySQL特點
  • 是開源數據庫,使用C和C++編寫
  • 能夠工作在眾多不同的平臺上
  • 提供了用於C、C++、Python、Java、Perl、PHP、Ruby眾多語言的API
  • 存儲結構優良,運行速度快
  • 功能全面豐富
  1. MySQL安裝
  • 配置文件:/etc/mysql
  • 命令集:/usr/bin
  • 數據庫存儲目錄 :/var/lib/mysql

Windows安裝MySQL

下載MySQL安裝包(windows) https://dev.mysql.com/downloads/mysql/mysql-installer***5.7.***.msi

安裝教程去安裝

  1. 啟動和連接MySQL服務
  • 查看MySQL狀態: sudo /etc/init.d/mysql status
  • 啟動服務:sudo /etc/init.d/mysql start | stop | restart 或者 service mysql start|stop|restart
  • mysql -h主機地址 -u用戶名 -p密碼
  • mysql -hlocalhost -uroot -p123456
  • 本地連接可省略 -h 選項: mysql -uroot -p123456

關閉連接

ctrl-Dexit

SQL語句

什麼是SQL

結構化查詢語言(Structured Query Language),一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。


SQL語句使用特點

SQL語言基本上獨立於數據庫本身

各種不同的數據庫對SQL語言的支持與標準存在著細微的不同

每條命令必須以 ; 結尾

SQL命令(除了數據庫名和表名)可以不區分字母大小寫

二、MySQL 數據庫的設計規範

  • 數據庫的每一列都是不可分割的原子數據項
  • 表中某一列有多個值時,必須拆分為不同的列
MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

2、第二範式

  • 在第一範式的前提下,表中的每一個字段都完全依賴於主鍵
  • 一張表只描述一件事情
  • 表中的每一列都完全依賴於主鍵
MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

3、第三範式

  • 在滿足第二範式的前提下,表中的每一列都直接依賴於主鍵,而不是通過其他列簡介的依賴於主鍵
  • 所有列不得傳遞依賴於主鍵
MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範

4、總結

MySQL 數據庫 表與表的關係 及MySQL 數據庫及設計規範


分享到:


相關文章: