Node.js 第四节:操作mysql数据基本增删改查功能笔记
数据库
安装mysql 数据库(社区版)
使用mysql wordbench 管理数据库
- 连接数据库
注意
- 数据库的名称不能为中文
在项目中 操作数据库的步骤
- 安装操作 MySQL 数据库的第三方模块(mysql)
- 通过mysql 模块 连接到MySQL 数据库
- 通过mysql 模块执行SQL 查询
- 安装 mysql 模块
mysql 模块是依托 npm 上的 第三方模块,它提供了在Node.js 项目中连接和操作MySQL 数据库的能力。
npm install mysql
项目实例
使用mysql模块 建立与MySQL 数据库的连接
npm init -y
npm install mysql
- 新建index.js 文件,配置 mysql模块
/**
* 配置 mysql模块
*/
// 1. 导入mysql 模块
const mysql = require('mysql');
//2.建立与MySQL 数据库的连接
const db = mysql.createPool({
host:'127.0.0.1', // 数据库的 IP 地址
user:'root', // 登录数据库的账号
password:'admin123', // 登录数据库的密码
database:'my_db_01' // 指定要操作哪个数据库
})
- 1.测试 mysql 模块能否正常工作
db.query('select 1',(err,results) => {
if(err) return console.log(err.message);
//只要能打印 [ RowDataPacket { '1': 1 } ],就算成功的执行 SQL 语句
console.log(results)
})
- 2.查询users 表中的所有数据
const sqlStr = 'select * from users'
db.query(sqlStr,(err,results) => {
if(err) return console.log(err.message);
console.log(results)
})
- 2.1 查询users 表中指定数据(方式一)
const sqlStr = 'select * from users where id = ?'
db.query(sqlStr,[5],(err,results) => {
if(err) return console.log(err.message);
console.log(results)
})
- 2.2 查询users 表中指定数据(方式二)
const sqlStr = 'select * from users where id = ?'
db.query(sqlStr,[5],(err,results) => {
if(err) return console.log(err.message);
console.log(results)
})
- 3.向users 表插入一条数据
const user = {
username :'诗宝宝',
password:'admin456',
}
const sqlStr = 'insert into users (username,password) values(?,?)'
db.query(sqlStr,[user.username,user.password],(err,results) => {
if(err) return console.log(err.message);
if(results.affectedRows === 1){
console.log('插入数据成功!')
}
})
- 3.1 插入数据的便捷方式
//1.要插入到users表中的数据对象
const user = { username: 'icygod', password: 'icy88888' }
//2.待执行的SQL语句,其中英文的?表示占位符
const sqlstr = 'insert into users set ?'
//3.直接将数据对象当作占位符的值
db.query(sqlstr, user, (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) { console.log('插入数据成功!') } //成功
})
- 4.根据唯一id 更新users 表中的数据
//1.要更新的数据对象
const user = {
id:6,
username:'魔头',
password:'123'
}
//2.要执行的sql语句
const sqlstr = 'update users set username = ?,password = ? where id = ?'
//3.调用db.query()执行SQL语句的同时,使用数组依次为占位符指定具体的值
db.query(sqlstr,[user.username,user.password,user.id],(err,results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) { console.log('更新数据成功!'); }
})
- 4.1 更新数据的便捷方式
//1.要更新的数据对象
const user = { id: 7, username: '我是中文', password: '000011' }
//2.要执行的sql语句
const sqlstr = 'update users set ? where id = ?'
//3.调用db.query()执行SQL语句的同时,使用数组依次为占位符指定具体的值
db.query(sqlstr, [user, user.id], (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) { console.log('更新数据成功!'); }
})
- 5.根据唯一id 删除users表中指定数据
//1.要执行的SQL语句
const sqlstr = "delete from users where id = 4"
//调用db.query() 执行sql语句的同时,为占位符指定具体的值
//注意:如果sql语句中有多个占位符,则必须使用数组为每个占位符指定具体值
//如果sql语句中只有一个占位符,则可以省略数组
db.query(sqlstr, (err, results) => {
if (err) return console.log(err.message)
if (results.affectedRows === 1) { console.log('删除数据成功!'); }
})
未来的我会感谢现在努力的自己。