Node.js操作mysql(入门)

node操作mysql

mysql
  • 一些重要的sql命令
    INSERT INTO:增(向数据库中插入新数据)
    DELETE:删(从数据库中删除数据)
    UPDATE:改( 更新数据库中的数据)
    SELECT:查(从数据库中提取数据)
    CREATE DATABASE:创建数据库
    ALTER DATABASE - 修改数据库
    CREATE TABLE - 创建新表
    ALTER TABLE - 变更(改变)数据库表
    DROP TABLE - 删除表
    CREATE INDEX - 创建索引(搜索键)
    DROP INDEX - 删除索引
下载wampserver
  1. 该软件下的mysql是没有设置密码
  2. 开启变为绿色的图标,然后浏览器输入localhost测试是否安装成功
下载navicat
  1. wamp默认是开启mysql
  2. 在这个工具新建链接–新建数据库–新建表
  3. 可以直接写,也可以新建查询使用insert来插入你想要的数据
    随便写几条数据
初始化package.json
cnpm init -y
下载mysql
npm install mysqljs/mysql

node连接数据库

  • 文档
  • 文档
  • 在同一目录新建test.js,将文档的代码黏贴
  • 使用可视化工具进行连接mysql
  • 创建数据库文件名(这里我命名为bookdb)
  • 代码解释
const mysql = require('mysql');
let connection = mysql.createConnection({
  host     : 'localhost',//数据库所在的域名或则IP地址
  user     : 'root',//登录数据库的账号(数据库链接时候的用户名)
  password : '',//密码(这里为空,因为wamp默认是没有密码)
  database : 'bookdb'//数据库名称
});
//链接数据库
connection.connect();
//操作数据库(数据库操作也是异步的)
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);//看看控制台是否有输出2
});
//关闭数据库
connection.end();
  • 结果
    node

需求:查询我们表有多少条数据

const mysql = require('mysql');
let connection = mysql.createConnection({
  host     : 'localhost',//数据库所在的域名或则IP地址
  user     : 'root',//登录数据库的账号(数据库链接时候的用户名)
  password : '',//密码(这里为空,因为wamp默认是没有密码)
  database : 'bookdb'//数据库名称
});
//链接数据库
connection.connect();
//操作数据库(数据库操作也是异步的)
connection.query('select count(*) as total from book', function (error, results, fields) {
  if (error) throw error;
  console.log('总条数:', results[0].total);//结果会输出总条数:5
});
//关闭数据库
connection.end();

需求:插入一条数据

// 更改操作数据部分
connection.query('insert into book (name,author,category,description) values ("延禧攻略","于正","宫斗","机智女主巧妙化解难题,步步高升")', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results);//看看控制台是否有输出2
});

第三方包有提供直接简化处理,(设置?)代码更具有可读性

增删改查

插入一条数据

// ···
//链接数据库
connection.connect();
let sql = 'insert into book set ?'//操作插入命令
let data = {
	name:"深入浅出Node.js",
	author:"朴灵",
	category:"编程",
	description:"从不同的视角来揭示Node自己内在的特点和结构"
}
connection.query(sql,data, function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results);//看看控制台是否有输出2
});
//关闭数据库
connection.end();
  • 控制台输出
    对象
    可以看到受影响的为一行,对应的主键id为8
  • 刷新可视化工具
    navicat

更新一条数据

let sql = 'update book set name=?,author=?,category=?,description=? where id=?'//更新操作
let data = ["深入浅出Vue.js","Berwin","MVVM","前端框架",1]//更新第一条操作

删除一条数据

let sql = "delete from book where id = ?"//删除数据
let data = [2]//依旧要用数组,这是格式上的要求,删除第二条数据

刷新navicat表格,结果
结果
第二条数据已经删除,第一条数据已经更改
查询操作

  1. 查询整个表格
let sql = "select * from book"//查询所有的数据
let data = null//这里不用放入数据,使用null

对象
2. 根据条件查询表格

let sql = "select * from book where id = ?"
let data = [3]

通过封装的方式操作API

let mysql = require('mysql')
exports.base = (sql,data,callback)=>{
	let connection = mysql.createConnection({
	host     : 'localhost',
  	user     : 'root',
  	password : '',
  	database : 'bookdb'
	})
	connection.connect();
	connection.query(sql,data, function (error, results, fields) {
  	if (error) throw error;
  		callback && callback(results)
	})
	connection.end();
}
// 1. 测试API
const db = require('./db.js')
let sql = 'select * from book'
let data = null
db.base(sql,data,function(data){
	console.log(data)
})

结果打印我们数据库的所有数据,封装成一个API,代码不会冗余,可读性更强。方便操作

猜你喜欢

转载自blog.csdn.net/weixin_41105030/article/details/86828087