关系型数据库基础
关系型数据库基础
第1章 关系型数据库管理系统简介
1、 常见SQL:MySQL(小型、免费、简单,甲骨文公司),SQLServer(微软,收费,.net,大型),Oracle,DB2
2、 数据库特点:
- 降低存储数据的冗余度;
- 更高的数据统一性;
- 存储的数据可以共享;
- 可以建立数据库所遵循的标准;
- 便于维护数据完整性;
- 能够实现数据的安全性;
3、 数据存储模型:层次模型、网状模型、关系模型、对象模型
4、 关系模型把世界看做是由实体(Entity)和联系(Relationship)组成的。所谓实体,就是指在现实世界中客观存在并可相互区别的事物,它可能是有形或者无形的、具体或抽象的、有生命或无生命。
5、 实体所具有的某一特性称为属性(Attribute),实体可以通过若干属性来描述。
6、 以关系模型来创建的数据库称为关系型数据库(Relationl Database)。关系型数据库只是一个保存数据的容器,大多数数据依靠一个称为数据库管理系统(DBMS)的软件来管理数据库中数据。管理关系型数据库的软件称为关系型数据库管理系统(RDBMS)。数据库应用程序通过RDBMS与关系型数据库进行交互。
7、 表(table)是关系型数据库的核心单元,它是数据存储的地方。
8、 在表的内部,数据被分成列(column)和行(row)。填入到表中的每一行,代表一个实体,也就是说表中的每一行代表真实世界的一个事物。
9、 每个表都包含零到多个行。而行的每一列,代表实体的一个属性。每个表由一到多个列组成,列代表实体的属性,它说明数据的名称,同时也限定了数据的类型。在表中,行与每一列相交。
10、 在关系型数据库的表中,用主键(Primary Key)来唯一标识每一行,外键(Forergn Key)用来表达表和表之间的关联关系。
11、 表间关系:
- 一对一:一条主表记录,对应一条从表记录
- 一对多:一条主表记录,对应多条从表记录
- 多对多:一条主表记录,对应多条从表记录,同时,一条从表记录,也对应多条主表记录。主表和从表之间必须有一个中间表来记录描述主表和从表之间的关系。
12、 RDBMS是管理、操作和维护关系型数据库的一种软件程序,分为本地(Local)和服务器(Server)数据库管理系统两种类型。
13、 SQL(Structured Query Language)是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言。SQL是关系型数据库管理的标准语言。不同的RDBMS对SQL标准的支持有所不同。
14、 SQL定义的几种技术:
- DQL 数据查询语言:用于数据库中数据的查询;
- DML 数据操作语言:用于数据库中数据的修改(增删改);
- DDL 数据定义语言:创建、修改、删除数据库的内部数据结构;
- DCL 数据控制语言:控制数据库访问权限。
15、 定义表的列时,加入PRIMARY KEY,表示设置该列为主键列。主键列的特点:不能重复、不能为null。
16、 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。
CREATE INDEX索引名 ON 表名(属性名);
17、
- 使用DELETE删除,不加where条件的DELETE语句就能删除所有数据;
- 使用TRUNCATE语句,直接删除表中所有数据,标准结构。
- 二者区别:DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低;TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。
18、SELECT DISTINCT birthday FROM t_cur;去重查询
Distinct 独特的。
19、聚合函数:
COUNT统计行数量(PS:COUNT(列名)不统计空值,COUNT(*)统计空值)
SUM 获取单列的合计值 SUM(列名)
AVG 计算单列平均值(PS:avg(isnull(grade,0)计算平均分,如果该列为null,则以0计算。
MAX 获取某列最大值 MIN 获取某列最小值
注意:函数名和括号之间不能有空格。
20、
分组查询时,查询的字段只能是分组字段和聚合函数。
21、SQL语句执行顺序
FROM---WHERE----GROUP BY---SELECT---HAVING---ORDER BY----LIMIT
22、SQL 中having和where的区别
二者都是过滤条件,where运行在分组前,因此不能执行任何聚合函数,having是运行在分组后,只能用作聚合函数的过滤。
23、数据库完整性概述
为了防止垃圾数据的产生,从而影响数据库的执行效率。
可靠性+准确性=数据完整性。
1、实体完整性;---保证一行数据是有效的
2、域完整性; ---保证一列数据是有效的
3、引用完整性;---保证引用的编号是有效的。从表外键中出现的数据,必须在主表的主键列中出现
4、用户自定义完整性; ---保证自定义规则
24、保证每行所代表的实体能互相区别,不能存在两条一模一样的记录;
表中的一行数据如果与它所代表的实体完全一致,则具备实体完整性。
实现方法:
- 主键约束(Primary Key)是表中的一到多个列,主键列不能为空,也不能重复,一个表中只能有一个主键。
- 唯一约束(Unique)指给定列中的所有值必须唯一,该列在表中每一行的值必须唯一,它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个列设置唯一约束。
- 默认约束(default)属性可以设置一个默认值,当插入行时未输入该属性值,则以默认为准。
25、外键和外键约束:
外键是指从表的某列与主表的某列存在依附关系。
外键约束是在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。(外键列的值必须引用主表中主键列的值或者为null)