MySQL 基本語法 (六) 創建公司資料庫

閱讀時間約 6 分鐘
raw-image

依照上圖的資料表創建出公司的資料庫

  1. Employee
CREATE TABLE `employee`(
`emp_id` INT PRIMARY KEY,
`name` VARCHAR(20),
`birth_date` DATE,
`sex`VARCHAR(1),
`salary` INT,
`branch_id` INT,
`sup_id` INT
);
  1. Branch
CREATE TABLE `branch`(
`branch_id` INT PRIMARY KEY,
`branch_name` VARCHAR(20),
`manager_id` INT,
FOREIGN KEY (`manager_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL
);

新增完之後才可以增加employee table中的FORIEGN KEY

ALTER TABLE `employee`
ADD FOREIGN KEY(`branch_id`)
REFERENCES `branch`(`branch_id`)
ON DELETE SET NULL;

ALTER TABLE `employee`
ADD FOREIGN KEY(`sup_id`)
REFERENCES `employee`(`emp_id`)
ON DELETE SET NULL;
  1. Client
CREATE TABLE `client`(
`client_id` INT PRIMARY KEY,
`client_name` VARCHAR(20),
`phone` VARCHAR(20)
);
  1. Work_with
CREATE TABLE `works_with`(
`emp_id` INT ,
`client_id` INT ,
`total_sales` INT,
PRIMARY KEY(`emp_id`,`client_id`),
FOREIGN KEY (`emp_id`) REFERENCES `employee`(`emp_id`) ON DELETE CASCADE,
FOREIGN KEY (`client_id`) REFERENCES `client`(`client_id`) ON DELETE CASCADE
);


開始新增資料

  1. 先新增部門branch的資料,把manager_id設成NULL
INSERT INTO `branch` VALUES( 1, '研發', NULL);
INSERT INTO `branch` VALUES( 2, '行政', NULL);
INSERT INTO `branch` VALUES( 3, '資訊', NULL);
  1. 新增員工資料
INSERT INTO `employee` VALUES(206, '小黃', '1998-10-08', 'F', 50000, 1, NULL);
INSERT INTO `employee` VALUES(207, '小綠', '1985-09-16', 'M', 29000, 2, 206);
INSERT INTO `employee` VALUES(208, '小黑', '2000-12-19', 'M', 35000, 3, 206);
INSERT INTO `employee` VALUES(209, '小白', '1997-01-22', 'F', 39000, 3, 207);
INSERT INTO `employee` VALUES(210, '小藍', '1925-11-10', 'F', 84000, 1, 207);
  1. 修改branch中的manager_id
UPDATE `branch`
SET `manager_id` = 206
WHERE `branch_id` = 1;

UPDATE `branch`
SET `manager_id` = 207
WHERE `branch_id` = 2;

UPDATE `branch`
SET `manager_id` = 208
WHERE `branch_id` = 3;
  1. 新增顧客資料`client`
INSERT INTO `client` VALUES(400, '阿狗', '254354335');
INSERT INTO `client` VALUES(401, '阿貓', '25633899');
INSERT INTO `client` VALUES(402, '旺來', '45354345');
INSERT INTO `client` VALUES(403, '露西', '54354365');
INSERT INTO `client` VALUES(404, '艾瑞克', '18783783');
  1. 新增員工和顧客關西`work_with`
INSERT INTO `works_with` VALUES(210, 400, '70000');
INSERT INTO `works_with` VALUES(210, 401, '24000');
INSERT INTO `works_with` VALUES(210, 402, '9800');
INSERT INTO `works_with` VALUES(210, 403, '24000');
INSERT INTO `works_with` VALUES(210, 404, '87940');


7會員
47內容數
這裡會放一些我寫過的 Leetcode 解題和學習新技術的筆記
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
[Database][MySQL]資料型態底下列出常用的資料類型: TINYINT:最小的整數,有符號整數-128~127;無符號整數0~255。 SMALLINT:短整數,有符號整數-32,768~32,767;無符號整數0~65,535。 MEDIUMINT:中型整數,有符號整數-8,388,608~8,388,607;無符號整數
Thumbnail
avatar
小黑
2023-11-23
SQL | SQL 語法基礎篇 (1)SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
avatar
Jeremy Ho
2023-10-03
MySQL與MongoDB:關聯式與非關聯式資料庫比較在現代資訊科技的浪潮下,資料庫管理系統扮演著舉足輕重的角色,決定著企業和開發者如何有效地儲存、查詢和操作數據。MySQL和MongoDB是兩種廣泛使用的資料庫,分別代表了傳統的關聯式資料庫(RDBMS)和新興的非關聯式資料庫(NoSQL)的典型。
Thumbnail
avatar
Kevin_malamute |凱文-馬拉穆
2023-08-15
MySQL 資料庫的時間溢位問題UNIX 在設計時,用 32 位元為基礎設計,Timestamp (time_t 結構) 順理成章也是 32 位元 (signed int32),從 1970 年開始算,導致它能記錄的時間在 2038 年會溢位變負數。
Thumbnail
avatar
WILSON PENG
2022-10-19
[MySQL] Restore範例資料庫有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
avatar
衣服子
2021-11-08
MySQL DATE_SUBMySQL 取得現在日期半年前的日期: DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH) 本筆記參考: https://www.w3schools.com/sql/func_mysql_date_sub.asp
Thumbnail
avatar
Vic Lin
2021-09-28
MySQL group_concat merge two column to json以下以Laravel為例,一般group_concat我們可能會這樣寫: E 但其實table_a_id, table_a_name可以merge成一個json,資料整理起來比較好看,可以改成這樣的寫法: E 最後response之前可以用php的json_decode把json string轉為o
avatar
Vic Lin
2021-05-14
MySQL group_concat with if condition有時候我們會需要只group concat某些條件,就可以像這樣寫: group_concat(DISTINCT IF(user.name != 'abc' AND b.b_id != c.c_id, c.name, NULL)) as d 符合這個條件的才給值,否則給null,由於group_co
avatar
Vic Lin
2021-05-12
avatar
Alan & Jane
2021-01-10
[Mysql]使用正規化篩選結果由於使用Python爬政府公開資訊進Mysql後,如果只想選取特定字串出來可以使用 WHERE 搭配 Like;但是當我們要尋找的字串非常多時,我們可以使用 REGEXP 的方式篩選,個人覺得比較有效率及程式不會太過冗長,如果有更好的作法也可以在下方回覆唷
Thumbnail
avatar
Justin
2020-02-03