Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 176 additions & 0 deletions mysql_allcode.txt
Original file line number Diff line number Diff line change
@@ -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`;