目录
- 数据库简介
- [MySQL 服务基础](#MySQL 服务基础)
数据库简介
使用数据库的必要性
使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库具有以下特点:
可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。
可以有效地保持数据信息的一致性、完整性,降低数据几余。
可以满足应用的共享和安全方面的要求。
数据库的基本概念
1.数据
描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等都是数据。
在数据库中,数据是以"记录"的形式按照统一的格式进行存储的,而不是杂乱无章的。相同格式和类型的数据统一存放在一起,而不会把"人"和"书"混在一起存储。这样,数据的存储就能够井然有序。
如下图中存储的一行数据,在数据库中称为一条"记录。每(Record)条记录中的每一个输入项称为"列"。。下图中编号、姓名、性别、年龄、民族、专业都是列名。

2.数据库和数据库表
不同的记录组织在一起,就形成了数据库(Database,DB)的"表"(Tab。也可 以说,表是用来存储具体数据的,如图1.1所示。那么数据库和le)表存在什么关系呢?简单地 说,数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合。例如,关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。它可以供各种用户共享,具有最小几余度和较高的数据独立性,它是统一管理的相关数据的集合。通常,数据库并不是简单地存储这些数据的,还要表示它们之间的关系。例如,书和人是存在联系的,书的作者可能就是某个人,因此需要建立书与人的"关系"。这种关系也需要用数据库来表示,因此关系的描述也是数据库的一部分。
3.数据库管理系统和数据库系统
数据库管理系统(Database ManagementSystem,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下,支持用户对数据库的各项操作。DBMS 主要包括以下功能。
数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。
数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。
数据操纵功能:包括数据查询统计和数据更新两个方面。
数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。
通信功能:DBMS 与其他软件系统之间的通信,如Access 能与其他 Office组件进行 数据交换
**数据库系统(Database System,DBS)**是一个人-机系统,一般由硬件、操作系统、数 据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成。用户可以通过 DBMS 操作 数据库,也可以通过应用程序操作数据库。应用程序是利用 DBMS 为解决某个具体的管理或数据处理的任务而编制的一系列命令的 有序集合。如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行, 使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用,那么就称为数据库应 用软件。常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨 询系统等。
**数据库管理员(Database Administrator,DBA)**负责数据库的更新和备份数据库系 统的维护、用户管理等工作,保证数据库系统的正常运行。DBA一般由业务水平较高、资历 较深的人员担任。需要注意的是数据库、数据库系统、数据库管理系统,甚至数据库表等名词,在日常讨 论中通常不严格区别。遇到此情况时,可以根据具体情况,判断出实际所指的是什么。
数据库发展史
1.数据库系统发展史
数据库技术的发展已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术最初产生于20世纪60年代中期,根据数据模型的发展,可以划分为三个阶段:第一代的网状、层次数据库系统;第二代的关系数据库系统;第三代的以面向对象模型为主要特征的数据库系统。
2.经典数据模型
数据是现实世界中"量 "的抽象,而数据模型(Data Model)是数据特征的抽象。在数据库系统中,数据模型是它的核心与基础。数据模型表现为数据的结构、定义在其上的操作及约束条件。它从概念层次上描述了系统的静态特征动态特征和约束条件,为数据库系统的信息表示与操作提供了一个抽象框架。
在 DBMS 的发展过程中,出现了网状模型、层次模型和关系模型三种经典的数据模型。 由于受限于数学基础、编程技术和硬件条件,最初出现的层次模型和网状模型与关系模型相 比,在用户接口的上、中层部分更易于实现。所以,这在很长一段时间阻碍了关系模型的发展。
数据模型所描述的内容包括三方面:数据结构、数据操作和数据约束。三种经典数据模型:网状模型,层次模型,关系模型。
关系模型相比网状模型和层次模型有更为坚实和完整的理论基础。相比层次模型和网状模型而言,关系模型与用户更靠近些,而网状模型和层次模型与底层实现的结合更紧密。这样的特色也更容易让关系模型成为商业数据库的选择
3.主流数据库
(1)关系数据库
- SQL server
- Oracle
- DB2
- MySQL
(2)非关系数据库
- Redis
- MongoDB
- HBase
关系数据库的基本概念
1.主键与外键
(1)主键
数据表中的每行记录都必须是唯一的,而不允许出现完全相同的记录,通过定义主键(主 关键字,Primary Key)可以保证记录(实体)的唯一性。
一个主键值对应一行数据。主键由一个或多个主键唯一标识表中的行数据,字段组成, 其值具有唯一性,不允许取空值(NULL)。一个表只能有一个主键。
(2)外键
个关系数据库通常包含多个表,通过外键(Foreign Key)可以使这些表关
联起来。
外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就称为第二个表的外键。
2.数据完整性规则
实体完整性规则要求关系中的元组在主键的属性上不能有空值。如果出现空值,那么主 键值就起不到唯一标识元组的作用
域完整性也称列完整性,指定一个数据集对某一个列是否有效或确定是否允许空值。
如果两个表之间相互关联,那么引用完整性规则要求不允许引用不存在的元
组。
用户定义的完整性规则是针对某一具体数据的约束条件,由应用环境决定
MySQL 服务基础
二进制安装
1.基础环境准备
安装依赖软件包
创建运行Mysql程序的用户
最后一行是随机密码,以后登入mysql数据库使用
2.设定配置文件

每条含义:
socket=/usr/local/mysql/data/mysql.sock :指定客户端连接使用的套接字文件路径
bind-address = 0.0.0.0 :监听所有网络接口
skip-name-resolve :跳过域名解析以提高性能
port = 3306 :指定 MySQL 服务端口号
basedir=/usr/local/mysql :指定 MySQL 安装目录
datadir=/usr/local/mysql/data :指定 MySQL 数据目录
max_connections=2048 :设置最大连接数
character-set-server=utf8 :设置服务器字符集为 utf8
default-storage-engine=INNODB :设置默认存储引擎为 INNODB
max_allowed_packet=16M:设置最大允许的数据包大小
log-error=/usr/local/mysql/data/error.log:指定错误日志文件路径
创建链接文件
3.配置systemctl方式启动
将MySQL添加成为系统服务,通过使用systemctl 来管理。在/usr/local/mysql/support-files目录下找到mysql.server文件,将其复制 到/etc/rc.d/init.d 目录下,改名为 mysqld 并赋予可执行权限。
编辑生成mysqld.service服务
每条含义:
Description=mysqld :服务描述信息
After=network.target :表示在网络服务启动后启动该服务
Type=forking :服务类型为 forking
ExecStart=/etc/rc.d/init.d/mysqld start :启动服务的命令
ExecReload=/etc/rc.d/init.d/mysqld restart :重启服务的命令
ExecStop=/etc/rc.d/init.d/mysqld stop :停止服务的命令
PrivateTmp=true :使用私有临时目录
WantedBy=multi-user.target:表示该服务在多用户模式下启动

访问Mysql数据库
MySQL 数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问 MySQL数据库需要使用专门的客户端软件。在Linux系统中,最简单、易用的 MySQL 客户端软件是 其自带的 mysql 命令工具。
1.登录到MySQL服务器
经过安装后的初始化过程,MySQL数据库的默认管理员用户名为"root密码为给定的随机密码。以 root 用户登录本机的 MySQL 数据库,可以执行以下操作。
括号内为新密码
2.执行MySQL操作语句
验证成功以后将会进入提示符为"mysql>"的数据库操作环境,用户可以输入各种操 作语句对数据库进行管理。每一条 MySQL 操作语句以分号" ;"表示结束,输入时可以不区 分大小写,但习惯上将 MySQL 语句中的关键字部分大写。
重新登入
查看数据库,退出mysql