数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分支。数据库技术主要是用来解决数据处理的非数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。
(1)数据持久化:数据库可以将数据保存在存储介质中,即使应⽤程序关闭或服务器重启,数据也不会丢失
(2)数据结构化:数据库能够以结构化的方式存储数据,使得数据易于管理和查询。
(3)数据完整性:数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和⼀致性。
(4)并发控制:数据库可以处理多个用户或进程同时访问和修改数据,同时确保数据的⼀致性。
(5)安全性:数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。
(6)可扩展性:随着数据量的增长,数据库可以水平或垂直扩展,以适应不断增长的数据需求。
(7)备份和恢复:数据库支持数据的备份和恢复,以防数据丢失或损坏。
(8)查询优化:数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作。
(9)事务管理:⼤部分关系型数据库都支持事务,确保⼀系列操作要么完全成功,要么完全失败,提高了操作的可靠性。
(10)多用户支持:数据库允许多个用户同时访问和操作数据,适合多用户环境。
(1)Oracle:甲骨文产品,适合大型项目,业内最强的数据库,没有之⼀,需要收费。
(2)MySQL:开源免费,最受欢迎的数据库,在中小企业中普及率非常高,属于甲骨文,主要用在电商,论坛等。
(3)PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,可以免费使用,修改和分发。
(4)SQLSever:微软推出的⼀款专业级数据库,与旗下的操作系统,编程环境配合使用,适用于中大型项目。
(5)SQLite:⼀款轻型的数据库,占用资源非常低,常用于嵌入式设备,手机APP,桌面程序等场景。
(1)Redis:流行的基于键值对的内存数据库,常用作缓存,支持数据持久化,支持多种数据结构。
(2)MongoDB:基于NoSQL的文档型数据库,易扩展,高性能,高可用性,支持丰富的查询和聚合操作。
关系型数据库是指采用了关系模型来组织数据的数据库,以行和列的形式存储数据。关系模型可以简单理解为⼆维表格模型,而⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组 织。
当MySQL安装完成之后,bin目录下有⼀个mysqld(Linux)或mysqld.exe(windoows)的可执行程 序,mysqld可执行程序运行后,MySQL服务也就启动了。当把MySQL服务配置为自启动,操作系统启动时会自动运行mysqld可执行程序,从而启动MySQL服务。
数据库服务器是指在机器上安装了⼀个数据库管理系统程序,这个管理程序可以管理多个数据库, ⼀般开发人员会针对每⼀个应用创建⼀个数据库。
为保存应用中实体的数据,⼀般会在数据库中创建多个表,以保存程序中实体的数据
MySQL安装成功后自带的命令行客户端⼯具,可以输入命令和执行SQL语句,mysql的基本使用非常简单,打开终端并输入以下命令:
使用前检查PATH环境变量中是否配置了mysql所在目录
# 使⽤mysql客⼾端连接服务器
C:\Users\bit>mysql -uroot -p
# 输⼊密码
Enter password:
your_password
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.39 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 编写SQL语句
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.39 |
| |
+-----------+
1 row in set (0.00 sec) # 查询结果
mysql> # 这⾥可以继续输⼊数据库操作指令MySQL官方提供的可视化客户端⼯具。
业内⼴泛使用的可视化客户端⼯具,现在出了免费的Lite版本,对于学习中编写SQL语句完全够用,推荐使用,第⼀次使用要先配置连接
(我用的是Navicat Lite)
C/S架构即客户端/服务器架构模式
B/S架构即浏览器/服务器架构模式
C/S 架构全称是客户端/服务器(Client/Server)架构,是常用的两层架构。客户端需要安装客户端软件,服务端程序运行在服务器上,提供Socket或数据库服务。
使用客户端与MySQL数据库服务器通讯属于C/S架构

常用于固定用户群体中。常见的C/S架构的应用,比如QQ,CCTALK,各种网络游戏等等,⼀般需要安装并且与服务器进行网络通信的都属于此类。
优点:
(1)大部分业务都可以在客户端完成,充分利用本地的计算机资源
(2)响应速度快
(3)个性化定制能力强
(4)面向相对固定的用户群,对信息安全的控制能力强
缺点:
(1)需要安装客户端才能使用
(2)维护成本高,任何⼀台电脑上的客户端出现问题都需要进行维护,升能过程繁琐
B/S架构全称是浏览器/服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构⼀种改进。由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。

常用于对公开用户提供的网络服务中。比如常见的大型网站都属于此类。
优点:
(1)客户端零维护,只需要安装⼀个浏览器即可
(2)所有业务都集中在服务器端,业务扩展非常方便
(3)维护成本低,只需要维护服务器即可
缺点:
(1)服务器安全与业务处理能力需要花费很大精力与成本
(2)不同浏览器支持不尽⼈意
SQL(StructuredQueryLanguage)是结构化查询语言的简称,是⼀种数据库查询和程序设计语言, 用于存取数据以及查询、更新和管理关系数据库。
(1)DDL 【 Data Definition Language 】 数据定义语言,用来维护存储数据的结构
代表指令:create,drop,alter
(2)DML 【 Data Manipulation Language 】 数据操纵语言,用来对数据进行操作
代表指令:insert,delete,update,select
(3)DCL 【 Data Control Language 】 数据控制语言,主要负责权限管理和事务
代表指令:grant,revoke,commit
存储引擎是MySQL数据库处理数据的核心组件,不同的存储引擎对数据如何存储、索引、更新和查询的实现方式各有不同,在不同的业务场景可以选用合适的存储引擎。MySQL服务器采用可插拔的存储引擎架构,在服务器运行时可以动态的加载和卸载。
查看当前服务器支持哪些存储引擎可以使用SHOW ENGINES 语句,