iT邦幫忙

0

MySQL 學習筆記 (結構篇)

前言

新手紀錄一下學習 SQL 的過程
使用 XAMPP 內的 phpMyAdmin 作為練習平台
此篇記載 如何建立結構 (資料庫、資料表、欄位)
如有錯,歡迎提出,新手初學

大綱

  • MySQL 簡介、資料型別
  • VARCHAR vs TEXT
  • Create 建立 資料庫、資料表
  • NOT NULL / UNIQUE / DEFAULT 用法補充
  • DROP 刪除 資料庫、資料表
  • ALTER 增/刪/改欄位
  • CONCAT 合併欄位

MySQL

  • 開源的關聯性資料庫
    Primary Key 獨特、用來辨識的 Key (id)
    Foreigner Key 為關聯者的 Primary Key (user_id)

常見的 DataType

  • INT 整數
  • DECIMAL(M,N) 精確浮點數 DECIMAL(10,4)
  • M 表 數值總共需要幾個位元,N 表 小數點後幾個位元
  • VARCHAR(位元數) 字串
  • BLOB 用來儲存二進位資料 (圖檔、Files)
  • DATE 'YYYY-MM-DD'
  • TIMESTAMP 'YYYY-MM-DD HH:MM:SS'

VARCHAR vs TEXT

  • VARCHAR 實際最大長度依資料而訂
  • TEXT 長度設多少就是多少資料之外以空白補上,儲存時會附加兩個位元組,紀錄長度

Create (建立資料庫、資料表)

  • 密碼通常會 Hash 加密,長度給予 255
  • TINYINT 可用來充當 Boolean (1為是 0為否)
  • 記得最後一個欄位 後面不要加 , 號
  CREATE DATABASE test;

  CREATE TABLE users (
    id INT AUTO_INCREMENT,
    -- NOT NULL 設定該欄位不可為空
    name VARCHAR(100) NOT NULL,
    password VARCHAR(255),
    is_admin TINYINT(1),
    register_date DATETIME,
    job VARCHAR(15),
    PRIMARY KEY(id),
    -- 外來鍵
    FOREIGN KEY (job) REFERENCES JOB (JID)
  );

DROP (刪除資料庫、表單)

  DROP DATABASE test;
  DROP TABLE users;

ALTER (增/刪/改欄位)

  • ADD 新增欄位 (舊資料新欄位 會填入 null)
  • MODIFY 修改欄位
  • DROP 刪除欄位
  --  ADD 欄位名 資料類型
  ALTER TABLE `users` ADD age VARCHAR(3);
  --  MODIFY COLUMN 欄位名 資料類型
  ALTER TABLE `users` MODIFY COLUMN age INT(3);
  ALTER TABLE `users` DROP `age`;

CONCAT (合併欄位)

  1. 建立新欄位
  2. 將合併數值更新到該欄位
  -- 建立一個新的欄位,內有兩欄位的合併值
  ALTER TABLE `users` ADD `newTest` VARCHAR(50)
  UPDATE `users` SET `newTest`= CONCAT(`欄位1`,'字串',`欄位2`);

  -- 查詢兩個欄位的合併結果
  SELECT CONCAT(`欄位1`,'字串',`欄位2`) AS `新欄位名` FROM `users`

參考資料


尚未有邦友留言

立即登入留言