目录
1、基于前面建立的student表,建立学生视图view_stu,输出学号、姓名、系别;
2、基于前面建立的student表和score表,建立学生视图view_stu_sco,输出学号、姓名、课程名、成绩;
3、在学生视图view_stu中,插入一条新记录,新记录以自己的真实学号,姓名和系别输入;
4、在学生视图view_stu中,将插入的自己学号的记录进行更新,更新系别为computer;
提示:以下是本篇文章正文内容,下面案例可供参考
一、视图是什么?
数据库视图是一个虚拟的表,它是在数据库中的一个查询结果,可以像表一样使用。视图是一种逻辑结构,可以对一个或多个表进行选择、过滤、分组等操作,从而简化了复杂查询的使用,使得用户能够更方便地获取所需的数据。
二、使用步骤(示例)
sql语句如下
#1创建一个学生表student和一个分数表score, student表和score分数表的表结构
CREATE TABLE student (
stu_id INT(10) PRIMARY KEY not null COMMENT '学号',
stu_name VARCHAR(20) NOT NULL COMMENT '姓名',
sex VARCHAR(2) COMMENT '性别',
birth YEAR COMMENT '出生年份',
department VARCHAR(20) COMMENT '院系',
addr VARCHAR(50) COMMENT '家庭住址'
);
CREATE TABLE score(
score_id INT(10) PRIMARY KEY UNIQUE NOT NULL auto_increment COMMENT '编号',
stu_id INT(10) NOT NULL COMMENT '学号',
c_name VARCHAR(20) COMMENT '课程名',
grade INT(10) COMMENT '分数'
);
#2、向student表中插入数据,数据如下:
INSERT INTO student
VALUES
( 901, '张飞', '男', 1985, '计算机系', '河北省涿州市' ),
( 902, '关羽', '男', 1986, '中文系', '山西省运城市' ),
( 903, '貂蝉', '女', 1990, '中文系', '山西省沂州市' ),
( 904, '刘备', '男', 1990, '英语系', '河北省涿州市' ),
( 905, '小乔', '女', 1991, '英语系', '安徽省潜山市' ),
( 906, '赵云', '男', 1988, '计算机系', '河北省正定市' );
#向score表中插入数据,数据如下:
INSERT INTO score ( stu_id, c_name, grade )
VALUES
( 901, '计算机', 98 ),
( 901, '英语', 80 ),
( 902, '计算机', 65 ),
( 902, '中文', 88 ),
( 903, '中文', 95 ),
( 904, '计算机', 70 ),
( 904, '英语', 92 ),
( 905, '英语', 94 ),
( 906, '计算机', 90 ),
( 906, '英语', 85 );
1、基于前面建立的student表,建立学生视图view_stu,输出学号、姓名、系别;
CREATE VIEW view_stu AS
SELECT stu_id ,stu_name,department FROM student;
2、基于前面建立的student表和score表,建立学生视图view_stu_sco,输出学号、姓名、课程名、成绩;
CREATE VIEW view_stu_sco AS
SELECT student.stu_id, stu_name,c_name,grade FROM
student JOIN score ON student.stu_id = score.stu_id;
3、在学生视图view_stu中,插入一条新记录,新记录以自己的真实学号,姓名和系别输入;
INSERT INTO view_stu VALUES (19000910,'自由舰','人工智能');
4、在学生视图view_stu中,将插入的自己学号的记录进行更新,更新系别为computer;
UPDATE view_stu SET department = 'computer' WHERE stu_id = 19000910;
5、在学生视图view_stu中,删除自己学号的记录。
DELETE from view_stu WHERE stu_id = 19000910;
总结
数据库视图的作用如下:
- 简化复杂查询:通过数据库视图,用户可以对多张表进行选择、过滤、分组等操作,从而简化复杂查询的使用。视图可以针对用户的需求进行设计,使得用户能够更方便地获取所需的数据。
- 数据安全:通过视图,数据库管理员可以限制用户访问特定的数据行、列或表,以保护敏感数据的安全性。管理员可以授权用户对视图进行访问,而不是直接对表进行访问,从而保护数据的安全性。
- 数据独立性:通过视图,可以将业务逻辑和数据结构进行分离,从而提高数据独立性。如果数据库中的表结构发生变化,只需更新视图的定义,而不需要修改应用程序或其他依赖于该表的对象。
- 性能优化:通过视图,可以将一些常用的查询结果缓存下来,从而提高查询的性能。视图中存储的查询结果可以使用索引进行优化,从而提高查询效率。 综上所述,数据库视图是一种非常有用的工具,可以简化复杂查询、提高数据安全性、提高数据独立性和优化查询性能。