文章目录
- 前言
- 一 数据库的基本概念
- 二 安装并配置 MySQL
- 三 MySQL 基本使用
- 四 在项目中操作 MySQL
- 五 前后端的身份验证
前言
本文包含MySQL数据库和身份验证的基本内容,参考于黑马教学PPT通过自己理解整理,所以这是一篇用于小白新手入门,或者复习使用的笔记
如有做的不好的地方,敬请谅解,欢迎指出,持续更新改正
一 数据库的基本概念
1.1 什么是数据库
- 数据库(database) 是用来组织, 存储和管理数据的仓库
- 当今世界是一个充满数据的互联网世界, 充斥着大量的数据
- 数据来源有很多, 各种方面, 除了文本类型数据, 图像, 音频等都是数据
- 为了方便管理互联网世界中的数据, 就有了数据库管理系统(简称:数据库)
- 用户可以对数据库中的数据进行新增, 查询, 更新, 删除等操作 (增删改查)
1.2 常见的数据库及分类
- MySQL 数据库 (目前最广泛, 流行度最高的开源免费数据库: community 社区 + Enterprise 企业级)
- Oracle数据库 (收费)
- SQL Server 数据库 (收费)
- Mongodb 数据库 (community 社区 + Enterprise 企业)
其中, MySQL, Oracle, SQL Server 属于传统型数据库 (又叫: 关系型数据库 或 SQL 数据库)
而 Mongodb 属于新型数据库 (又叫: 非关系型 或者NoSQL数据库), 弥补了传统数据库一定的缺陷
1.3 传统数据库的数据组织结构
数据的组织结构 : 数据以什么样的结构进行存储
传统型数据库的数据组织结构, 与 Excel 中的数据组织结构类似
1.3.1 Excel 数据组织结构
每个 Excel 中, 数据组织结构分别为 工作蒲, 工作表, 数据行, 列 四大部分组成
1.3.2 传统数据库的数据组织结构
数据结构分为 :
- 数据库 (database)
- 数据表 (table)
- 数据行 (row)
- 字段 (field) 列
1.3.3 实际开发中 库, 表, 行 字段 的关系
- 实际项目开发中, 每个项目都对应独立的数据库
- 不同的数据, 要存储到数据库的不同表中
- 每个表中具体存储哪些信息, 由字段决定
- 表中的行, 代表每一条具体的数据
数据库中包含许多数据表, 数据表中包含许多数据行, 数据行就代表每一条具体数据, 最后字段决定存储哪些信息
二 安装并配置 MySQL
2.1 需要哪些MySQL相关软件
只需安装 MySAL Server 和 MySQL Workbench
- MySAL Server: 专门用来提供数据存储和服务的软件
- MySQL Workbench: 可视化的 MySQL 管理工具, 更方便的操作存储在 MySQL Server 中的数据
三 MySQL 基本使用
3.1 使用 MySQL Workbench
3.1.1 连接数据库
local instance MySQL80
输入密码连接
3.1.2 了解主界面的组成部分
3.1.3 创建数据库
3.1.4 创建数据库
DataType 数据类型:
- int 整数
- varchar (len最大长度) 字符串
- tinyint(1) 布尔值
字段的特殊标识:
- PK(Primary Key)主键、唯一标识
- NN(Not Null)值不允许为空
- UQ(Unique)值唯一
- AI (Auto Increment)值自动增长
3.1.5 向表中写入数据
3.2 使用 SQL 管理数据库
3.2.1 什么是 SQL
SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。
三个关键点:
- SQL 是一门数据库编程语言
- 使用 SQL 语言编写出来的代码,叫做 SQL 语句
- SQL 语言只能在关系型数据库中使用(例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb)
不支持 SQL 语言
3.2.2 SQL 能做什么
- 从数据库中查询数据
- 向数据库中插入新的数据
- 更新数据库中的数据
- 从数据库删除数据
- 可以创建新数据库
- 可在数据库中创建新表
- 可在数据库中创建存储过程、视图
- 还有很多
3.2.3 SQL 的学习目标
重点掌握如何使用 SQL 从数据表中:
查询数据(select) 、插入数据(insert into) 、更新数据(update) 、删除数据(delete)
额外需要掌握的 4 种 SQL 语法:
where 条件、and 和 or 运算符、order by 排序、count(*) 函数
3.3 SQL 的 SELECT 语句
3.3.1 语法
SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。语法格式如下:
注意 : SQL 语句中的关键字对大小写不敏感。SELECT 等效于 select,FROM 等效于 from
3.3.2&3 SELECT * SELECT 列名 示例
SELECT *
SELECT 列名
3.4 SQL 的 INSERT INTO 语句
3.4.1 语法
INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下
3.4.2 INSERT INTO 示例
向 users 表中,插入一条 username 为 tony stark,password 为 098123 的用户数据,示例如下:
3.5 SQL 的 UPDATE 语句
3.5.1 语法
Update 语句用于修改表中的数据。语法格式如下
3.5.2 UPDATE 示例 - 更新某一行中的一个列
3.5.3 UPDATE 示例 - 更新某一行中的若干列
3.6 SQL 的 DELETE 语句
3.6.1 语法
DELETE 语句用于删除表中的行。语法格式如下
3.6.2 DELETE 示例
3.7 SQL 的 WHERE 子句
3.7.1 语法
WHERE 子句用于限定选择的标准。在 SELECT、UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准
3.7.2 可在 WHERE 子句中使用的运算符
3.7.3 WHERE 子句示例
可以通过 WHERE 子句来限定 SELECT 的查询条件
3.8 SQL 的 AND 和 OR 运算符
3.8.1 语法
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
AND 表示必须同时满足多个条件,相当于 JavaScript 中的 && 运算符,例如 if (a !== 10 && a !== 20)
OR 表示只要满足任意一个条件即可,相当于 JavaScript 中的 || 运算符,例如 if(a !== 10 || a !== 20)
3.8.2 AND 运算符示例
3.8.2 OR 运算符示例
3.9 SQL 的 ORDER BY 子句
3.9.1 语法
- ORDER BY 语句用于根据指定的列对结果集进行排序。
- ORDER BY 语句默认按照升序对记录进行排序。
- 如果您望按照降序对记录进行排序,可以使用 DESC 关键字。
3.9.2 ORDER BY 子句 - 升序排序
3.9.3 ORDER BY 子句 - 降序排序
3.9.4 ORDER BY 子句 – 多重排序
3.10 SQL 的 COUNT(*) 函数
3.10.1 语法
COUNT(*) 函数用于返回查询结果的总数据条数,语法格式如下
3.10.2 COUNT(*) 示例
3.10.2 使用 AS 为列设置别名
四 在项目中操作 MySQL
4.1 在项目中操作数据库的步骤
- 安装操作 MySQL 数据库的第三方模块(mysql)
- 通过 mysql 模块连接到 MySQL 数据库
- 通过 mysql 模块执行 SQL 语句
4.2 安装与配置 mysql 模块
4.2.1 安装 mysql 模块
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包
npm i mysql
4.2.2 配置 mysql 模块
在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下
//1.导入mysql模块
const mysql = require('mysql')
//2.建立与 MySQL 数据库的连接
const db = mysql.createPool({
host: '127.0.0.1', //数据库的IP地址
user: 'root', //登录数据库的账号
password: '*********', //登录数据库的密码
database: 'my_db_01' //指定要操作哪个数据库
})
4.2.3 测试 mysql 模块能否正常工作
调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:
// 测试 mysql 模块是否正常工作
db.query('select 1', (err, results) => {
// mysql 模块工作期间报错了
if(err) return console