本次的教學,主要分享MySQL在建立資料庫後,開始要新增資料表及對資料表(Table)做後續一些基本操作的相關知識,本教學是以Mysql 8.0為出發的教學,當然一些通用語法Mysql 8.0之前的版本也適用喔,所以大家不用擔心,只要一起做,相信你也可以了解MySQL 中的資料表操作是怎麼一回事。
Table of Contents
本教學的範例說明
延續Day01教學以電子商務線上購物所會用的相關資料表為基礎,後續會再做相關的延伸
資料庫名稱:rdpapashop
資料表名稱:user 會員資料表
建立資料表(基本型)
use `rdpapashop`;
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) DEFAULT NULL,
password varchar(255) DEFAULT NULL,
email varchar(255) DEFAULT NULL,
created_at timestamp NULL DEFAULT current_timestamp(),
updated_at timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),
PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
語法解析
use使用資料庫: use <資料庫名稱>;
CREATE TABLE 資料表名稱 (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
PRIMARY KEY (id) USING BTREE =>指定欄位id為主索引鍵,使用BTREE建立資料庫索引。
ENGINE=InnoDB 使用預設的資料庫引擎InnoDB
DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 使用utf8mb4當作字元編碼
建立資料表(進階型)
use `rdpapashop`;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`created_at` timestamp(0) NULL DEFAULT current_timestamp(0),
`updated_at` timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
RDPAPA tip
建議在剛建立資料表的時候就要把CHARACTER與COLLATE設定好,要不然大部分MySQL資料庫,如果你不指定對應的設定,那他預設是使用latin1的字集,一開始使用可能沒什麼問題,當你資料越來越多,你會花很多時間在做字集轉換上面。
新增資料
# 插入資料
INSERT INTO users VALUES (1, 'rdpapa', '$%XJidix', '[email protected]', '2020-10-08 20:19:23', '2020-10-08 20:21:38');
修改資料
UPDATE users SET password = "12345" WHERE username = "rdpapa";
刪除資料
# 刪除資料
DELETE FROM users WHERE username = "rdpapa";
查詢資料
# 查詢資料
SELECT * FROM users;
SELECT
id, username, password, email, created_at, updated_at
FROM
users
資料庫語法重點整理
key1:連線到資料庫
=> show databases;
key2:建立資料庫 CREATE DATABASE `資料庫名`;
=>CREATE DATABASE `rdpapashop`;
key3:查詢目前有那些資料庫
=>show databases;
key4:查詢目前預設的資料庫
=>SELECT DATABASE();
key5:使用資料庫 USE `資料庫名`;
=>use `rdpapashop`;
key6:刪除資料庫 DROP DATABASE 資料庫名;
=>DROP DATABASE `rdpapashop`;
key7:顯示目前資料庫支持的CHARACTER SET;
=>SHOW CHARACTER SET;
key8:顯示目前資料庫支持的COLLATION;
=>SHOW COLLATION;
key9:顯示目前資料庫資料庫版本;
=>select version();
key10:顯示目前登入使用者;
=> select user();
key11:顯示目前資料庫支援的儲存引擎;
=> show engines;
Reference
- MySQL 8.0 Reference Manual Data Types
- MySQL 8.0 Reference Manual Storage-Engine
- MySQL 8.0 Reference Manual Row-Format
- MySQL 8.0 Reference Manual CREATE TABLE Statement
- MySQL 8.0 Reference Manual INSERT Statement
- MySQL 8.0 Reference Manual UPDATE Statement
- MySQL 8.0 Reference Manual DELETE Statement
- MySQL 8.0 Reference Manual SELECT Statement
你好,我是RD爸,希望透過我的紀錄,可以帶給你一些新的想法~ 專注於各式3C產品的開箱評測、程式相關技術及理財筆記。
email ►[email protected]