首页 > 数据库 >Sql 视图

Sql 视图

时间:2023-06-13 15:44:48浏览次数:52  
标签:grade 视图 查询 Sql 数据 id

1.定义:视图是由多张实体表联合查询后,组成的一张不含任何数据的虚拟表,存在表名,字段列。

2.为什么使用视图:

视图保存的是select语句,可以简化用户操作,将频繁使用的查询语句保存成视图,可以不用每次都重新写Sql语句。在创建好视图后,可以将视图和其他实体表一样,用Select语句进行查询数据。

3.1视图的写法:

创建视图使用 Create view, 视图名称 v_grade.

CREATE VIEW v_grade

AS

SELECT id,avg(mark) FROM grade

WHERE sex='男'

GROUP BY id

HAVING avg(mark)>80

3.2使用视图

可以使用select ,对已经创建的视图 v_grade进行数据查询

SELECT v_id,v_avg  FROM v_grade

WHERE v_id='001'

3.3 删除视图

DROP VIEW v_grade;

3.4视图数据增加和修改

视图也可以使用INSERT,UPDATE进行数据的增和改,但是需要符合以下条件:

(1)视图FROM子句只有一张表;

(2)未使用GROUP BY子句,未使用HAVING子句

在对视图新增和修改数据后,视图对应表中的数据同步修改。

视图在一个实体表的基础上筛选而得,那么给视图增加一条数据的语句执行后,实体表也会同步增加一条数据。以此保证数据的一致性。

 4.视图的优缺点:

优点:

1.安全性,视图可以让程序员或者用户,看到指定的数据,而非完整的数据,避免敏感数据的暴露。

2.简单,易维护。视图可以简化用户对数据的理解,也可以简化他们的操作。

3.逻辑数据独立性。视图可以使应用程序和数据表在一定程度上独立。如果没有视图,应用是建立在表上的,有了视图后,程序可以建立在视图之上,将程序与数据库表分割开来。

缺点:

1.消耗性能:Sql server把视图的查询转变成基础表的查询,如果视图是个复杂的多表查询组成,即使视图的简单查询,Sql server也把它变成复杂的结合体进行查询,需要花费一定的时间。

2.修改限制:当用户需要修改视图的某些数据时,Sql server将它转化为对基础表的数据修改。对于简单视图,这是很方便的。对于较复杂的视图,可能是不可修改的。

 

标签:grade,视图,查询,Sql,数据,id
From: https://www.cnblogs.com/KevinSteven/p/17477634.html

相关文章

  • mysql mariadb修改端口后启动失败
    修改端口号启动失败关闭SETLinux临时关闭,不需要重启电脑,重启后失效执行命令:setenforce0永久关闭,需要重启机器,修改/etc/selinux/config文件将SELINUX=enforcing改为SELINUX=disabled重启mysql服务即可......
  • Sql 存储过程
    定义: StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的......
  • sql 一对多,并且合并多的那字段
    SELECTwa.idASalbum_id,om.truenameASauthor,wa.titleASalbumTitle,wac.titleAScategoryTitle,wa.createtimeASpostTime, ......
  • Go 语言之 sqlx 库使用
    Go语言之sqlx库使用一、sqlx库安装与连接sqlx介绍sqlxisalibrarywhichprovidesasetofextensionsongo'sstandarddatabase/sqllibrary.Thesqlxversionsofsql.DB,sql.TX,sql.Stmt,etal.allleavetheunderlyinginterfacesuntouched,sothatthei......
  • spring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle)
    序号类型地址1MySQLMySQL操作之概念、SQL约束(一)2MySQLMySQL操作之数据定义语言(DDL)(二)3MySQLMySQL操作之数据操作语言(DML)(三)4MySQLMySQL操作之数据查询语言:(DQL)(四-1)(单表操作)5MySQLMySQL操作之数据查询语言:(DQL)(四-2)(多表查询)6MySQLMySQL操作之数据控制语言:(DC)(五)7MySQLMySQL操作之数......
  • Druid解析SQL获取注释、表明
    一、简介Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。文档地址https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98参考地址:https://github.com/alibaba/druid/issues/2457https://github.com/alibaba/druid/issues/2426......
  • mysql笔记
    1.mysql初始密码修改:进入mysql后,输入:ALTERUSERroot@localhostIDENTIFIEDBY'新密码';2.mysql打开命令:1.mysql-uroot-p,密码;2.mysql-uroot-p密码;3.显示所有数据库:showdatabases;;4.删除数据库:dropdatabase数据库名;;......
  • MySQL 8 配置文件
    #[client]#user=root#password=1111aaA_[mysql]prompt="\u@mysqldb\R:\m:\s[\d]>"no-auto-rehash[mysqld_safe]malloc-lib=tcmalloc[mysqldump]single-transaction[mysqld]#basicsettings#server-id=11port=3306user=mys......
  • mysql数据库备份及恢复命令mysqldump,source的用法
    还原一个数据库:mysql-hlocalhost-uroot-p123456www<c:/www.sql备份一个数据库:mysqldump-hlocalhost-uroot-p123456www>d:/www2008-2-26.sql  //以下是在程序中进行测试//$command="mysqldump--opt-h$dbhost-u$dbuser-p$dbpass$dbname|gzip>$backup......
  • 如何将 pl/sql Developer 中查询的结果集导出到 Excel . txt . html . xml csv中?
    如何将pl/sqlDeveloper中查询的结果集导出到Excel.txt.html.xmlcsv中?https://blog.csdn.net/fish_boneold/article/details/83919116选中结果集,点击右键选 copytoexcel就可导出到一个临时的excel文件了,如temp001.xls,然后选择文件-另存为保存为我们的文......