Mysql学习(一)
一、信息世界
1.实体:现实中存在的事物,可以看做对象
2.属性:实体具备的一个特性叫做属性
3.码:具备唯一性的属性
4实体集:同一类型的实体的集合
5.实体型:一个单独的实体,也就是对象
二、关系模型
1.关系:具备共同属性的实体集构成的一个关系,一个关系对应一张表
2.元组:表中的一行就是一个元组。
3.属性:表中的一列就是一个属性。
4.域:按照属性要求,规定一定范围的集合
5.分量:一个元组的一个属性
三、关系型数据库的优点
1.数据存储严格按照三大范式,结构化强大,表格简单易懂
2.数据的共享性高,冗余度低且易于扩张
3.数据独立性高,物理独立性,逻辑独立性,主要采用二级映像来实现。
4.数据由数据库管理系统来统一管理和控制。
四、三层模式结构
1.内模式:俗称存储模式,用于记录数据的物理结构以及存储方式(指数据如何存储到物理层的地址中)的描述,是数据在数据库内部的组织方式,一个数据库中只存在一个内模式。
2.模式:俗称逻辑模式,用于数据库中全体数据的逻辑机构和特征的描述,一个数据库中只有一个模式。
3.外模式:俗称子模式或者用户模式,外模式是模式的一个子集,同样也是直面用户程序的模式,针对于各种不同的用户程序,外模式中存在局部的数据的逻辑结构及特征的描述,可以有多个子模式。
五、二级映像
1.映像产生的目的在于解除模式,外模式,内模式之间的耦合,使得数据库管理系统针对于版本更新不会需要作出太大改动。
2.外模式/模式映像:解除模式与外模式之间的耦合。达到,当我们修改模式时,只需要修改外模式模式映像,外模式不会因此发生改变,即数据的逻辑独立性
3.模式/内模式映像:解除模式与内模式之间的耦合。达到,当我们修改内模式时,只需要修改模式/内模式映像,模式就不需要作出任何改变,即数据的物理独立性。
六、数据库系统构成
1.组成:数据+数据库+数据库管理系统+数据库管理员。
2.数据:描述信息的符号标记。
3.数据库:存放数据库的仓库
4.数据库管理系统:位于用户与操作系统之间的数据管理软件,我们常说的数据库mysql,sql server等就是指数据库管理系统。
5.数据库管理员:进行数据库管理的人员。
七、数据库的表中概念
1.候选码:一个属性组(可以一个属性可以多个属性),具备唯一性的标识,可以找到唯一的元组,且它的子集并不能,则该属性组被称为候选码。
2.主码:表格创建的必须品,从多个候选码中选取一个为主码,也可以使用非空自增长的属性作为主码。
3.主属性:存在于所有候选码中的属性都是主属性,主属性一定不能为空。
4.非主属性:不包含在任意候选码中的属性被称之为非主属性。
八、关系的完整性
1.参照关系:当F属性是关系M的一个非码属性,S是N表的一个主码,若F属性中的值与S对应,则认为MN两表相互参照,为参照关系。F则为关系M的外码。
2.实体完整性:表格的主属性不可为空
3.参照完整性:表格中的外码,可以为空,但是不可以超出范围(即参照关系的主码的范围)
4.用户自定义的完整性:用户针对于某一个数据表作出的一些例如非空等约束条件的限制。
九、关系运算
1.选择:根据用于对于属性的一些判断作出的查询操作。
2.投影:选出若干属性进行去重后,得到新的表格。
3.连接:多个之间的连接,详情见第十点
十、连接
1.表格属性
table_a(`A`,`B`,`C`,`D`)
table_b(`C`,`D`,`E`)
insert into table_A values('1','2','3','3'); insert into table_A values('2','4','4','2'); insert into table_A values('3','2','1','4'); insert into table_A values('4','3','2','4'); insert into table_A values('5','3','3','1'); insert into table_A values('6','3','8','7'); insert into table_B values('1','2','3'); insert into table_B values('2','4','4'); insert into table_B values('3','2','1'); insert into table_B values('4','3','2'); insert into table_B values('5','3','3');
1.自然连接(natural join):无需作出其他条件约束(也不能作出条件约束),系统会寻找出连接两表的相同的属性作为连接点输出。若存在多个相同的属性,则将多个属性连接起来视为一个属性判断相同。
C+D作为连接点。
select * from table_A natural join table_B;
2.内连接(inner join):与自然连接相同,但是不是系统判定相同的属性名,而是通过用户使用use与on来自行定义相同属性。
select * from table_A inner join table_B on table_A.D=table_b.c;
3.左外连接(left outer join):与内连接相似,但是对于left outer join左边的表会显示没有被连接到的部分。
select * from table_b left outer join table_a on table_b.c=table_a.c;
4.右外连接(right outer join):与内连接相似,但是对于right outer join右边的表会显示没有被连接到的部分。
select * from table_A right outer join table_B on table_A.d=table_b.c;
5.外连接:mysql不支持