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, '朱晓明', 'zxming@student.edu.cn', '计算机科学与技术', 88, '13900111222', 2019, 12000.00),
(2, '刘洋', 'liuyang@example.com', '电子信息工程', 92, '13822223333', 2020, 9800.00),
(3, '陈静', 'chenjing@example.edu', '工商管理', 85, '13733334444', 2018, 10500.00),
(4, '杨辉', 'yanghui@student.university.edu.cn', '软件工程', 90, '13644445555', 2017, 11000.00),
(5, '马丽', 'mali@example.com', '英语语言文学', 89, '13555556666', 2021, 8500.00),
(6, '何勇', 'heyong@example.net', '机械设计制造及其自动化', 87, '13466667777', 2016, 13000.00),
(7, '宋佳', 'songjia@example.org', '临床医学', 91, '13377778888', 2022, 10000.00),
(8, '罗敏', 'luomin@alumni.edu.cn', '通信工程', 86, '13288889999', 2015, 12500.00),
(9, '唐薇', 'tangwei@university.edu',  '会计学', 93, '13199990000', 2020, 9500.00),
(10, '曹雷', 'caolei@example.com', '土木工程', 84, '13000001111', 2019, 11500.00),
(11, '张波', 'zhangbo@example.com', '电子信息工程', 90, '13312345678', 2020, 9200.00),
(12, '李娜', 'lina@example.edu', '工商管理', 87, '13723456789', 2019, 10200.00),
(13, '王刚', 'wanggang@student.university.edu.cn', '软件工程', 88, '13834567890', 2018, 10800.00),
(14, '赵敏', 'zhaomin@example.com', '英语语言文学', 94, '13545678901', 2021, 8800.00),
(15, '孙悦', 'sunyue@example.net', '机械设计制造及其自动化', 83, '13656789012', 2017, 13200.00),
(16, '周杰', 'zhoujie@example.org', '临床医学', 95, '13767789101', 2022, 9800.00),
(17, '吴亮', 'wuliang@alumni.edu.cn', '通信工程', 82, '13887889101', 2015, 12300.00),
(18, '郑洁', 'zhengjie@university.edu', '会计学', 91, '13901234567', 2020, 9300.00),
(19, '冯浩', 'fenghao@example.com', '土木工程', 81, '13112345678', 2019, 11300.00),
(20, '陈晨', 'chenchen@example.edu', '电子信息工程', 89, '13223456789', 2020, 9600.00),
(21, '褚强', 'chuqiang@student.university.edu.cn', '工商管理', 97, '13345678901', 2018, 10300.00),
(22, '卫芳', 'weifang@example.com', '软件工程', 86, '13456789101', 2017, 11100.00),
(23, '蒋丽', 'jiangli@example.net', '英语语言文学', 92, '13567899101', 2021, 8700.00),
(24, '沈刚', 'shengang@example.org', '机械设计制造及其自动化', 80, '13678901123', 2016, 13100.00),
(25, '韩敏', 'hanmin@alumni.edu.cn', '临床医学', 96, '13789012345', 2022, 9900.00),
(26, '杨波', 'yangbo@university.edu', '通信工程', 84, '13899101234', 2015, 12100.00),
(27, '朱洁', 'zhujie@example.com', '会计学', 98, '13001234567', 2020, 9700.00),
(28, '秦浩', 'qinhao@example.edu', '土木工程', 85, '13112345678', 2019, 11200.00),
(29, '尤娜', 'youna@student.university.edu.cn', '电子信息工程', 93, '13223456789', 2020, 9400.00),
(30, '许强', 'xuqiang@example.com', '工商管理', 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;
相关推荐
是程序喵呀1 分钟前
MySQL备份
android·mysql·adb
指尖上跳动的旋律8 分钟前
shell脚本定义特殊字符导致执行mysql文件错误的问题
数据库·mysql
一勺菠萝丶19 分钟前
MongoDB 常用操作指南(Docker 环境下)
数据库·mongodb·docker
m0_748244831 小时前
StarRocks 排查单副本表
大数据·数据库·python
C++忠实粉丝1 小时前
Redis 介绍和安装
数据库·redis·缓存
wmd131643067122 小时前
将微信配置信息存到数据库并进行调用
数据库·微信
是阿建吖!2 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库
凡人的AI工具箱2 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
ClouGence2 小时前
Redis 到 Redis 数据迁移同步
数据库·redis·缓存
m0_748236582 小时前
《Web 应用项目开发:从构思到上线的全过程》
服务器·前端·数据库