仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 705|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL编程:数据库主键,外键,干系,级联保留、更...

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
恢复到之前的某个状态,是需要数据的。这数据可以是a)回滚步骤或者b)操作之前的数据状态原文。数据|数据库--创建数据库
createdatabasetest;
go

--创建表customers
createtablecustomers(
idintidentity(1,1)notnull,
namevarchar(15),
ageint,
primarykey(id)
);
go

--创建表orders
createtableorders(
idintidentity(1,1)notnull,
order_numbervarchar(15),
pricemoney,
customer_idint,
primarykey(id)
);
go

--对表orders拔出数据,以检测money数据范例,了局为:69.0000
insertintoorders(price)values(69);
select*fromorders;

--增添外键与干系束缚
altertableordersaddconstraintFK_CUSTOMERforeignkey(customer_id)referencescustomers(id);
go

--级联删除、更新
altertableordersaddconstraintFK_CUSTOMERforeignkey(customer_id)referencescustomers(id)
ondeletecascadeonupdatecascade;
go

--级联删除
altertableordersaddconstraintFK_CUSTOMERforeignkey(customer_id)referencescustomers(id)
ondeletecascade;
go
=====================================================================================================
--
insertintocustomersvalues(张三,25);
insertintocustomersvalues(李四,25);

--假如设置了级联拔出,那末在向子表orders拔出的customer_id(外键)
--必需在父表customers中存在此id(主键)
insertintoordersvalues(1,50,5);

--假如设置了级联删除,删除父表customers中id=5的纪录,
--也会删除子表orders中customer_id=5的纪录,
deletefromcustomerswhereid=5


--查询
select*fromcustomers;
select*fromorders;
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。
简单生活 该用户已被删除
沙发
发表于 2015-1-19 10:18:24 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
小妖女 该用户已被删除
板凳
发表于 2015-1-26 16:25:25 | 只看该作者
光写几个SQL实在叫无知。
深爱那片海 该用户已被删除
地板
发表于 2015-2-4 20:30:39 | 只看该作者
无法深入到数据库系统层面去了解和探究
再见西城 该用户已被删除
5#
发表于 2015-2-4 20:30:49 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
乐观 该用户已被删除
6#
发表于 2015-2-10 07:22:46 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
透明 该用户已被删除
7#
发表于 2015-3-10 12:39:50 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-17 07:11:25 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
老尸 该用户已被删除
9#
发表于 2015-3-24 02:12:53 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 11:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表