P120、121
题目
数据表employee
1. P120-1
创建视图emp_view1, 包含所有员工的号码、姓名和职位
1). 创建视图
CREATE VIEW emp_view1
AS SELECT employee.EmployeeID, employee.EName, employee.Title
FROM employee;
2). 查询刚才创建的视图
SHOW CREATE VIEW emp_view1;
SELECT *
FROM emp_view1;
2. P120-2
从视图 emp_view1 中查询职位为"经理"的员工信息
SELECT *
FROM employee
WHERE Title = '经理';
3. P120-3
创建视图emp_view2,包含所有员工的姓名和基本收入
1). 创建视图
CREATE VIEW emp_view2
AS
SELECT employee.EName, salary.BasicSalary
FROM employee
JOIN salary ON employee.employeeID = salary.employeeID;
2). 查询刚才创建的视图
SHOW CREATE VIEW emp_view2;
SELECT *
FROM emp_view2;
4. P120-4
从视图 emp_view2 中查询基本收入大于或等于5000元的员工姓名和收入
SELECT EName, BasicSalary
FROM emp_view2
WHERE BasicSalary >= 5000;
5. P120-5
修改视图emp_view2,将员工“王旭”的基本收入增加500元
UPDATE emp_view2
SET BasicSalary = BasicSalary + 500
WHERE EName = '王旭';
6. P121-6
修改视图 emp_view1 的定义,包含2010年后入职的员工号码、姓名和入职时间
并给视图加上 WITH CHECK OPTION
1). 修改视图
-- 删除旧的视图
DROP VIEW IF EXISTS emp_view1;
-- 创建新的视图并添加 WITH CHECK OPTION
CREATE VIEW emp_view1
AS
SELECT EmployeeID, Ename, OnboardDate
FROM employee
WHERE OnboardDate > '2010-01-01'
WITH CHECK OPTION;
2). 查询刚才创建的视图
SELECT *
FROM emp_view2;
7. P121-7
向视图 emp_view1 中插入一条记录:(0019, 李浩, 2018-11-11)
员工蒋珂员工的员工号码重复,提前改一下
1). 插入记录
INSERT INTO emp_view1 (EmployeeID, Ename, OnboardDate)
VALUES ('0019', '李浩', '2018-11-11');
2). 检查视图 emp_view1
SELECT *
FROM emp_view1;
8. P121-8
删除视图 emp_view1 中姓名为“李敏”的员工
1). 先检查 emp_view1 中的所有员工
SELECT *
FROM emp_view1;
2). 删除视图 emp_view1 中姓名为“李敏”的员工
DELETE FROM emp_view1
WHERE Ename = '李敏';
3). 再次检查员工表
SELECT *
FROM emp_view1;
9. P121-9
删除视图 emp_view1 和 emp_view2
1). 删除视图操作
DROP VIEW emp_view1;
DROP VIEW emp_view2;
2). 检查是否删除成功
SELECT *
FROM emp_view1;
SELECT *
FROM emp_view2;