精华内容
下载资源
问答
  • sqlserver 视图sql语句的效率对比

    千次阅读 2015-09-24 12:38:01
    视图sql语句的实例比较

    2015-9-25小记

    先放结论:1、执行视图的时间是执行SQL语句时间的4倍以上;2、编写sql语句的时候,可以先各种join之后再添加where过滤条件。

    1、昨天写了本文,作为小记。但是临近下班项目发布后的执行情况又让我大跌眼镜,如果调用视图,直接报超时错误。之后换做了执行SQL语句。不再报超时错误。

    2、刚开始编写sql语句的时候,把各种条件都添加到了各个UNION的select语句之中。查询时间为40秒以上。效率实在不过关,因此把查询结果放入了临时表,之后对临时表进行where筛选。此时时间缩短为10秒以上。


    因此得出上述结论,并推翻昨天文章的内容。并且,实践证明:若考虑效率,尽量避免使用视图!

    2015-9-24 小记

    此文为小记。

    最近处理项目遗留的问题。多数是数据查询分析这块内容的BUG.刚开始很不解为什么会有那么多视图。由于对视图具有天生的鄙视,总是觉得视图只是查询方便一些,但是控件和效率总是不及直接执行SQL语句快。

    但是今天,这种想法被颠覆了一下

    SELECT     t .FileID, t .Title, t .Subject, cp.TeacherId, MAX(t .Point) AS point, COUNT(DISTINCT t .UserId) AS testcount, cp.ReceiveCount, MAX(t .Score) AS maxscore, MIN(t .Score) 
                          AS minscore, ROUND(AVG(t .Score), 1) AS avgscore, cp.DownDate, max(t .UploadTime) UploadTime,u.School
     ,tt.Name
    FROM         dbo.View_Csw_TestRult_First AS t INNER JOIN
                          dbo.Csw_users AS u ON t .UserId = u.userid INNER JOIN
                          dbo.CWInforTable AS cw ON t .FileID = cw.FTPFileName INNER JOIN
                              (SELECT     COUNT(cu.userid) AS ReceiveCount, hm.FileName, cc.ClassID, cl.TeacherId, MAX(hm.DownDate) AS DownDate
                                FROM          dbo.HomeWork AS hm INNER JOIN
                                                       dbo.PK_HomeWorkAndClass AS cc ON hm.pkid = cc.HomeWorkID INNER JOIN
                                                       dbo.Csw_users AS cu ON cu.ClassId = cc.ClassID INNER JOIN
                                                       dbo.Csw_Class AS cl ON cu.ClassId = cl.ClassId
                                WHERE      hm.FileName IS NOT NULL
                                GROUP BY hm.FileName, cc.ClassID, cl.TeacherId) AS cp ON cw.ID = cp.FileName AND u.ClassId = cp.ClassID
    left join Csw_TypeTable as tt on tt.ID=t.ColumnType

    where 1=1
     and school='bsdfz' and teacherID='yqjnjbzr1' and cp.DownDate>='2015-08-28 00:00:00' and cp.DownDate<='2015-09-24 23:59:59'
    and tt.ID!=7
    and tt.Type=3
    GROUP BY t .FileID, t .Title, t .Subject, cp.TeacherId, cp.ReceiveCount, cp.DownDate,u.School
    ,tt.Name


    红色条件加入前后执行时间差别很大。一个是一分八秒,一个是两秒。看来还是空间换时间比较划算

    展开全文
  • mysql视图 create view 视图名 as sql语句

    千次阅读 2020-09-17 19:14:46
    在不同的使用场景下,比如商品展示的,商品列表,商品详情,可能会用到相同的业务逻辑,而且这个逻辑写出的sql语句特别的麻烦,没有必要重复书写多次,可以使用视图,一次创建,下一次使用相同的逻辑的时候,使用...

    视图

    定义

    一种虚拟存在的表,行和列的数据来自于视图中的查询所用的表,并且是使用视图的时候动态生成的,只保存sql逻辑,不保存结果

    视图:是虚拟的表,和普通的表一样,通过表,动态生成新数据

    1视图的使用场景

    在不同的使用场景下,比如商品展示的,商品列表,商品详情,可能会用到相同的业务逻辑,而且这个逻辑写出的sql语句特别的麻烦,没有必要重复书写多次,可以使用视图,一次创建,下一次使用相同的逻辑的时候,使用视图。

    2 基本的视图格式

    create view 视图名
    as
    sql查询语句
    
    示例:
    视图格式:
    CREATE VIEW 视图名字
    AS
    SELECT *FROM address WHERE id>2
    
    视图使用:
    SELECT * FROM 视图名
    

    3 修改视图

    1、create or replace view 视图名
       as
       查询语句
       
    2、alter view 视图名
       as  查询语句
    

    4 查看并删除视图

    #查看视图
    DESC view1
    
    # 查看创建视图的逻辑
    SHOW CREATE VIEW v1
    
    # 删除视图
    DROP VIEW viewa,vuew3
    
    注意点:
    1、查看视图 desc  视图名
    2、查看创建视图的逻辑 show create view 视图名
    3、删除视图: drop view 视图名1,名2,名3......,如果视图不存在,则报错
    

    5 更新视图

    方法1:
            CREATE OR REPLACE VIEW 视图名字
            as
            sql语句
    方法2:
            alter view 视图名
            as
            sql语句
    
    CREATE VIEW v1
    AS
    SELECT *FROM address.city from address
    
    select* from v1;
    #向视图中插入数据
    insert into v1 values(‘深圳’)
    select* from v1;  #查看视图是否修改(改了)
    select* from address; #查看表是否修改(改了)
    
    #修改表数据
    update v3 set city='广州' where city= '杭州'
    select* from address;
    
    # 视图的增删改
    INSERT INTO view8 VALUES('香蕉',5.88)
    
    SELECT * FROM goods
    
    如果向视图中插入数据,会影响原始数据
    
    UPDATE view8 SET 商品名称='可乐'
    
    删除
    DELETE FROM view8 WHERE 价格=5.88
    
    注意点:
    1、对于视图的增删改,会涉及原始表,会将原始表的数据进行修改
    2、针对这个安全问题,通过设置权限的方式进行解决,只给读权限
    

    6 不能更新的视图

    更新:insert、update、delete 涉及原始表,如果视图设置权限只给读权限,那么这三个用不了。

    不能更新的视图:

    1、包含关键字:group by(分组),distinct(去重),having(分组后的筛选,不在原始表上),union,union all。

    union用的比较多,union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复,类似于distinct(去重)。
    
    # 涉及到的更新问题
    CREATE VIEW view9
    AS
    SELECT cate_id,MAX(price) FROM goods GROUP BY cate_id
    
    SELECT * FROM view9
    
    UPDATE view9 SET MAX(price)=2 WHERE cate_id=30
    DISTINCT
    
    1、包含以下关键字的:分组函数、DISTINCT 、UNION、 UNION ALL
    
    CREATE VIEW view10
    AS
    SELECT '韭菜' sname
    
    SELECT * FROM view10
    
    UPDATE view10 SET sname='虾米'
    
    2、如果视图是常量视图,不能更新
    
    CREATE VIEW view11
    AS
    SELECT (SELECT MAX(price) FROM goods) 最高价
    
    SELECT * FROM view11
    
    UPDATE view11 SET 最高价=9000
    
    3、SELECT中包含子查询,也不可更改
    
    
    CREATE VIEW view12
    AS
    SELECT * FROM view10;
    
    SELECT * FROM view12;
    UPDATE view12 SET sname='虾米'
    
    4、数据源是一个不能更改的视图,查询语句中的FROM后面是一个不能更改的视图
    
    注意点:
    1、包含以下关键字的:分组函数、DISTINCT 、UNION、 UNION ALL
    2、如果视图是常量视图,不能更新
    3、SELECT中包含子查询,也不可更改
    4、数据源是一个不能更改的视图,查询语句中的FROM后面是一个不能更改的视图
    

    7 视图与表的区别

    类型创建语句占用物理空间CRUD
    视图create view不占,保存的是逻辑查询,一般不用增删改
    create table占用,保存的是数据crud全部使用
    展开全文
  • 在多表查询中可能遇到两表、三表乃致四表查询,自己进行直接用sql 语句进行书写的话可能比较难,但是可以借助视图进行分析,书写

    使用视图进行查询,借助视图生成sql 语句
    1、创建视图
    右击视图点击新建
    在这里插入图片描述
    选择需要的表点击添加,注意两个表之间要有相同的字段
    在这里插入图片描述
    也可以添加视图,但是视图与表之间必须有相同的字段
    表与表之间有关系的话,就会出现连接关系,反之没有
    在这里插入图片描述
    选择需要的表和字段进行,构建一个查询结果集
    在这里插入图片描述
    选择需要查询的字段,会根据选择的字段自动生成相对应的sql 语句
    在这里插入图片描述
    根据生成的字段进行测试
    2、根据视图生成的多表查询语句进行查询
    在这里插入图片描述
    生成视图,查询视图中的结果
    保存视图
    在这里插入图片描述
    查看视图中的数据
    3、查询视图
    在这里插入图片描述
    像查询表一样查询视图
    在这里插入图片描述

    展开全文
  • 如何查看视图sql语句

    千次阅读 2017-06-30 13:34:00
    select text from syscomments s1 join sysobjects s2 on s1.id=s2.id where name='视图名称'前提条件是视图没有被加密,有权限 转载于:https://www.cnblogs.com/zhiming99/p/7098413.html

    select text from syscomments s1 join sysobjects s2 on s1.id=s2.id where name='视图名称'
    前提条件是视图没有被加密,有权限

    转载于:https://www.cnblogs.com/zhiming99/p/7098413.html

    展开全文
  • Oracle SQL语句的运行环境分为多个不同的层次,主要包括实例级别,会话级别,语句级别,其优先级依次递增。即语句级别的执行环境具有最高的优先权,会话级别次之,实例级别最低。反过来,实例级别的环境设置影响全局...
  • sql server 查看创建视图sql语句

    千次阅读 2015-11-12 13:11:00
    --sp_helptext v_viewnamesp_helptext port_dept--效果 转载于:https://www.cnblogs.com/valiant1882331/p/4958686.html
  • sql语句视图

    2017-06-27 00:11:00
    什么是视图视图其实就是一条sql语句,他就是一条查询语句,可以把一条很长的sql语句包装一下,视图也能删除修改添加,不过一般都不要这样操作,用来查询就行了 视图的三大类型: Merge 查询的时候会把视图...
  • Sql视图创建语句修改视图

    千次阅读 2016-04-29 21:36:00
    create view [dbo].... 获得视图程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id = cm.id where xtype = ' v ' order by o.xtype,o.name,cm.text  
  • clickhouse创建物化视图SQL语句

    千次阅读 2019-12-31 14:49:21
    1.上半部分是创建物化视图的建表语句,下半部分是将哪些数据更新到物化视图中; 如果是创建普通视图只需将下半部分中的 MATERIALIZED 字段去掉即可; CREATE TABLE south.alarm_daily_statistics ( `alarm_time` ...
  • Oracle创建索引、视图SQL语句

    千次阅读 2020-05-19 12:23:36
    一、索引 1、添加索引 create index 索引对象 on 索引对应表名(表内索引对象字段); 例:需创建包含userid属性的userinfo表。...create view 视图名(学号,姓名,科目,成绩) as select 对应在表格中的字段 from 涉
  • 数据库 之视图基本操作SQL语句

    千次阅读 2020-02-11 17:26:08
    视图名> [(<列名> [,<列名>]…)] AS <子查询> [WITH CHECK OPTION]; 1、子查询可以是任意的SELECT语句,是否可以含有ORDER BY子句和DISTINCT短语,则决定具体系统的实现 2、WITH CHECK ...
  • sql语句创建库 表 视图与存储过程 用sql语句创建库 表 视图与存储过程
  • sql语句查看oracle视图创建语句

    千次阅读 2014-07-04 09:48:54
    sql语句查看oracle视图创建语句: 1.查看所有视图的名字 select view_name from all_views; 或者select view_name from user_views; 2.查看某视图名为“某某视图”的创建语句 select text...
  • 1、掌握数据更新语句的使用; 2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
  • sql语句---视图 view

    千次阅读 2019-03-18 12:07:53
    当查询的复杂度比较大时,多表,多关系,会导致查询语句混乱,不利于sql语句的编写和编写的sql语句的可读性,于是,退出了视图模式 视图模式是对一个查询结果,进行记录,视图里面只存放语句,...
  • 目录 一、创建视图 方法一:图形化方式进行...方法二:SQL语句方式 三、通过视图修改数据 一、创建视图 一个数据库中有很多很多的表,我们每次不可能将它们全部查看一遍,有了视图以后我们就方便了很多,可以...
  • MySql 数据库查看视图的创建sql语句

    万次阅读 2019-02-22 22:16:06
    在网上能找到大量的视图创建、修改、删除的语句,但是查看创建语句语句不好找。 show create view VIEW_NAME  
  • 方式1-图形用户界面 1、新建视图 2、保存视图 3、刷新视图节点 4、查看视图 5、维护视图 6、删除视图 方式2-SQL语句 1、创建视图 2、查看视图中的数据 3、修改视图 4、删除视图
  • sql语句--视图view

    千次阅读 2019-03-18 20:45:27
    当查询的复杂度比较大时,多表,多关系,会导致查询语句混乱,不利于sql语句的编写和编写的sql语句的可读性,于是,退出了视图模式 视图模式是对一个查询结果,进行记录,视图里面只存放语句,不存放结果,,类似于...
  • HANA_SQL语句和系统视图 了解Hana的SQL语句 内存数据库CURD的基本操作
  • LINQ to SQL语句(24)之视图
  • 物化视图修改语句

    千次阅读 2019-05-04 21:26:00
    物化视图修改语句 ALTERMATERIALIZED VIEW 包含了 CONSIDER FRESH 语句。通过这个语句可以使得数据库认为物化视图已经是刷新后的状态。同时可以使得这个物化视图对于查询重新生效。 CONSIDER FRESH语句的另一...
  • SQLserver查看某个视图的创建语句

    千次阅读 2019-08-31 09:26:16
    SQLserver查看某个视图的创建语句 1.已经创建好的视图,查看视图创建时的源码 sp_helptext '视图名' 如下: 1 sp_helptext'V_user'  方式2: sa账户登录SQLserver,选择视图---右键----...
  • V$SQL视图中SQL_TEXT的SQL语句是绑定变量,常量在v$sql_bind_capture视图的VLUE_STRING字段中可以查到,两个视图可以用child_address进行关联。
  • --插入一个新学生元组 INSERT INTO S(SNO,ANAME,SEX,SDEPT,AGE) VALUES('200915128','陈冬','M',18,'CS'); --插入张成民的信息到s表中 INSERT INTO S VALUES('200915126','张成民','M',18,'CS');...
  • 二、sql语句删除方法 (1) USE master --向这个数据库 DROP DATABASE E_Market --删除E_Market数据库 GO (2)判断数据是否有E_Market这个数据库、如果有就进行删除 --判断数据是否有 E_Market 这个数据库、如果有...
  • 解决视图SQL查询语句)唯一ID问题

    千次阅读 2017-09-12 14:10:41
    最常用是 ROW_NUMBER() OVER(ORDER BY GETDATE()) 但是用在复杂的查询语句效率比较低! 复杂语句我建议用: ABS((SELECTCONVERT(INT,HASHBYTES('MD5', CAST(tp.pbIDASNVARCHAR(2...
  • Access中修改字段类型SQL语句

    千次阅读 2014-09-08 10:22:54
    在ACCESS里,备注类型用Memo表示,所以改变字段的数据类型为备注的SQL为:  ALTER TABLE user ALTER COLUMN ...下面给出修改为其它类型的SQL(表为tb,字段为aa):  ALTER TABLE tb ALTER COLUMN aa Byte 数字
  • 经常需要sql跟踪表的引用关系,使用如下语句可以查询某张表被哪些视图或者存储过程引用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 218,237
精华内容 87,294
关键字:

修改视图名的sql语句