MySQL(四)项目实战
这是本次课程的最后一次作业了。
作业七
题目:
code:
--创建表
CREATE TABLE Employee(
Id INT NOT NULL PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Salary INT NOT NULL,
Departmentld INT
);
INSERT INTO Employee (Id,Name,Salary,Departmentld)
VALUES (1,'Joe',70000,1),
(2,'Herry',80000,2),
(3,'Sam',60000,2),
(4,'Max',90000,1);
CREATE TABLE Department(
Id INT NOT NULL PRIMARY KEY,
Name VARCHAR(50) NOT NULL);
INSERT INTO Department VALUES
(1,'IT'),
(2,'Sales');
SELECT D.name AS department,E.name,E.salary
FROM Employee AS E
JOIN Department AS D
ON E.department_id = D.id
WHERE salary IN(
SELECT MAX(salary)
FROM Employee
GROUP BY department_id);
作业八
题目:
code:
CREATE TABLE seat(
id INT NOT NULL PRIMARY KEY,
student CHAR(10)
);
INSERT INTO seat
VALUES
(1, 'Abbot'),
(2, 'Doris'),
(3, 'Emerson'),
(4, 'Green'),
(5, 'Jeams');
SELECT
(CASE
WHEN id%2=1 AND id!=(SELECT MAX(id) FROM seat) THEN id+1
WHEN id%2=0 THEN id-1
ELSE id
END)id,student
FROM seat
ORDER BY id;
作业九
题目:
code:
CREATE TABLE Scores(
id INT NOT NULL PRIMARY KEY,
score FLOAT);
INSERT INTO Scores
VALUES
(1, 3.50),
(2, 3.65),
(3, 4.00),
(4, 3.85),
(5, 4.00),
(6, 3.65);
SELECT s.score,
(SELECT count(DISTINCT score)
FROM Scores
WHERE score>=s.score) AS `Rank`
FROM Scores AS s
ORDER BY score DESC;
作业十
题目:
暂时还没想出来,等明天我研究一下其他同学的。
作业十一:
题目:
code:
--插入数据
INSERT INTO Employee
VALUES(5, 'Janet', 69000, 1),(6, 'Randy', 85000, 1);
--查询
SELECT d.Name Department, e1.Name Employee, e1.Salary Salary
FROM Employee AS e1
JOIN Department AS d
ON e1.department_id = d.Id
WHERE 3 > (
SELECT COUNT(DISTINCT e2.Salary)
FROM Employee e2
WHERE e2.Salary > e1.Salary AND e1.department_id = e2.department_id
)
ORDER BY d.Name, e1.Salary DESC;
作业十二:
题目:
code:
SELECT s1.Score,
(SELECT COUNT(s2.Score)+1
FROM Scores AS s2
WHERE s2.Score > s1.Score) AS `Rank`
FROM Scores AS s1
ORDER BY s1.Score DESC;
这两天事情确实多,最后一次作业很马马虎虎的对付了,抱歉,我会抽个时间重新修改一下。