上一边文章内容
表准备
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;
