<>数据库原理及应用(mysql版)
本文配套教材《数据库原理及应用(mysql版)》李月军著
这是对于学校教材的学习,我也希望能好好学习
这个并不是正儿八经的数据库,只是lz酷爱使用md编写笔记,孩子要期末考试了,所以想在闲暇时刻也能复习,就上传到csdn用手机查看md格式的文档
数据库比较正式,算是读书笔记一类的,大家可以放心食用,有啥问题请批评指正,记得私信我哟
<>第一篇 数据库基础知识
<>第1章 数据库的基本原理
<>1.1 数据库系统概述
<>1.1.1 数据库的应用
。。。。。。
没得啥子知识要点
<>1.1.2 数据库系统的概述
<>1. 数据(Data)
数据是数据库存储的基本对象,是描述现实世界中各种具体事物或抽象概念的、可存储的并具有明确意义的符号记录
<>2. 数据库(DataBase,DB)
数据库就是相互关联的数据集合。
数据库是长期存储在计算机内、有组织的、可共享的大量数据集合。
<>3. 数据库管理系统(DBMS,DataBase Management System)
数据库管理系统是位于用户与操作系统之间的一层数据库管理软件。
功能:
* 数据定义功能:定义数据对象(表、视图、索引、存储过程)和数据的完整约束性
* 数据操纵功能:增删改查
* 数据控制功能:安全性控制、并发控制、数据库的存储、恢复功能;数据库的性能监视、分析功能
* 数据的存储、组织和管理 <>4. 数据库系统(DBS,DataBase System)
数据库系统=数据库(DB)+数据库管理系统(DBMS)+应用系统+数据库管理员(DBA)
<>5. 数据库应用系统(DBAS,DataBase Application System)
数据库应用系统主要是指实现业务逻辑的应用程序
<>1.1.3 数据管理技术的发展阶段
<>1. 人工管理阶段
特点:
* 数据不保存
* 数据不具有独立性
* 数据不共享
* 只有程序概念,没有文件概念 <>2. 文件管理系统阶段
弊端:
* 数据的冗余和不一致
* 数据独立性差
* 数据孤立 <>3. 数据库系统阶段
特点:
* 数据结构化
* 数据的共享性高、冗余度低、易扩充
* 数据独立性高:物理独立性+逻辑独立性
物理独立性:数据库物理结构改变不影响逻辑结构以及应用程序
逻辑独立性:数据整体逻辑结构改变时尽量不影响应用程序
* 数据由DBMS统一管理和控制
* 数据的完整性检查
* 并发控制
* 数据的安全性保护
* 数据库的恢复
<>1.1.4 数据库的用户
<>1. 数据库管理员(DBA)
职责:
* 参与数据库设计
* 定义数据的安全性要求和完整性约束条件
* 日常维护
* 定期备份数据库
* 监视数据库的运行
* 确保正常运行所需要的空余磁盘空间,并且在有需要的时候升级
* 数据库的改进和重组、重构 <>2. 数据库用户
* 最终用户
* 专业用户:工程师、科学家、经济学家等具有较高科学技术背景的人员
* 系统分析员和数据库设计人员
* 应用程序猿
<>1.2 数据模型
<>1.2.1 数据抽象的过程
4种模型:概念模型、逻辑模型、外部模型、内部模型
数据抽象的过程(数据库设计过程):
* 根据用户需求设计数据库的概念模型。
* 根据转换规则把概念模型转换成数据库的逻辑模型
* 根据用户的业务特点设计外部模型,给应用程序使用
* 实现数据库时,要根据逻辑模型设计内部模型 <>1. 概念模型
概念模型特点:
* 概念模型表达数据库的整体业务逻辑结构
* 概念模型是从用户需求出发对数据库建模
* 概念模型独立于软件与硬件
* 概念模型是数据库设计人员与用户之间的进行交流的工具
联系:联系是两个或者多个实体之间的关联。
* 一对一联系(1:1)
* 一对多联系(1:n)
* 多对多联系(m:n) <>2. 逻辑模型
逻辑模型:层次模型、网状模型、关系模型。
层次模型的数据结构是树状结构;
网状模型的数据结构是有向图;
关系模型的数据结构是二维表格存储数据。
逻辑模型特点:
* 逻辑模型表达数据库的整体逻辑结构
* 逻辑模型是从数据库实现的观点出发对数据建模
* 逻辑模型硬件独立但软件依赖
* 逻辑模型是数据库设计人员与应用程序员之间交流的工具 <>3.外部模型
外部模型特点:
* 外部模型是逻辑模型的一个逻辑子集
* 硬件独立,软件依赖
* 外部模型反映了用户使用数据库的观点
从系统看,外部模型特点:
* 简化了用户的观点
* 有助于数据库的安全性保护
* 外部模型是对概念模型的支持。 <>4. 内部模型(物理模型)
内部模型(物理模型)是数据库最底层的抽象,描述了数据在磁盘上的存储方式、存取设备和存取方法。
<>1.2.2 关系模型
<>1. 数据模型三要素
* 数据结构:数据结构描述数据库的组成对象以及对象之间的联系。是对系统静态特性的描述
* 数据操作:增删改查。是对系统动态特性的描述
*
数据的完整性约束:完整性约束是给定的数据模型中数据及其联系所有具有的制约和依存规则,用于限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容
<>2. 关系数据模型的数据结构
* 关系(Relation):规范的二维表
* 元组(Tuple):表中的一行,除去第一行的名字
* 属性表中的一列
* 码/关键码/关键字(key):表中的某个属性或者属性的组合能唯一确定一个元组。在一个关系中可以有多个码。
* 关系模式
关系名(属性1,属性2,属性3,...,属性n)
Eg:学生基本信息表(学号,姓名,性别,出生日期,专业)
<>3. 关系数据模型的操作与完整性约束
关系数据模型操作:增删改查
关系的完整性约束:实体完整性、参照完整性、用户定义完整性
<>1.3 数据库体系结构
<>1.3.1 数据库的三级结构
数据库划分为3个抽象级:用户级、概念级、物理级
<>1. 用户级数据库
用户级对应外模式,用户级数据库:是用户看到和使用的数据库
<>2. 概念级数据库
概念级对应概念模式,介于用户级和物理级之间,是DBA看到的视图
<>3. 物理级数据库
物理级数据库对应内模式,是数据库内部表示,描述数据的实际关系存储,是最接近物理存储的级,又称为内部视图
<>1.3.2 数据库的三级模式
数据库系统的三级模式:概念模型、外模式、内模式
<>1. 概念模式/逻辑模式/模式
模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的共有数据视图。一个数据库只能有一个概念模式。
<>2. 外模式/子模式/用户模式
数据库用户(程序猿/最终用户)能够看到和使用的局部数据的逻辑结构和特征的描述。一个数据库可拥有多个外模式。
<>3. 内模式/存储模式/物理模式
数据物理结构和存储方式的描述。一个数据库只能有一个内模式。
<>1.3.3 数据库系统的二级映射与数据独立性
数据库的独立性高主要是由数据库系统三级模式之间的二级映射来实现的。
<>1. 数据库系统的二级映射
数据库的二级映射是:外模式/模式映射和模式/内模式映射。
<>2. 数据独立性
数据独立性:应用程序与数据之间的独立性,包括物理独立性和逻辑独立性两种。
物理独立性:用户的应用程序与存储在磁盘上的数据库中的数据是独立的。通过模式/内模式映射完成。
逻辑独立性:用户的应用程序和逻辑结构是相互独立的。通过外模式/模式映射完成。
<>1.3.4 数据库应用系统的开发机构
在这里第一次大致了解前后端是怎么区分出来的了
<>1. C/S模式
P19
<>2. B/S模式
P20
<>1.4 高级数据库系统
<>1.4.1 分布式数据库系统
<>1.4.2 面向对象数据库系统
<>1.4.3 并行数据库系统
<>1.4.4 多媒体数据库系统
<>1.5 数据仓库技术和数据挖掘技术
<>1.5.1 数据仓库
<>1.5.2 联机分析处理
<>1.5.3 数据挖掘
<>1.6 非关系型数据库NoSQL
<>1.6.1 NoSQL概述
<>1.6.2 NoSQL相关理论
<>1.6.3 NoSQL数据库模型
<>1.7 小结
这一章全部都是一些基础的介绍数据库的一些特性,没有什么具体的操作,所以就看看,记住就好了,至于1.4~1.6我是真没看,毕竟自己这本书学的是关系型数据库MySQL,数仓和其他的等到了后面再进行学习吧。
<>第二章 关系数据库标准语言SQL
<>2.1 SQL语言介绍
<>2.1.1 SQL数据库的体系结构
使用SQL的关系数据库具有如下特点:
*
SQL用户可以是应用程序也可以是终端用户。可以作为嵌入语言或者单独使用
*
SQL用户可以用SQL语言对基本表和视图进行查询
*
* 一个视图是从若干基本表或者其他视图上导出来的表。
* 在数据库中只存放视图的定义,不存放相应的数据,数据仍然在导出视图的基本表中。
* 视图是一个虚表,只有定义,没有数据。
*
*
一个或者一些基本表对应一个数据文件。
*
一个基本表也可以放在若干数据文件中。
*
一个数据文件对应存储设备上一个存储文件
*
* 一个基本表可以带若干个索引
* 索引也存放于数据文件中
*
一个表空间可以由若干个数据文件组成
*
一个数据文件可以由多个数据文件组成
P41图2-1
<>2.1.2 SQL特点
<>1. 综合统一
SQL可以独立完成数据库生命周期中全部活动
<>2. 高度非过程化
只需要提出做什么,不需要知道这些过程是怎么实现的
<>3. 面向集合的操作方式
作用对象不仅仅是单条的数据,还可以是多数据的集合
<>4. 同一种语法提供两种使用方式
可以单独使用和嵌入到其他语言使用
<>5. 语言简洁,易学易用
就很简单的意思
<>2.1.3 SQL语言组成
SQL功能动词
数据定义(DDL)create,drop,alter
数据操纵(DML)insert,delete,update,select
数据控制(DCL)commit,rollback,grant,revoke
<>2.2 数据的定义
SQL数据定义功能包括:数据库的定义,表的定义,视图和索引的定义
本节介绍数据库和基本表的定义
<>2.2.1 数据库的定义和删除
<>1. 创建数据库 create database 数据库名; <>2. 选择数据库 use 数据库名; <>3. 删除数据库 drop
database 数据库名;
<>2.2.2 数据类型
四种:字符串类型,数值类型,日期和时间类型,布尔类型
<>1. 字符串类型
* char:描述定长的字符串,说明为 char(L),字符串长度为1~255,超过就会被截断,比L小的就会用空格填补
* varchar:描述变长的字符串,说明为 varchar(L),字符串长度为1~255,超过就会被截断,比L小的不会用空格填补,按实际长度存储 <>
2. 数值类型
* int:表示整数,默认长度四个字节
* decimal:可用来表示所有的数值类型说明格式 decimal(p,s),其中p表示数值数据的最大长度,s表示小数点后数字位数,可省略s <>3.
日期和时间类型
* data:保存固定长度的日期类型
* time:保存固定长度的时间数据
* datatime:保存固定长度的日期时间数据
日期格式:YYYY-MM-DD
时间格式:HH:MM:SS
日期时间格式:YYYY-MM-DD HH:MM:SS
<>4. 布尔类型
boolean,只有两种值true和false
<>2.2.3 基本的定义,删除和修改
<>1. 创建表 create table 表名 (<列名><数据类型>[default<默认值>] [...] );
default是为了设置默认值,用户不输入,系统默认
<>2. 利用子查询来创建表 create table<tablename> select 语句; <>3. 修改表的结构
* 增加一个新列 alter table <tablename> add [column] <columnName> <datatype>
[default<default values>];
* 修改一个表中已有的列 alter table <table name> modify <column name> <data type>
[default<default values>];
* 从一个表中删除一列 alter table <table name> drop <column name>; <>4. 截断表和删除表
* 截断表
删除一个表中的数据,保留表的结构
truncate table<table name>;
* 删除表 drop table <table name>;
<>2.3 数据查询
select基本语法:
select * |<column name|Column expressions>[,<column name|column expression]...
from <table name or view name>[,<table name or view name>]... [where
<conditional expression>] [group by <分组列名1>][,<分组列名2>]... [having <组条件表达式>]
[order by <排列序名1[ASC|DESC]>[,<排列序名2[ASC|DESC]]...];
语句执行过程如下:
* 读取from子句中的表、视图的数据,若果是多个表、视图,执行笛卡尔积操作
* 选择满足where子句中给出的条件表达式记录
* 按group by 子句中指定列的值对记录进行分组,同时提取满足having子句中组条件表达式的那些组
* 按select子句中给出的列名或者列表达式求值输出
* order by 子句中对输出的记录进行排序
<>2.3.1 基本查询