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;
相关推荐
小陈工2 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull6 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花6 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸6 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain6 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希7 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神7 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员7 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java7 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿7 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb