[MySQL光速入門]001 讓MySQL跑起來

數據庫簡介

什麼是數據庫

官方定義:mysql

數據庫是將數據按照必定的數據模型組織, 描述和存儲, 具備較小的冗餘, 較高數據獨立性和易擴展性, 並做爲各類用戶共享的數據集合sql

不過, 我更喜歡我本身的理解:數據庫

數據庫, 顧名思義, 就是數據的倉庫windows

其實相關概念還有不少, 舉個栗子吧...bash

假設你有一個工廠, 用來生產電視機, 那麼確定也須要一個倉庫來存儲電視, 還須要招聘一個管理倉儲的王大爺...工具

那麼問題來了, 你爲何須要一個倉庫?post

  1. 存放電視機, 方便統計和管理(數據管理)
  2. 找個王大爺, 防止電視失竊(數據持久化)

這裏的電視機就是DATA(數據)優化

存放電視機的倉庫就是DB(數據庫)spa

這裏的王大爺就是DBA(數據庫管理員)操作系統

你問:"老王, 我們今天有多少電視機入庫?"

王大爺說: "稍等, 老總, 我用管理軟件查一下..."

這裏的管理軟件就是DBMS(數據庫管理系統), 常見DMS: MySQL, Oracle, SQL server

有下面一個公式:

DBS = DBA 使用 DBMS 管理 DB

數據庫系統 就是 數據庫管理員 使用數據庫管理系統 來管理 數據庫

什麼是數據持久化

簡單來講, 就是想辦法不讓數據丟失.

可能你會好奇, 什麼數據存在計算機裏, 還會丟失?

答案是: 可能會, 也可能不會...主要看你把它存到了哪裏

這裏須要引出兩個概念內存,硬盤

內存的特色, 速度快, 很是之快, 斷電數據丟失

硬盤的特色, 容量大, 很是之大, 斷電數據不丟失

簡單的說, 內存小而快, 硬盤慢而大, 4000G(4T)硬盤的價格約等於16G內存的價格, 4000:16

因此, 要想數據持久化, 就必須把數據存到硬盤裏

若是你是用數據庫管理系統的話, 它會自動完成數據持久化

什麼是mysql

最著名的數據庫管理系統DBMS, 就是前面老王使用的管理軟件

固然DBMS不止MySQL一個, MySQL爲何能在衆多DBMS中脫穎而出呢?

  1. 體積小, 運行快
  2. 性價比高, 由於不要錢...
  3. 方便各個操做系統移植
  4. 對SQL語句支持的很好
  5. 運行速度很快

安裝mysql

這裏只講windows系統的壓縮包安裝方式, 由於這種方式最簡單,最流行

MySQL5.7官網下載地址

cdn.mysql.com//Downloads/…

安裝MySQL

1. 解壓

把壓縮包解壓到D:\test_mysql_57 (路徑隨意)

1553160580095.png

2. 添加環境變量

把bin目錄的路徑()添加到環境變量, 由於該文件夾下有msyql.exe(命令行工具-客戶端)msyqld.exe(服務端)

1553160705494.png

1553160735339.png

1553160754567.png

1553160777651.png

1553160827790.png

1553160841667.png

1553160891223.png

一路點擊肯定, 關閉剛纔全部的彈窗

3. 配置文件

建立配置文件: D:\test_mysql_57\my.ini

建立數據存儲文件夾: D:\test_mysql_57\data

1553220877136.png

1553221359136.png

內容以下

[client]
port=3306 # 默認端口號
[mysql]
default-character-set=utf8 # 默認字符集

[mysqld]
port=3306
basedir="D:/test_mysql_57/" # mysql路徑
datadir="D:/test_mysql_57/data/" # mysql數據路徑
character-set-server=utf8 # 默認字符集
default-storage-engine=innodb # 默認數據庫引擎
複製代碼
4. 使用命令行, 安裝mysql服務

windows+X 打開命令行(管理員身份),

1553419812727.png

輸入命令: mysqld install 鏈接名 --defaults-file="配置文件路徑"

mysqld install mysql3306 --defaults-file="D:\test_mysql_57\my.ini" 
複製代碼

1553419000337.png

5. 初始化mysql

輸入以下命令

mysqld  --initialize
複製代碼

1553419036688.png

6. 啓動mysql

輸入以下命令

net start mysql3306
複製代碼
7. 重置密碼

再從文件中找到默認密碼

D:\test_mysql_57\data\USER-20170622RQ.err

1553420031031.png

使用默認密碼登陸mysql, 重置密碼

mysql -h localhost -u root -p
複製代碼

1553420266402.png

SET PASSWORD = PASSWORD('你的新密碼');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
複製代碼

1553420361028.png

8. 使用新密碼, 從新登陸, 開心的輸命令吧

1553420485513.png

啓動/關閉/重啓mysql

啓動mysql:輸入 net start mysql;

中止mysql:輸入 net stop mysql;

windows下不能直接重啓(restart),只能先中止,再啓動。

數據庫基本概念

數據庫

存放數據的倉庫, 因此本質上是一個容器

1553422577898.png

數據表

經過組成二維表, 來存儲數據

1553422751547.png

字段

一列稱爲一個字段

記錄

一行稱爲一個記錄

數據

每個格子存一個數據

總結

數據庫裏有數據表, 數據表裏有, 行來存儲數據, 列來描述數據

1553422937926.png

1553423003480.png

1553422898622.png

表關係

一對一(1:1)

用戶表和用戶詳情表

「用戶詳情表表」,其字段包含:姓名、性別、年齡、身高、體重、籍貫和居住地等

一對多/多對一(1:N/N:1)

國家表,城市表

多對多(N:N)

學生表, 課程表

須要中間表創建聯繫

範式

簡介

什麼是範式

設計數據表遵照的規範

意義何在?

是爲了解決數據的存儲和優化問題

特色

  • 非必須
  • 愈來愈嚴格
  • 向下兼容

內容

  • 數據表中的每一列(每一個字段)必須是不可拆分的最小單元,也就是確保每一列的原子性
  • 知足 1NF 後,要求表中的全部列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係
  • 必須先知足第二範式(2NF),要求:表中的每一列只與主鍵直接相關而不是間接相關

說人話

  • 一個字段只存一個數據
  • 一張表只幹一件事
  • 不屬於這個表的字段, 不要加到這個表裏來

1118686-20170616134418946-1189742758.png

1118686-20170616134438775-1068700526.png

1118686-20170616134457821-1631705781.png

逆規範化

冗餘和效率

符合範式, 數據不容易重複, 可是查詢起來比較費事

爲了速度, 能夠多買點硬盤...

快速跳轉

相關文章
相關標籤/搜索