1.为什么要使用数据库存储数据?
因为以文本文件的方式存储数据有3个明显的缺点
1.之前存储在文本文件data.json的方式不安全,直接存储在文本文件中,无法进行加密操作,安全性低
2.数据存取不方便,维护和拓展麻烦
3.存储分散,管理不便
4.数据库相比文本文件
- 支持 结构化查询语言(Sql)的数据库,叫做
Sql数据库 Sql是一种查询语言,能够很方便的对数据进行CRUD(增删改查)
2-安装配置mysql、navicat
安装单独的mysql服务
navicat傻瓜式安装、一键激活(建议安装navicat时候选择默认安装路径,方便一键激活)
3-数据库可视化工具navicat的基本使用
链接

新建数据库

新建设置

新建表与保存表

设计表

设计表说明
设计表-设置字段类型
**金钥匙-主键:是用来标识数据表中每一行数据的唯一性的,类似于身份证号码,通常给id设置主键并给id设置自动递增 使得每个id的值不一样 **
勾选了Int 类型的 Id为 自动增长,则每次写入数据的时候,可以不提供id,数据库会自动写入一个Id
注意细节

给某个字段设置默认属性时,如果设置的值不是数字,则需要添加""引号
3-使用Sql语句对数据库执行基本操作
查询

新增

修改

删除

常用函数

4-使用node操作数据库
安装mysql模块 npm install mysql -S
连接数据库
// 导入MySQL模块
var mysql = require('mysql');
// 创建一个数据库连接
const connection = mysql.createPool({
host: 'localhost', // 主机
user: 'root', // 用户名
password: 'root', // 密码
database: 'mybase58' // 你想操作的数据库的名称
})
// 连接数据库或打开数据库
connection.connect();
查询
app.get('/', (req, res) => {
// 查询
let sql = 'select * from users'
// 调用query方法可以实现指定的Sql语句,执行完之后,会调用指定的回调函数,同时给回调函数传入三个参数
// err:操作失败的错误信息
// results:操作成功的msyql服务器的返回结果,查询返回结果集,在这里,返回的数据格式是数组
// fields:查询特有的返回数据,主要用于描述数据表及字段的相关信息,对于前台业务的影响不大---别理它,只有查询会有
// connection.query(sql语句,(err,results,fields)=>{})
conn.query(sql, (err, results, fields) => {
if (err) {
console.log(err)
}
else {
console.log(results)
console.log(typeof results)
console.log('-------------------------------------')
console.log(fields)
res.json(results)
}
})
增加
// 模拟客户端
let obj = {
name: 'hanmeimei',
age: 15,
gender: '女',
address: '黑马105'
}
let sql = `insert into users(name,age,gender,address) values('${obj.name}','${obj.age}','${obj.gender}','${obj.address}')`
----------------------------------------------
参数化查询,可以以参数的形式定义用户数据
let sql = 'insert into users(name,age,gender,address) values(?,?,?,?)'
*下面这种写法,会根据你所传入的数据对象自动的生成sql语句
// 它会根据对象的属性自动的生成sql语句
// 对象中拥有的属性名就是你要插入的字段名称 insert into users(username,age,gender,address)
let sql = 'insert into users set ?'
// 参数值有这么几个细节:
// 1. 值的数量必须和参数的数量一致
// 2. 顺序需要一致,它们是一一对应的
// 3. 如果有多个参数,则需要使用[]数组的形式来设置
// 4. 你也可以直接传入一个对象,传入对象的时候不用加[]
connection.query(sql, [参数值], (err, results, filed) => { })
修改
let obj = {
id: 7,
name: 'nancy',
age: 24,
gender: '女',
address: '华盛顿'
}
let sql = `update users set name = '${obj.name}',age= '${obj.age}',gender = '${obj.gender}',address = '${obj.address}' where id =
'${obj.id}'`
----------------------------------------
// 它会根据你所传入的对象的属性生成对应的Sql语句
let sql = 'update users set ? where id = ?'
connection.query(sql, [obj, obj.id], (err, results, filed) => {})
删除
let age = 16
let sql = `delete from users where age = ${age}`
-----------------------------
let id = 10
let sql = `delete from users where id = ?`
connection.query(sql, [9], (err, results, filed) => {})
本文介绍了使用数据库存储数据的原因,对比文本文件存储的优势,并详细讲解了如何通过Node.js连接和操作MySQL数据库,包括安装配置、基本SQL操作及示例。
&spm=1001.2101.3001.5002&articleId=110665868&d=1&t=3&u=9c57fdbccf464e25afeb8d47e733847b)
796

被折叠的 条评论
为什么被折叠?



