From e443280f4cd362c6f110cadb4a93f71b5e1f11b4 Mon Sep 17 00:00:00 2001 From: halfsec <99321422+halfsec@users.noreply.github.com> Date: Thu, 10 Feb 2022 20:39:25 +1000 Subject: [PATCH] add an entire version mysql_allcode mysql all codes are in this change --- mysql_allcode.txt | 176 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 mysql_allcode.txt diff --git a/mysql_allcode.txt b/mysql_allcode.txt new file mode 100644 index 0000000..548fcf2 --- /dev/null +++ b/mysql_allcode.txt @@ -0,0 +1,176 @@ +SET SQL_SAFE_UPDATES = 0; + +-- 创建公司数据库表格 +DROP TABLE `student`; + +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 + ); + +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 +); + +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; + +CREATE TABLE `client`( + `client_id` INT PRIMARY KEY, + `client_name` VARCHAR(20), + `phone` VARCHAR(20) +); + +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 SET NULL, + FOREIGN KEY(`client_id`) REFERENCES `client`(`client_id`) ON DELETE CASCADE +); + +INSERT INTO `branch` VALUES(1, '研发', NULL); +INSERT INTO `branch` VALUES(2, '行政', NULL); +INSERT INTO `branch` VALUES(3, '资讯', NULL); + +select * from `branch`; + + +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, '小兰', '1942-11-10', 'F', 84000, 1, 207); + +select * from `Employee`; + +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; + +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'); + + +INSERT INTO `works_with` VALUES(206, 400, '70000'); +INSERT INTO `works_with` VALUES(207, 401, '24000'); +INSERT INTO `works_with` VALUES(208, 402, '9800'); +INSERT INTO `works_with` VALUES(208, 403, '24000'); +INSERT INTO `works_with` VALUES(210, 404, '87940'); + +-- 1.1 去得员工的资料 +SELECT * FROM `employee`; + +-- 1.2 取得客户资料 +SELECT * FROM `client`; + +-- 2.1 按薪水从低到高取得员工资料 +SELECT * FROM `employee` ORDER BY `salary`; + +-- 2.2 按薪水从高到低取得员工资料 +SELECT * FROM `employee` ORDER BY `salary` DESC; + +-- 2.3 按性别从低到高取得员工资料(A是最小的,Z是最大的) +SELECT * FROM `employee` ORDER BY `sex`; + +-- 2.4 按性别从低到高的薪水,取得员工资料 +SELECT * FROM `employee` ORDER BY `sex`, `salary` DESC; + +-- 2.5. 取得薪水前3高的员工 +SELECT * FROM `employee` ORDER BY `SALARY` DESC LIMIT 3; + +-- 2.6 取得所有员工名字 +SELECT `name` FROM `employee`; + +-- 3.1 员工性别去重 +SELECT DISTINCT `sex` FROM `employee`; + +-- 4.1 取得员工人数 +SELECT COUNT(*) FROM `employee`; + +-- 4.2 去Employee这个表里看,有sup_id的属性的record有几笔 +SELECT COUNT(`sup_id`) FROM `employee`; + +-- 4.3 取得出生于1970-01-01之后的女性员工人数 +SELECT COUNT(*) FROM `employee` WHERE `birth_date` > '1970-01-01' AND `sex` = 'F'; + +-- 4.4 取得所有员工的平均薪水 +SELECT AVG(`salary`) FROM `employee`; + +-- 4.5 取得所有员工的薪水总和 +SELECT SUM(`salary`) FROM `employee`; + +-- 4.6 取得薪水最高的员工 +SELECT MAX(`salary`) FROM `employee`; + +-- 4.7 取得薪水最低的员工 +SELECT MIN(`salary`) FROM `employee`; + +-- Wildcard +SELECT * FROM `client` WHERE `cliEnt_name` LIKE '%艾%'; + +SELECT * FROM `employee` WHERE `birth_date` LIKE'_____09%'; + +SELECT `name`, `sex` FROM `employee` UNION SELECT `client_name` FROM `client` UNION SELECT `branch_name` FROM `branch`; + +SELECT `emp_id` AS `total_id`, `name` AS `total_name` FROM `employee` UNION SELECT `client_id`, `client_name` FROM `client`; + +SELECT `salary` AS `total_money` FROM `employee` UNION SELECT `total_sales` FROM `works_with`; + +-- 新写一句话 +INSERT INTO `branch` VALUES(4, '偷懒', NULL); + +-- 取得部门所有经理的名字 +SELECT `emp_id`, `name`, `branch_name` +FROM `employee` RIGHT JOIN `branch` +ON `employee`.`emp_id` = `branch`.`manager_id`; + +SELECT `name` FROM `employee` WHERE `emp_id`= ( + SELECT `manager_id` + FROM `branch` + WHERE `branch_name` = '研发' +); + + +SELECT `name` +FROM `employee` +WHERE `emp_id` IN( + SELECT `emp_id` + FROM `works_with` + WHERE `total_sales` > 50000 +); + +DELETE FROM `employee` +WHERE `emp_id` = 207; + +SELECT * FROM `branch`; + +SELECT * FROM `works_with`; +