SQL Server--视图设计

                        SQL Server--视图设计

数据库的建立,步骤如下

1. 新建数据库,建表,如下图,很简单基本上右键新建就行,然后添加字段

image.png

2. 接下来要建立视图查询,查询2个表中,指定两个用户之间的消息,先要新建视图,点击新建查询即可,输入代码,视图的命名空间与表相同,所以不能跟表取相同的名称

image.png

视图是什么?
视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询,他没有表中任何列和数据,他只是一个SQL查询;

如果大家觉得有时候会需要,请关注微信公众号--老王工控笔记,文章末尾有二维码

视图的好处:

1.可以从不同表中,检索到需要的数据,也保护了另一部分的数据,(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)

2. 可以不用知道各表之间的结构及其之间的关系

3. 视图也可以像表一样操作,

4. 视图还可以更新表中的数据,

5. 视图可以理解,表为根基,视图是在他上面的动态显示界面

6. 视图还可以被嵌套,一个视图中可以嵌套另一个视图

视图有个地方需要注意,当用多个联结和过滤创建了复杂的视图或者嵌套了视图,可能会发现性能下降得很厉害,需要测试下,视图必须要有检索条件才可以触发

源代码如下:

image.png

CREATE VIEW [dbo].[v_Message2]

AS

SELECT DISTINCT 

                dbo.tb_Message.ID, dbo.tb_Message.FromUserID, dbo.tb_Message.ToUserID, dbo.tb_Message.Message, 

                dbo.tb_Message.MessageTypeID, dbo.tb_Message.MessageState, dbo.tb_Message.MessageTime, 

                dbo.tb_User.NickName

FROM      dbo.tb_Message INNER JOIN

                dbo.tb_User ON dbo.tb_Message.FromUserID = dbo.tb_User.ID

虽然很简短,但是有好几个知识点,先说句式

1736892516.jpg

SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

这里用大白话来解释下上面的句式:

查询表1和表2的全部字段中,把表1字段跟表2字段一样的数据重新组合成表

(*表示全部字段,也可以指定表1表2中的字段)(字段比较必须是相同类型,但可以不同数值,但不可以是单双精度类型)(任何关系比较运算符:“=”、“<”、“>”、“<=”、“>=”或者“<>”。

sql语句如下: 
select * from A
innerjoin B 
on A.aID = B.bID

结果如下:
aID               aNum                          bID                  bName
1                   a20050111                1                      2006032401
2                   a20050112                2                     2006032402
3                   a20050113                3                     2006032403
4                   a20050114                4                     2006032404

结果说明:
        很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.  还有就是inner join 可以结合where语句来使用 如:   select * from A innerjoin B on A.aID = B.bID where b.bname='2006032401' 这样的话 就只会放回一条数据了

注:SELECT DISTINCT 这个指令的意思是查找到字段下不重复的数据,语句用于返回唯一不同的值,在表中,一个列可能会包含多个重复值,有时我们希望仅仅列出不同(distinct)的值,比如某个字段下有 1,3,3,5,5,1,那你加了这个指令,结果就会显示1,3,5,1

如果大家觉得有时候会需要,请关注微信公众号--老王工控笔记

    

45d27776-5d6e-4b88-b547-08ec976015eb.jpg

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

老王工控笔记

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值