1. 程式人生 > 其它 >JUC高階篇-第2章 多執行緒鎖

JUC高階篇-第2章 多執行緒鎖

資料庫

  • 含義:儲存和管理資料的倉庫,使用者可以進行增刪改查等操作

  • 本質:一款基於網路通訊的應用程式

  • 分類:

    • 關係型資料庫:資料之間彼此有關係或約束,通常以表格形式儲存,儲存型別的限制

      eg:mysql,Oracle,db2,sql server

    • 非關係型資料庫:資料通常以key—value方式儲存

      eg:redis,mongobd

  • 特點:

    • 持久化儲存
    • 保證資料的有效性
    • 讀寫速度極高

資料庫管理系統

  • 本質:管理資料的一個軟體

關係型資料庫管理系統

  • 分類:
    • 關係型資料庫服務端:負責管理不同的資料庫
    • 關係型資料庫客戶端:向服務端傳輸資料或獲取資料

sql介紹

由來:支援多種程式語言來充當客戶端操作mysql,採用統一的語言(SQL語句)

作用:實現資料庫客戶端和服務端之間的通訊

MySQL資料庫

  • 含義:是一個關係型資料庫管理系統
  • 特點:
    • 開源,不用付費
    • 使用標準的sql資料語言格式
    • 可存放大型資料量,處理上千萬條資料
    • 可安裝在不同的作業系統,提供多種程式語言的操作介面

重要概念

MySQL主要儲存引擎

針對不同的資料應該有不同的處理機制來儲存,而儲存引擎就是不同的處理機制

  • innodb:是MySQL5.5版本及之後預設的儲存引擎,儲存資料更安全
  • myisam:是MySQL5.5版本之前預設的儲存引擎,速度比innodb更快
  • memory:記憶體引擎(資料全部存放在記憶體中),斷電資料丟失
  • blackhole:無論怎麼存,都立刻消失(黑洞)

tips:show engines; # 檢視引擎

資料介紹

資料型別

  • 用途:建立表時,為表中欄位設定資料型別
  • 原則:夠用就行,節省儲存空間
  • 常用型別:
    • 整數:tinyint,int
    • 浮點數:decimal,double
    • 字串:char,varchar
    • 日期時間:date,time,datetime
    • 列舉:enum
  • 說明:
    • 整型預設情況下是帶符號的,儲存年齡,等級,id等等
    • int(10):括號中數字無作用,因此只需寫int
    • decimal:decimal(10,2)表示存5位數,小數佔2位
    • char:固定長度的字串,若位數不滿則自動補空格,預設長度為1
    • varchar:可變長度的字串
    • 對於圖片、視訊等檔案,不儲存在資料庫中,而是上傳到伺服器,然後在表中儲存他的儲存路徑
    • text字串儲存大文字,一般字元超過4000是推薦使用
型別 位元組大小 eg
date 4 '2022-12-09'
time 3 '22:00:00'
datetime 8 '2022-12-09 22:00:00'

資料約束

  • 含義:在限定資料型別的基礎上額外增加要求

  • 常見約束:

    • 主鍵primary key:物理上儲存的順序,型別為int unsigned
    • 非空not null:此欄位不能為空
    • 唯一unique:此欄位值不允許重複
    • 預設default:不填寫時使用預設值
    • unsigned:無符號
    • zerofill:寬度超出填充0
    • 外來鍵foreign key:對關係欄位進行約束,為關係欄位填寫值時會到關聯的表中修改資料,若關聯欄位不存在則丟擲異常