数据库基础知识点
一、数据库的定义与概念
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性等特点。
二、数据库管理系统(DBMS)
1.功能
-数据定义:DBMS提供数据定义语言(DDL),用于定义数据库的结构,如创建表、定义字段的数据类型、约束条件等。
-数据操纵:通过数据操纵语言(DML)实现对数据的插入、删除、修改和查询操作。
-数据控制:包括对数据库的安全性控制(如用户权限管理)、完整性控制(确保数据的准确性和一致性)以及并发控制(处理多个用户同时访问数据库的情况)。
-数据维护:例如数据库的备份与恢复、数据的导入与导出等操作。
2.常见的DBMS
-关系型数据库管理系统(RDBMS):如MySQL、Oracle、SQLServer等。这些系统基于关系模型,使用SQL(结构化查询语言)进行数据操作。
-非关系型数据库管理系统(NoSQL):例如MongoDB(文档型数据库)、Redis(键-值型数据库)、Cassandra(列族数据库)等,适用于处理大规模、高并发、非结构化或半结构化数据的场景。
三、数据模型
1.层次模型
-它以树形结构表示数据之间的关系,有且仅有一个根节点,每个节点可以有多个子节点。层次模型在早期的数据库系统(如IBM的IMS)中有应用,但由于其结构的局限性,如数据的查询和更新操作比较复杂,对于多对多关系的处理能力较弱等,现在使用较少。
2.网状模型
-网状模型用图结构表示数据之间的关系,节点之间可以有多种连接方式。它比层次模型更灵活,但结构复杂,数据的定义和操作也比较复杂,维护成本较高。
3.关系模型
-关系模型是目前应用最广泛的数据模型。它将数据组织成二维表(关系)的形式,表中的每一行称为一个元组,每一列称为一个属性。关系模型基于关系代数和关系演算,通过SQL进行数据操作。其优点包括数据结构简单、易于理解和操作、数据独立性强等。
4.面向对象模型
-面向对象模型以对象为基本单位来组织数据,每个对象包含属性和方法。这种模型适合于处理复杂的数据结构,如在地理信息系统、计算机辅助设计等领域有应用。
四、关系数据库中的重要概念
1.表(Table)
-关系数据库中的基本存储结构,由行(记录)和列(字段)组成。表中的每一行代表一个实体或实体之间的关系,每一列定义了实体的一个属性。例如,在一个员工信息表中,行可能代表每个员工的具体信息,列可能包括员工编号、姓名、年龄、部门等属性。
2.字段(Field)与数据类型
-字段是表中的列,每个字段都有特定的数据类型,如整数型(INT)、字符型(VARCHAR)、日期型(DATE)等。数据类型定义了字段所能存储的数据格式和范围,例如,VARCHAR类型的字段用于存储可变长度的字符串。
3.主键(PrimaryKey)
-主键是表中的一个或一组字段,其值能够唯一地标识表中的每一行。例如,在员工信息表中,员工编号可以作为主键,因为每个员工的编号是唯一的。主键用于保证数据的完整性和方便数据的查询与关联操作。
4.外键(ForeignKey)
-外键是表中的一个字段或一组字段,它的值与另一个表的主键相对应,用于建立表与表之间的关联关系。例如,在订单表中有一个客户编号字段,这个字段可以作为外键与客户表中的主键(客户编号)相关联,从而实现订单与客户信息的关联查询。
5.索引(Index)
-索引是一种数据结构,用于提高数据库的查询效率。它类似于书籍的目录,通过创建索引,可以快速定位到表中的数据。常见的索引类型有B-树索引、哈希索引等。但是,索引也会占用额外的存储空间,并且在数据更新时需要维护索引的一致性。
五、SQL基础
1.数据定义语句(DDL)
-CREATE:用于创建数据库对象,如创建表(CREATETABLE)、创建索引(CREATEINDEX)等。
-ALTER:用于修改数据库对象的结构,如修改表的结构(ALTERTABLE),可以添加、删除或修改表中的列。
-DROP:用于删除数据库对象,如删除表(DROPTABLE)、删除索引(DROPINDEX)等。
2.数据操纵语句(DML)
-INSERT:用于向表中插入数据,例如INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,...)。
-UP