数据库原理与技术
数据库原理与技术(新增章节)2020-10
基本概念
数据库(DB):是按照一定结构组织并长期存储在计算机内的、可共享的大量数据的有机集合。
解释:
1)数据库中的数据是按照一定的结构数据模型来进行组织的,即数据间有一定的联系以及数据有语义解释。
数据模型:数据库系统的核心和基础,是关于描述数据与数据之间的联系、数据的语义、一致性约束的概念性工具的集合。
数据模型的分类:
- 三种基本数据模型:层次模型、关系模型(重点掌握)、网状模型。
- 面向对象数据模型
- 谓词模型(逻辑模型)
- XML数据模型
- 非SQL数据模型
- 扩充的数据模型
数据模型通常是由:数据结构、数据操作和完整性约束组成。
- 数据结构:系统静态特征的描述,描述对象包含的数据类型、内容、性质和数据之间的相互关系。
- 数据操作:系统动态特征的描述,是对数据库各种对象实例的操作。
- 完整性约束:定义了给定数据模型中数据及联系所具有的制约和依存关系。
数据库管理系统(DBMS):管理和维护数据库的系统软件,是数据库和用户之间的一个接口。
数据库系统(DBS):实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和人组成的系统。
计算机系统中引入数据库技术后形成数据库系统,也可以说数据库系统是具有管理数据库功能的计算机系统。
关系:DBS=计算机系统(硬件、软件平台、人)+ DBMS + DB
关系模型数据结构:行和列组成的二维表结构。
1.笛卡尔积(数据库)
笛卡尔积是在域上的一种运算。域是一组具有相同数据类型的值集合。域用来表明定义属性的取值范围。
给定一组域D1,D2,...,Dn,则D1,D2,...,Dn的笛卡尔积为
D1 X D2 X ... X Dn = {(d1,d2,...,dn) | di ∈ Di, i=1,2,...,n }
在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
简单说就是两集合中,每一项与另一集合中每一项的乘积。
2.关系
关系中基本术语:
(1)元组与属性
(2)候选键
(3)主键
(4)外键
3.关系的完整性约束
关系型数据库的完整性约束:实体完整性、参照完整性、用户自定义
实体完整性:主键
参照完整性:外键
用户自定义:字段非空、取值范围要求
关系代数
关系代数是一种抽象语言,它通过对关系的运算来表达查询。关系代数以关系为运算对象,通过对关系进行“组合”或“分割”,得到所需的数据集合—一个新的关系。
关系代数可分为:
1)集合运算(并交差、广义笛卡尔积)
2)关系运算(投影、选择、连接和除运算)
3)扩充的关系运算(广义投影、外连接、半连接、聚集等)
🔖🆕 2020-10-15 未完待续
查询
SQL写法顺序和执行顺序
写法顺序:select--from--where--group by--having--order by
执行顺序:from--where--group by [having]--select--order by
就是select要放后面,如果有order by,则order by放最后,因为order by 是对结果进行排序
用GROUP BY关键字分组查询
通过GROUP BY子句可以将数据划分到不同的组中,实现对记录进行分组查询。在查询时,所查询的列必须包含在分组中。
执行如下sql,发现能正常执行,而且groupby后默认取每组第一条数据。
当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
--执行where子句查找符合条件的数据;
--使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
--having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
--having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
--having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。