mysql2 - 使用 node 操作数据库

4,525 阅读2分钟

前言

  • MySQL 相信大家都很熟悉,我们要进行数据的持久化保存都需要用到数据库,MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的关系数据库管理系统应用软件之一
  • 下面我们就说说怎么用 node 借助 mysql2 模块操作数据库

安装

npm install mysql2

基本使用

  • mysql2 操作数据库首先要连接 MySQL
  • 使用 createConnection 方法创建连接
  • 参数:
    1. host - 主机名
    2. user - 用户名
    3. database - 数据库名
    4. password - 数据库密码
const mysql = require('mysql2');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'test',
    password: 'xxxxxx'
});
  • 这个时候可以先执行一下看看连接是否成功,防止后面的操作错误不知道哪错了

同步模块

  • 建议使用同步模块 mysql2/promise
  • 使用方法与 mysql2 类似,内置了 promise ,这样我们可以不用一直写回调好看很多
  • 下面我们就直接使用 mysql2/promise
const mysql = require('mysql2/promise');

const connection = await mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'test',
    password: 'xxxxxx'
});

增、删、改、查

  • 数据库的操作,无非就是增删改查,我们来看看具体如何操作的

  • SELECT 字段 FROM 表名 WHERE 条件语句
  1. 无条件查询
const [rows, fields] = await connection.execute('SELECT * FROM `表名`', []);
console.log(rows);
  1. limit - 查询条数
const [rows, fields] = await connection.execute('SELECT * FROM `datas` limit start,end', []);
// 使用占位符号 ?
const [rows, fields] = await connection.execute('SELECT * FROM `datas` limit ?,?', [start, end]);
  1. count - 查询总条数
const [rows, fields] = await connection.execute('SELECT count(id) FROM `datas` limit 1,5', []);
// 别名
const [rows, fields] = await connection.execute('SELECT count(id) as count FROM `datas` limit 1,5', []);

  • INSERT INTO 表名 (字段一,字段二,字段三) VALUES ("值一","值二","值三")

  • 表名和字段名建议使用 `` 包住,防止关键字带来的不必要麻烦

await connection.execute('insert into `表名` (`字段1`, `字段2`) values ("值1", "值2")');
  • 值也可以通过占位符号 ? 的方式写
await connection.execute('insert into `表名` (`字段1`, `字段2`) values (?, ?, ?, ?)', [
    值1,
    值2
]);

  • DELETE FROM 表名 WHERE 条件
await connection.execute('delete from `datas` where id=1');

  • UPDATE 表名 SET 设置的内容 WHERE 条件语句
// 单个
await connection.execute('UPDATE datas SET title=123 WHERE id=1');
// 多个
await connection.execute('UPDATE datas SET title=123,imgUrl=345 WHERE id=1');

条件语句

  1. AND
  2. OR
  3. ORDER BY (DESC/ASC)
  4. LIMIT
  5. LIKE
  6. JOIN ON
  7. AS

最后

  • 这个文章只是做个笔记和大概让大家了解 node 怎么操作 MySQL
  • 如果想详细学习数据库还是得去查查更多的 MySQL 语句
  • 毕竟我只是个做前端的