sql主表从表
A. mysql中主表与从表,是什么意思
主表
在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。
从表
以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。
关系及用法概述
从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)
简单举例:
主表(用户信息)
table user
userid numeric(0,20)
username varchar2(20)
usercompany varchar2(50)
从表(用户订单)
table uorder
orderid numeric(0,20)
uid numeric(0,20)
ordertime date
orderstate char(1)
要对主表和从表进行信息联合查询语句简单如下:
select * from [user] u join uorder o on u.userid=o.uid
B. sql 什么是主从表
主表中有的从表中才可添加相关信息。
比如说有这样一个表
公司人员信息表
姓名 年龄 性别
张三 20 男
工资表
姓名 工资 工龄 奖金
其中工资表是公司人员信息表的从表帮定的是姓名字段,你想象下如果公司根本没这个人你能给这个人发工资吗,当然这个例子不太符合逻辑因为姓名是会相同的,你可以用工号来进行唯一性标示这样就不会有冗余信息了。
主从表是一种数据关系模型,主表约束从表。以学员信息表stuInfo和考试成绩表stuMarks为例, 我们知道它们是一对多的关系,当然一是主,多是从。所以stuInfo就是主表,stuMarks就是从表。那么,一般我们会在从表中做一个外键字段,引用主表中的主键。(为什么呢?大家想想是13亿人民记住主席的名字容易还是主席记住13亿人民名字呢?)这一点,已经在stuMarks表中得到了体现。那么,为了保持数据的完整性。主从表我们要尽量遵循以下原则:
1、当主表中没有对应的记录时,不能将记录添加到子表
——成绩表中不能出现在学员信息表中不存在的学号;
2、不能更改主表中的值而导致子表中的记录孤立
——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;
3、子表存在与主表对应的记录,不能从主表中删除该行
——不能把有成绩的学员删除了
4、删除主表前,先删子表
——先删学员成绩表、后删除学员信息表
C. 数据库主表和从表怎么连接
摘要 您好,可以看这个例子
D. mysql 如何判断一个表是主表还是从表
--books表中有字段有bId,pId等字段。
--another有bId,pId等字段(create table another select bId,pid,bAuthor from books;--相关字段以及内容来自books表)。
--books和publising建立外键,参照publishing中的id字段。
alter table books add constraint FK_books_publishing foreign key (pid) references publishing (id) on update cascade;
--another和publishing之间创建外键,参照publishing中的id字段。
alter table another add constraint FK_another_publishing foreign key (pId) references publishing (id) on update cascade;
--举个简单的更新列子:
update publishing set id = 17,pname = '爱好者' where id='14';
--当执行这条语句时(更新publishing表),books表和another表同时进行更新。
--主表更新字段数据等,副表也随之更新,从上面可以看出,主表是publishing,副表是books和another。
--希望能帮到你
E. sqlserver怎么建立主从表关系
在sqlserver2000中可以选择关系图,新建关系图,选择要建立关系的主表和从表,然后一直下一步下一步,直到完成。
然后用鼠标拖着主表的字段到从表的字段,连成一线,会弹出个框,一般点确定就可以了。
F. sql 主从表查询
select * from A where exists (select 1 from B where Parentid=A.ID)
使用exists可以提高查询速度,不要用in来查询,in是要全表扫描的!
以上,希望对你有所帮助!