MySQl基础入门⑯【操作视图】完结

上一边文章内容

表准备

sql 复制代码
CREATE TABLE Students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(255),
    major VARCHAR(100),
    score int,
    phone_number VARCHAR(20),
    entry_year INT,
    salary DECIMAL(10, 2)
);

数据准备

sql 复制代码
INSERT INTO Students (id, name, email, major, score, phone_number, entry_year, salary)
VALUES
(1, '朱晓明', '[email protected]', '计算机科学与技术', 88, '13900111222', 2019, 12000.00),
(2, '刘洋', '[email protected]', '电子信息工程', 92, '13822223333', 2020, 9800.00),
(3, '陈静', '[email protected]', '工商管理', 85, '13733334444', 2018, 10500.00),
(4, '杨辉', '[email protected]', '软件工程', 90, '13644445555', 2017, 11000.00),
(5, '马丽', '[email protected]', '英语语言文学', 89, '13555556666', 2021, 8500.00),
(6, '何勇', '[email protected]', '机械设计制造及其自动化', 87, '13466667777', 2016, 13000.00),
(7, '宋佳', '[email protected]', '临床医学', 91, '13377778888', 2022, 10000.00),
(8, '罗敏', '[email protected]', '通信工程', 86, '13288889999', 2015, 12500.00),
(9, '唐薇', '[email protected]',  '会计学', 93, '13199990000', 2020, 9500.00),
(10, '曹雷', '[email protected]', '土木工程', 84, '13000001111', 2019, 11500.00),
(11, '张波', '[email protected]', '电子信息工程', 90, '13312345678', 2020, 9200.00),
(12, '李娜', '[email protected]', '工商管理', 87, '13723456789', 2019, 10200.00),
(13, '王刚', '[email protected]', '软件工程', 88, '13834567890', 2018, 10800.00),
(14, '赵敏', '[email protected]', '英语语言文学', 94, '13545678901', 2021, 8800.00),
(15, '孙悦', '[email protected]', '机械设计制造及其自动化', 83, '13656789012', 2017, 13200.00),
(16, '周杰', '[email protected]', '临床医学', 95, '13767789101', 2022, 9800.00),
(17, '吴亮', '[email protected]', '通信工程', 82, '13887889101', 2015, 12300.00),
(18, '郑洁', '[email protected]', '会计学', 91, '13901234567', 2020, 9300.00),
(19, '冯浩', '[email protected]', '土木工程', 81, '13112345678', 2019, 11300.00),
(20, '陈晨', '[email protected]', '电子信息工程', 89, '13223456789', 2020, 9600.00),
(21, '褚强', '[email protected]', '工商管理', 97, '13345678901', 2018, 10300.00),
(22, '卫芳', '[email protected]', '软件工程', 86, '13456789101', 2017, 11100.00),
(23, '蒋丽', '[email protected]', '英语语言文学', 92, '13567899101', 2021, 8700.00),
(24, '沈刚', '[email protected]', '机械设计制造及其自动化', 80, '13678901123', 2016, 13100.00),
(25, '韩敏', '[email protected]', '临床医学', 96, '13789012345', 2022, 9900.00),
(26, '杨波', '[email protected]', '通信工程', 84, '13899101234', 2015, 12100.00),
(27, '朱洁', '[email protected]', '会计学', 98, '13001234567', 2020, 9700.00),
(28, '秦浩', '[email protected]', '土木工程', 85, '13112345678', 2019, 11200.00),
(29, '尤娜', '[email protected]', '电子信息工程', 93, '13223456789', 2020, 9400.00),
(30, '许强', '[email protected]', '工商管理', 88, '13334567890', 2018, 10400.00);

视图准备

创建视图

sql 复制代码
create view view_xs as select name,major,phone_number from studentsV;

1.修改视图

第一种方法:使用create or replace view 语句修改视图

可以看到,修改视图的语句和创建视图的语句是完全一样的。如果视图已经存在,那么使用修改语句对视图进行修改;如果视图不存在,那么将创建一个新的视图。

sql 复制代码
create or replace view view_xs as select name,email,entry_year from studentsV;

第二种方法:使用ALTER 语句修改视图

sql 复制代码
 alter view view_xs as select id,name,salary from studentsV where salary >=10000;

修改练习

1.在原来的视图view_xs中修改,修改成查询名字,专业,工资,且工资大于等于10000。
答案效果展示:

2.在原来的视图view_xs中修改,统计每个专业的人数。
答案效果展示:

3.在原来的视图view_xs中修改,按成绩排序前五的学生信息。
答案效果展示:

4.统计每个专业的平均分,并且按分数从高到低排序
答案效果展示:

视图准备

创建视图

sql 复制代码
create view view_up as select name,major,phone_number from studentsV;

2.利用视图更新数据

第一种方法:使用update语句更新视图

使用update语句对视图原有的数据进行更新。

把手机号码13822223333的姓名改为张三。

sql 复制代码
update view_up set name = '张三' where phone_number =13822223333;

第二种方法:使用insert语句更新视图

在刚刚的视图view_up中插入一条数据

sql 复制代码
insert into view_up (name,major,phone_number) values("李四","软件工程","13334567899");

使用insert语句对视图中的基本表插入一条记录李四。

第三种方法:使用delete语句更新视图

可以使用DELETE语句对视图中的基本表删除部分记录

注意点:

3.删除视图

删除视图

sql 复制代码
drop view view_up;
相关推荐
陈丹阳(滁州学院)12 分钟前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16091 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.2 小时前
【Oracle】数据仓库
数据库·oracle
恰薯条的屑海鸥3 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖3 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
曼汐 .3 小时前
数据库管理与高可用-MySQL高可用
数据库·mysql
MickeyCV3 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
2301_793102493 小时前
Linux——MySql数据库
linux·数据库
喵叔哟3 小时前
第4章:Cypher查询语言基础
数据库
刘 大 望3 小时前
数据库-联合查询(内连接外连接),子查询,合并查询
java·数据库·sql·mysql