视图与函数相关练习

-- 创建视图查询员工的姓名,职位,工资和部门编号,并通过视图查询
create VIEW view1 AS
SELECT ename,job,sal,d.deptno FROM  emp e INNER JOIN dept d ON e.DEPTNO=d.DEPTNO;
-- 通过视图查询
SELECT* FROM view1;
-- 创建视图查询工资大于3000的员工名称,职位,工资和部门编号,并通过视图查询
CREATE view view2 AS
SELECT ename,job,sal,d.deptno FROM  emp e INNER JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.SAL>=3000;
SELECT*FROM view2;
-- 创建查询职位是“clark”的员工名称,职位,工资和部门编号,并通过视图查询
CREATE view view3 AS
SELECT ename,job,sal,d.deptno FROM  emp e INNER JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.ename="clark";
SELECT*FROM view3;
-- 创建视图,查询员工表中工资大于2000的员工信息,
-- 通过上面视图插入一条员工信息,要求工资大于1000
-- 测试,视图加了with check option 后,上面操作是否成功
CREATE VIEW view4 AS
SELECT *from emp WHERE  SAL>2000
SELECT *FROM view4;
INSERT INTO view4 VALUES(7890,'zkas',null,null,'1980-12-17',2000,null,null);
SELECT *FROM view4;
SELECT *FROM emp;
ALTER VIEW view4
AS
SELECT *from emp WHERE  SAL>2000 WITH CHECK OPTION;
INSERT INTO view4 VALUES(7892,'zkas',null,null,'1980-12-17',2000,null,null);
-- 查看定义视图
show CREATE VIEW view1;
-- 查看视图
SHOW TABLES
--  删除视图、
DROP VIEW view1;
-- 创建函数,查询最高的工资
CREATE function  myfun() RETURNS INT(9)
BEGIN 
DECLARE sal2 INT(9);
SELECT MAX(sal) INTO sal2 FROM emp;
RETURN sal2;
end;
-- 调用函数
SELECT myfun();
-- 创建一个函数,输入课程编号,返回课程名字
CREATE FUNCTION myfun2( ID INT(9)) RETURNS VARCHAR(16)
BEGIN
DECLARE name2 VARCHAR(16);
SELECT SubjectName INTO name2  FROM `subject` WHERE SubjectId=ID;
RETURN name2;
END; 
SELECT myfun2(3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMJ_wmj75

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值