sql一对一
‘壹’ 建立数据库时,既然sql语言可以实现多表连接,那为什么还要建立表间的一对一,一对多这些关系呢
一对一,一对多,多对多关系是设计数据库确定表与表之间的关系,是设计使数据库达到某一范式手段之一,数据库达到某一范式越高,数据库表中的一致性,完整性越强。这可以通过数学方式证明。
SQL语言实现多表连接,已经是到了数据库使用阶段,通过你的sql操作实现你需要实现的功能。
就好像水库,前者是设计阶段,水坝越高,越坚固,越不可能溃坝。好像学生选课,删掉一门课程后,如果有外键,学生选课表想选出这门课绝对不可能了,没有的话可就难说。
后者是使用阶段,用闸门,水管还是水泵取水,就看你sql怎么写了。
两者在数据库系统实现的阶段不同,功能也不同,不一样的。
‘贰’ SQL的一对多,多对一,一对一,多对多什么意思
1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
2、多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。
3、一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。
4、多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。
‘叁’ sql把两个结果集一对一连接但字段不唯一
关联问题。在sql里两张表帆数中的关联字段都是唯一的,关联之后关联字段竟然不态锋首唯一了。SQL是具有数据操纵和数据定义等多种功能的数据库语言基者,这种语言具有交互性特点。