为什么使用数据库
相比与文件系统,数据库具有以下优势:
- 高效率:查找效率高
- 高可用:可数据库共享
- 安全性强:数据不能随意修改
选择哪个数据库
数据库可以分为
关系型数据库
和非关系型数据库
。
关系型数据库
:是指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型(一个表由行和列组成),而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
代表的数据库有:
非关系型数据库(NoSQL)
:NoSQL(NoSQL = Not Only SQL )
,意即“不仅仅是SQL”。以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对。
元组
(tuple)
是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。
代表的数据库有:
参考1:关系型数据库和非关系型数据库区别、oracle与mysql的区别
参考2:非关系型数据库(NoSQL)相关概念介绍(附:常见的非关系型数据库)
参考3:数据库-维基百科
目前这个项目中使用的还是传统的MySQL
数据库。
mysql2 使用
适用于
Node.js
的MySQL驱动
,侧重于性能。支持预备语句,非utf8
编码,二进制日志协议,压缩,ssl
等。
地址:sidorares/node-mysql2
安装
npm install --save mysql2
使用
详细使用看sidorares/node-mysql2中的
README.md
简单使用例子:
// 获取实例
const mysql = require('mysql2');
// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test'
});
// 第一种查询数据的方式
connection.query(
'SELECT * FROM `table` WHERE `name` = "Page" AND `age` > 45',
function(err, results, fields) {
console.log(results); // results contains rows returned by server
console.log(fields); // fields contains extra meta data about results, if available
}
);
// 另一种方式查询数据的方式
connection.query(
'SELECT * FROM `table` WHERE `name` = ? AND `age` > ?',
['Page', 45],
function(err, results) {
console.log(results);
}
);
以上的数据库操作需要我们对SQL
语句比较熟悉,如果不熟悉的话可以使用ORM
来操作数据库。
为什么使用ORM
ORM
全称:对象关系映射(英语:Object Relational Mapping
,简称ORM
,或O/RM
,或O/R mapping
),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。对象关系映射-维基百科
使用ORM
操作数据库,我们可以不用记住命令,只要使用ORM
库提供的API
即可实现相应的功能。
这里使用Sequelize
来操作数据库,上面实现的例子只要记住基本的API
:
const user = await User.findAll({
where: {
name: 'Page',
age: 45
}
})
ps: 详细的Sequelize
介绍可在后一章查看
Navicat
通过命令行的方式去查看数据库的数据显然不是一个好办法,这时候可视化查看和操作数据库的数据就显得很必要了,使用MySQL
数据库的用户可以尝试使用Navicat for MySQL
Navicat for MySQL
是管理和开发MySQL
或MariaDB
的理想解决方案。了解更多 >官网
XAMPP
有些时候MySQL
并不是那么容易安装,这时候可以使用集成的工具来安装,XAMPP
就是个不错的选择。
XAMPP
是最受欢迎的PHP
开发环境XAMPP
是一个完全免费,易于安装的Apache
发行版,其中包含MariaDB
,PHP
和Perl
。XAMPP
开源软件包已设置为非常易于安装和使用。官网
咨询请加微信:轻撩即可。