Node.js 操作数据库

211 阅读2分钟

安装Docker(Windows)

image.png

安装后设置国内镜像,如图所示

image.png

此时,会出现报错:

报错一:WSL 2 installation is incomplete.

image.png

解决方法:我们先去系统里查看一下有没有启用Windows的Linux子系统,步骤如下:
控制面板->程序->程序和功能

image.png

如果没有的话,我们勾选上,重新启动电脑,打开Docker。

如果还是报WSL 2 installation is incomplete.问题的话。原因就剩一个了就是:

我们使用的wsl2版本很旧,因此需要手动更新。我们可以根据提示从微软官网下载最新版本的wsl2,然后正常打开。

wslstorestorage.blob.core.windows.net/wslblob/wsl…

image.png

报错二:System.InvalidOperationException: Failed to set version to docker-desktop: exit code: -1

image.png

解决方法:用管理员身份打开cmder,输入netsh winsock reset

参考解决方法:bbs.huaweicloud.com/blogs/35954…

Docker安装MySQL

MySQL主页:bbs.huaweicloud.com/blogs/35954…

image.png

docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7.28

参考资料 blog.csdn.net/weixin_4322…

一些Docker命令

image.png

如何用命令行链接mysql

image.png

命令行常识

Ctrl+C

  • 用于中断,比如输错了命令

Ctrl+D

  • 用于退出,比如退出mysql、bash等

数据库基本知识

数据库Database

  • 将大量的数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库

  • 根据保存格式的不同,数据库一般被分为:

关系数据库-使用最广泛的数据库

面向对象数据库、XML数据库、键值存储系统、层次数据库

数据库管理系统DBMS

  • 用来管理数据库的系统称为数据库管理系统

  • 如MySQL、PostgreSQL、SQL Server、DB2、Oracle

DBMS 的结构

image.png

Node.js连接数据库

参考资料:github.com/mysqljs/mys…

安装mysql:

yarn add mysql

image.png

var mysql = require("mysql");
var connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
});

connection.connect(); //连接数据库,Node.js客户端连接mysql服务器

connection.query(
  "CREATE DATABASE IF NOT EXISTS yang DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;",
  function (error, results, fields) {
    if (error) throw error;
    console.log("创建数据库");
    console.log(results);
  }
); //创建数据库
connection.query("use yang"); //连接使用数据库yang
connection.query(
  `CREATE TABLE IF NOT EXISTS user(
    name text,
    age int
  )`,
  function (error, results, fields) {
    if (error) throw error;
    console.log("创建表");
    console.log(results);
  }
); // 创建表

connection.end();

image.png

image.png

增删改查

image.png

DROP table user; //删除

image.png

use yang; // 使用yang 数据库

insert into user (name, age) values ('coco', 12); // 增加表单内容

insert into user (name, age) values ('lily', 18); // 增加表单内容
 
select * from user; // 查询所有表单内容

select name,age from user; //查询内容

delete from user where name = 'coco'; //删除表单的指定内容

update user set age=18 where name='coco'; //修改coco的年龄

update user set age=18//表示所有的age全部修改了

注意: 新手千万不要写delete语句和update语句

推荐文档:菜鸟教程

推荐文档:devdocs.io开启postgresql文档

MySQL数据类型

image.png

数字类型

image.png

菜鸟教程 MySQL数字类型

官方文档

字符串类型

image.png

官方文档

时间和日期类型

image.png

官方文档

Object-relational mapping

Sequelize.js

image.png

官方文档