vb.net机房收费总结——数据库应用之链接篇

奋战了近两个月,机房收费系统总算完工,等待验收的到来啊,在整个的学习中,我感受较深的是米老师的囫囵吞枣理论,今天就拿数据库应用来说说!

当初学习数据库的时候还是一年前,当初纯粹是囫囵吞枣啊!把sql,视图,事务等内容都吞到到肚子里,到了今天验证了那句话“出来混,早晚要还的”当初的枣吞得太生硬,在一年的时间里经过不停地打磨和敲击,在vb6里c#里,vs里!到今天化开了它神秘的面纱,得以窥见一斑!

在sqlsever中能够用sql语句建立视图,主键等,也可以用一种图形化的方法建立,在说视图之前,必须要说的一个前提是jion语句,说白了就是怎么将两张表组合成一张表!

前提:我们有两张表

学生表:

记录姓名:

IDName
201301张三
201302李四
201303王五
201304赵六
201305冯七
201306马八

衣服:

记录衣服:

IDClothes
201301t
201302外套
201303牛仔裤
201304鸭舌帽
201201墨镜


一、外连接
外连接可分为:左连接、右连接、完全外连接。
以左连接为例: left join 或 left outer join
SQL语句:select * from 学生left join 衣服on 学生.ID=衣服.ID
执行结果:

IDNameIDClothes
201301张三201301t
201302李四201302外套
201303王五201303牛仔裤
201304赵六201304鸭舌帽
201305冯七nullnull
201306马八nullnull

大家看,左链接就会以左表(学生表为基准)进行填充,没有对应数据的值为空(null)。

大家再看其他的例子,就会明白:

右链接:right join 或 right outer join

IDNameIDClothes
201301张三201301t
201302李四201302外套
201303王五201303牛仔裤
201304赵六201304鸭舌帽
nullnull201201墨镜

完全外连接: full join 或 full outer join


IDNameIDClothes
201301张三201301t
201302李四201302外套
201303王五201303牛仔裤
201304赵六201304鸭舌帽
201305冯七nullnull
201306马八nullnull
nullnull201201墨镜

二、内连接 join 或 inner join
SQL语句:select * from 学生 inner join 衣服on 学生.ID=衣服.ID
执行结果:

IDNameIDClothes
201301张三201301t
201302李四201302外套
201303王五201303牛仔裤
201304赵六201304鸭舌帽

可见内连接只返回符合条件的行。

三、交叉连接 cross join

SQL语句:select * from student cross join course
执行结果:

IDNameIDClothes
201301张三201301t
201302李四201302t
201303王五201303t
201304赵六201304t
201305冯七201305t
201306马八201306t
201301张三201302外套
201302李四201302外套
201303王五201302外套
201304赵六201302外套
201305冯七201302外套
201306马八201302外套
201301张三201303牛仔裤
201302李四201304牛仔裤
201303王五201305牛仔裤
201304赵六201306牛仔裤
201305冯七201307牛仔裤
201306马八201308牛仔裤
201301张三201304鸭舌帽
201302李四201305鸭舌帽
201303王五201306鸭舌帽
201304赵六201307鸭舌帽
201305冯七201308鸭舌帽
201306马八201309鸭舌帽

可见第一个表的行数乘以第二个表的行数等于我们要查的结果的表,这种表较为冗余,一般我们不用!

这只是数据库的简单应用,我们要处理比较分散的数据时用到这些比较多,如果数据集中,这些就很少用到,所以设计数据库时数据的粒度是一个很值得考虑的问题!粒度太大,数据冗余,粒度太小,关系复杂,还是那句话“合适就好”






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值