Node.js——关于MySQL数据库

128 阅读3分钟

一.数据库

1.什么是数据库

用来组织、储存和管理数据的仓库。

2.分类

传统型数据库(又称关系型数据库或SQL数据库):MySQL(开源免费,当前最流行)、Oracle(收费)、SQL Server(收费)。

新型数据库(又称非关系型数据库或NoSQL数据库):MongoDB

二.MySQL的基本使用

1.安装

需安装MySQL和MySQL-Workbench。

官网:(www.mysql.com/downloads/)…

进入后点击download。

屏幕截图 2022-04-23 182444.png

然后往下滑点击下图位置。

屏幕截图 2022-04-23 182506.png

然后下载下图两个软件。

屏幕截图 2022-04-23 182637.png

2.了解SQL

  • 它是一门数据库编程语言。

  • 使用SQL编码出来的语句叫SQL语句。

  • 只能在关系型数据库中使用。

SQL——SELECT语句

用于从表中查询数据。执行的结果被存储在一个结果表中(被称为结果集)。

-- + 空格:表示注解

SELECT * FROM 表名称 (从FROM指定的表中,查询所有的数据).

SELECT 列名称 FROM 表名称 (从FROM指定的表中,查询指定列名称的数据).

注:SQL对关键字大小不敏感,其余都敏感。

SQL——INSERT INTO语句

用于数据表中插入新的数据行。

INSERT INTO table_name(列1,列2,...)VALUES(值1,值2,...)。

SQL——UPDATE语句

用于修改表中的数据。

UPDATE 表名称 SET 列名称=新值 WHERE 列名称=某值。

SQL——DELETE语句

用于删除表中的行。

DELETE FROM 表名称 WHERE 列名称=值.

SQL——WHERE语句

用于限定选择的标准。

主句 WHERE 列 运算符 值。

SQL——AND和OR运算符

AND——同时满足多个条件。

OR——满足任意一个条件。

主句 WHERE 条件 AND 条件。

SQL——ORDER BY语句

用于根据指定的列对结果集进行排序。

默认按照升序排列:ASC。

降序:DESC。

主句 WHERE ORDER BY 列名称 ASC/DESC。

SQL——COUNT( * )语句

用于返回查询结果的总数据条数。

SELECT COUNT( * ) FROM 表名称。

使用AS为列设置别名。

3.在项目中操作MySQL

  • 安装操作MySQL数据库的第三方模块。
npm install mysql
  • 通过mysql模块连接到MySQL数据库。

导入:

const mysql = require('mysql')

建立连接:

const db = mysql.createPool({
    host:
    //IP地址
    user:
    //账号
    password:
    //密码
    database:
    //哪个数据库
})

检测是否连接成功:

db.query('SELECT',(err,results) => {
    if(err) return console.log(err.message)
    console.log(results)
})

查询user中所有的数据:

const sqlStr = 'select * from users'
db.query(sqlStr, (err, result) => {
     if (err) return console.log(err.message);
    console.log(result);
})

插入数据:

const user = { username: 'Spider-man2', password: 'sjb7481' }
// //插入数据的便捷方式
const sqlStr = 'insert into users set ?'
db.query(sqlStr, user, (err, results) => {
   if (err) return console.log(err.message);
   //若是执行插入insert into语句,则results是一个对象
   if(results.affectedRows===1) return console.log('插入数据成功!');
})

更新数据:

//使用delete语句会直接删除数据,不能恢复
const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 7, (err, results) => {
   if (err) return console.log(err.message);
   // results也是一个对象
   if(results.affectedRows===1) return console.log('删除数据成功!')
})

标记删除:

// 利用update语句替代delete语句,更新数据状态,不进行真正删除(推荐使用)
const sqlStr = 'uppdate users set status=? where id=?'
db.query(sqlStr, [1, 6], (err, results) => {
    if (err) return console.log(err.message);
    if(results.affectedRows===1) return console.log('删除数据成功!')
})