1. 程式人生 > >MySQL資料庫總結(一)

MySQL資料庫總結(一)

概述:

資料庫的作用:通俗易懂的講就是用於資料的儲存。

傳統的儲存方式如文字、Excel等有諸多不足:

  1. 文字:檔案過大時開啟會卡頓,非常慢。
  2. Excel:儲存的資料量非常少,不符合當今資料動不動就上百萬條這種海量資料的需求。

資料庫更加方便管理資料,通過sql語句更加有效率,編寫SQL語句要注意:功能+效能!

資料庫的分類:

  • 結構化資料庫,實質上就是關係型資料庫,比如Oracle、MySQL等。二維表結構來邏輯表達和實現的資料, 對於表結構的每一列,都有著清晰的定義。
  • 半結構化資料庫,主要是鍵值對的形式存在。它的描述資料的結構和內容混在一起,沒有明顯的區分。比如xml、json
  • 非結構化資料庫,從形態上,非結構化資料主要包含三大塊:第一是文字文字;第二是影象、圖片等;第三是視訊流、電視流。之前儲存圖片資料使用是blob格式,現在已被儲存路徑path形式代替了。

關係型資料庫比較:

目前最流行的是Oracle和MySQL,對比如下:

Oracle:效率高,已經優化到極致,使用和維護成本高,對硬體的要求要比其他資料庫高。

MySQL:開源,簡單,效能優越,支援多使用者,單程序多執行緒,c/s

MySQL執行流程:

  1. 啟動MySQL服務
  2. 載入配置檔案到伺服器記憶體
  3. 生成MySQL資料庫例項
  4. 簡歷MySQL客戶端與MySQL資料庫例項通訊的鏈路
  5. MySQL客戶端請求MySQL會話
  6. MySQL服務端響應客戶端請求

MySQL表儲存引擎:

MySQL的預設儲存引擎是InnoDB;

引擎(Engine)是電子平臺上開發程式或系統的核心元件。利用引擎,開發者可迅速建立、鋪設程式所需的功能,或利用其輔助程式的運轉。一般而言,引擎是一個程式或一套系統的支援部分。常見的程式引擎有遊戲引擎,搜尋引擎,防毒引擎等。

簡單來說,儲存引擎就是指表的型別以及表在計算機上的儲存方式。通過show engines來檢視

InnoDB的特點:完善事務支援,主要體現在寫入資料這方面,即增刪改操作。

MyISAM的特點:讀取速度快,用於查詢;

兩個結合可以達到一個讀寫分離的效果,從而優化資料庫。

mysql預設資料庫:

  1. information_schema儲存源資料資訊,即描述表結構的資訊。
  2. mysql儲存使用者資訊
  3. performance_schema跟蹤執行的資訊
  4. test做實驗用的,也可以自己再建一個庫

基礎操作:(重點)

查詢埠:netstat -ano|grep 3306

登入:mysql -uroot -p >>回車>>  輸入連線密碼

檢視所有字符集:show variables like 'character%';     ---出現亂碼時檢查編碼格式

檢視資料庫:show databases;

匯入匯出:(資料庫的備份)

  • mysqldump -uroot -p 資料庫名>路徑\檔名.格式    ==匯出
  • mysql -uroot -p 資料庫名<路徑\檔名.格式    ==匯出
  • mysql -uroot -p test<./test.sql    --命令還原指定備份

檢視欄位值溢位是否截斷:

--檢視當前的sql_mode

select @@sql_mode;

--插入測試資料
insert into inttype values(128);  //設定的欄位最大值為127

  • 無法插入,切換sql_mode模式

               set sql_mode = 'ansi';

  • 插入成功,但被截斷

               insert into inttype values(128);

獲取系統時間:select now();select year(now()); ===獲取年份

約束值範圍:
       create table person(
    -> sex enum('male','female'),
    -> interest set('sports','study','sing')
    -> );
    enum ----單選
    set  ----多選

其他

yinyint一個位元組
smallint兩個位元組
mediumint三個位元組
int四個位元組
bigint八個位元組

TIMESTAMP[(M)]
時間戳。範圍是’1970-01-01 00:00:00’到2037年。

 

後續有待更新,感謝閱讀~