以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~
一、关系数据库的相关概念
1、数据模型一般由数据结构、数据操作、数据我完整性约束三部分组成。
2、关系模型的数据结构及定义:
①域:是一组具有相同数据类型的值的集合。
②笛卡尔积:实际一个二维表
关系是笛卡尔积的有限子集,所有的关系也是一个二维表,实际应用中关系是笛卡尔积所取有意义的子集。
3、关系的码:
①候选码(候选键):能唯一识别关系中元组的一个属性或者属性集称为候选码,唯一性、最小性。
②主码(主关系键):从多个候选码中选一个作为查询、插入或删除元组的操作变量。每个关系必定有且仅有一个主关系键。
③主属性与非主属性:包含在候选键中的各个属性称为主属性。不包含在任何候选码中的属性称为非主属性。
④全码:所有属性的组合是关系的候选键。
⑤外码:被参照关系的主码和参照关系的外码必须定义在同一个域上。
4、关系的性质:
①关系中的每一个属性值都具有原子性,不可分解。
②每一列中的分量必须是同一个类型的数据。
③不用列可来自同一个域,每一列称为属性,不同属性必须有不同的名字。
④列的顺序可以任意交换。
⑤元组的顺序可任意(行)。
⑥关系中不允许出现重复元组。
二、数据库和表的基本操作
1、数据库相关:
①创建数据库(littlelibrary):create database littlelibrary;
②查看数据库:show databases;
③修改数据库字符串为gbk:alter database littlelibrary character set gbk;
④删除数据库:drop database littlelibrary;
2、表的基本操作:
①创建表(Booklnfo):create table Booklnfo;
②新增一列(disc):alter table Booklnfo add disc char(2);
③修改列的数据类型:alter table Booklnfo modify colum disc char(10);
④删除字段(disc):alter table Booklnfo drop colum disc;
⑤将表明重命名为book:alter table Booklnfo rename to Book;
⑥将book表中的字段bookid改为book:alter table book change bookid id varchar(30);
⑦复制表:create table book_bak select * from book;
⑧删除表:drop table book;
注意:不能删除user等系统表;删除有外键约束的表需要先删除其外键约束;删除表时,该表的约束和触发器也会被删除。
⑨添加约束:alter table 表名 add constraint 约束名 (age betwwen 0 and 100)
三、关系完整性
1、完整性约束(①②必须满足):
①实体完整性:主码不能为空或部分为空。
②参照完整性:外键不能为空。
③用户自定义完整性:主要包括字段有效性约束和记录有效性约束。
2、定义数据库表的约束:
①null/not null:是否值可以为空,默认为null(主键不允许为空)
②unique(惟一约束):表明某一列或者多列的取值必须惟一。
③primary key(主键约束):用于定义基本表的主键,起惟一标识作用,不能为空,不能重复。
注意:
只能有一个primary key,但是可以有多个unique。
指定为primary key的一列或者多列不可以为null,但unique可以为null。
不能为同一列或者一组列既定义primary key和unique。
④foreign key(外键约束):另一个表的主键。
foreign key(cid) references customer(cid)
⑤default(默认约束)
⑥auto_increment(自增属性):整型、每张表只允许一个字段设置。
四、关系代数
1、关系代数的分类及其运算符
①集合运算符:
②关系运算符:
③比较运算符:
④逻辑运算符:
2、相容性:两个关系R、S满足
①具有相同的度。②R的第i个属性和S中第i个属性必须来自同一个域。
传统集合运算:
①∪并:
②∩交:
③-差:
④X广义笛卡尔积:
3、象集:
4、选择和投影:
①选择:
②投影:
5、连接:
①等值连接
②自然连接(在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉)
③大于/小于连接
④等值连接和自然连接的区别:
两个关系中只有同名属性才能进行自然连接,而等值连接不要求。
自然连接去掉重复属性,而等值连接不去掉重复。
6、除法:
①找出被除数(R)中与S不同的属性:
X={A,B}={(a1,b1),(a2,b1),(a2,b3)}
②找出R和S相同属性:
Y={C,D}={(c2,d3),(c3,d5)}
③找出其X的对应象集:
(a1,b1)的象集为{(c1,d1)}
(a2,b1)的象集为{(c2,d2)}
(a2,b3)的象集为{(c2,d3) ,(c3,d5)}
④其X对应象集要包含于Y:
(a2,b3)的象集为{(c2,d3) ,(c3,d5)}这个包含,所以R÷S为(a2,b3)