日期:2014-05-18  浏览次数:20594 次

什么是关系型数据库
什么是关系型数据库
比如有两个表

表1 User
ID UserName Password
1 啊 啊


表1 UserLog
ID UserID Log
1 1 在11点吃饭了
2 1 在12点睡觉了


关系型数据库是不是就是,在删除ID为1的用户全部信息时只需要
delete from User where ID = 1
不需要
delete from User where ID = 1
delete from UserLog where UserID = 1

如果这就是关系型数据库的话,那它是如何实现的。是不是用SQL Server这些数据库就可以实现了

------解决方案--------------------
你这是级联删除,参考如下:
SQL code
/*
标题:两表通过字段关联进行级联删除。
作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) 
时间:2008-11-20
地点:广东深圳
*/

create table ta(id int not null)
create table tb(id int , aid int)
insert into ta values(1)
insert into ta values(2)
insert into tb values(1 , 1)
insert into tb values(2 , 2)
insert into tb values(3 , 1)
go

--一、查看原始数据
--ta表的原始数据
select * from ta
/*
id          
----------- 
1
2
*/
--tb表的原始数据
select * from tb
/*
id          aid         
----------- ----------- 
1           1
2           2
3           1
*/

--二、看看没有创建级联删除时的情况(删除ta表id=1的数据,看看是否影响tb表)
delete from ta where id = 1
select * from ta
/*
id          
----------- 
2
*/
select * from tb
/*
id          aid         
----------- ----------- 
1           1
2           2
3           1
*/

--三、恢复原始数据,创建级联删除,删除ta表id=1的数据,看看是否影响tb表
insert into ta values(1)
--为ta创建主健
alter table ta add constraint pk_ta_id primary key (id)
go
--为tb创建外健,并指定级联删除
alter table tb add constraint fk_tb_aid foreign key (aid) references ta(id) on delete cascade
go
delete from ta where id = 1
select * from ta
/*
id          
----------- 
2
*/
select * from tb
/*
id          aid         
----------- ----------- 
2           2
*/

--删除级联约束
alter table tb drop constraint fk_tb_aid
go
--删除测试表
drop table ta , tb
go

------解决方案--------------------
探讨
什么是关系型数据库
比如有两个表

表1 User
ID UserName Password
1 啊 啊


表1 UserLog
ID UserID Log
1 1 在11点吃饭了
2 1 在12点睡觉了


关系型数据库是不是就是,在删除ID为1的用户全部信息时只需要
delete from User where ID = 1
不需要
delete from ……

------解决方案--------------------
我也是菜鸟,但是我的意见是:
以博客园、CSDN为基础,你可以去看看别人写的博文
最主要是实践,真正看书的话可能是考虑系统架构、SQL执行效率的时候深造一下。
如果非要看基础类的书籍,建议看英译版的书籍,就是外国人写的翻译成中文的(英文好的话直接看英文版的,理解的透彻多了,翻译过来会带有翻译者的主管因素)
国产的基础教学,对程序的理解有些许偏差。
------解决方案--------------------
关系型数据库理论已经30多年了,现在如果要问什么是关系型数据库,只能说明你基础学习太不过关

好像有门课叫做数据库导论,学的时候谁也不会重视,后来才发现重要性,现在的大学难道不开这门课?
------解决方案--------------------
浮云~~~