如果查询一张表的多个数据 用多线程 用哪一个类_数据库课程学习总结笔记

: {男, 女} {0, 1} 大于等于0且小于100的正整数等 都是域

基数: 一个域中允许的不同取值个数

元组: 多个域的笛卡儿积得到结果的每一个元素(D1={d1, d2}, D2={d3, d4}的笛卡尔积为(d1, d3) (d1, d4) (d2, d3) (d2, d4) 体现到数据库中就是一张二维表(关系)的某一行

分量: 元组中的每一个值di叫分量


关系的定义: D1*D2*D3的子集叫做在域D1, D2, D3上的关系

栗子: 这三个域D1={001, 002, 003} D2={张三, 李四, 老王} D3={男, 女} 那么任意一个组合比如(001, 张三, 男)或者(001, 老王, 女)都是D1*D2*D3的子集,体现在表上就是下面这样:

编号 姓名 性别

001 张三 男

001 老王 女

所以关系就是一张二维表(我想强调的是关系只是是笛卡儿积的一部分,而不是全部的笛卡儿积才叫做关系,是它的子集就行,比如下面的这张表,它就是在域D1, D2, D3的关系,为什么?因为下面这3行是D1*D2*D3的子集啊)

编号 姓名 性别

001 张三 男

002 老王 男

003 李四 男

最后再说一句: 一般来说,D1, D2, D3的笛卡尔积是没有实际语义的,只有它的真子集才有实际含义。(如果你觉得这句话说的真对,那就说明你真的理解关系是什么了)


前面的都理解了,下面就该说说让人迷惑的 主键,候选键,还有外键了(码=键)

  • 候选键:

定义:

若关系中的 某一属性 或 属性组 的值能唯一的标识一个元组,而其任何子集不能,则称该属性(组)为候选键

//取值:唯一,Not Null

例如:在学生 实体 中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”“班级”这两个属性的组合足以区分学生实体,那么{学号}和{姓名,班级}都是候选键

  • 主键

定义:从候选码中挑选一个作为主键,主键 用于区分不同 实体

//取值:唯一,Not Null

遵循原则:主键应当由计算机自动生成,如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义

作用:保证 实体 的完整性

实体是什么呢,实体在现实世界中是可以区分的,它们具有某种唯一性标识,比如每个学生都是独立的个体,都是不一样的!

  • 外键:

主要目的是使两张表形成关联,控制存储在与之关联的表中的数据,因此外键的作用是保持数据的 一致性 和 完整性

栗子:

student(s#,sname,d#)学生这个实体有三个属性:学号,姓名,所在系别

dep(d#,dname)院系实体有两个属性:系号、系名

则s#、d#是主键,也是各自所在关系的唯一候选键,d#是student的外键

/*------------------------分割----------------------- */

建立外键的前提: 本表的列必须与外键类型相同并且外键必须是外表的主键

指定外键关键字: foreign key(列名)

引用外键关键字: references <主表名>(主表主键)

事件触发限制: on delete和on update , 可设参数cascade, restrict,set Null,set Default,[默认]no action

/*------------------------分割----------------------- */

如:

设已存在一张二维表名为outTable,它的主键是id 类型为 int

则又有以下SQL语句:

create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);

最后一句的解释:把表temp的id属性设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列删除 当外键的值改变 本表中对应的列值改变(有没有感受到这段的第一句话的意义:外键 保持数据的 一致性 和 完整性

再举栗子:

职工(职工号,姓名,性别,职称,部门号)

部门(部门号,部门名,电话,负责人)

其中职工关系中的“部门号”就适合做 职工实体关系的外键(前提,部门号是部门关系的主键


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值