Node.js操作数据库的相关知识

Windows安装Docker

新版

  • 注册https://hub.docker.com/
  • 下载Docker for Windows Installer
  • 安装好后,docker --version
  • 设置国内镜像,访问快点,https://docker.mirrors.ustc.edu.cn/
  • 设置教程,设置完成后,重启Docker
  • 运行命令 docker run hello-world 输出hello from Docker! ,说明ok

旧版

  • 下载Docker Toolbox

  • 打开Docker QuickStart,看到如图即可退出:
    在这里插入图片描述

  • 设置国内镜像,访问快点,https://docker.mirrors.ustc.edu.cn/

  • 设置教程,设置完成后,重启Docker

  • 运行命令 docker run hello-world 输出hello from Docker! ,说明ok

Docker安装mysql

  • 命令:
    docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7.27

Docker的一些命令

  • docker ps 查看容器的运行状态
  • docker kill mysql 关掉容器
  • docker container run mysql 开启容器
  • docker rm mysql 删掉容器
  • 注意事项
    1. 运行的容器,默认不是持久化的
    2. 容器被删除,数据就没有啦
  • docker exec -it mysql bash :进入容器,容器中有一个Linux系统,在系统里面运行mysql

Mysql

mysql的一些命令

  • show databases,查看数据库列表
    在这里插入图片描述
  • use xxx,使用xxx数据库
  • show tables,查看数据库中的表:
    在这里插入图片描述

数据库(Database)

  • 将大量数据保存起来,通过计算机加工而成的可以运行高效访问的数据集合成为数据库
  • 根据保存格式的不同,数据库可以
    1. 关系型数据-使用最为广泛的数据库
    2. 面向对象数据库、xml数据库、键值存储系统、层次数据库

DBMS(数据库管理系统)

  • 用来管理数据库的系统统称为数据库管理系统
  • mysql\oracle\sql server\db2等
  • 数据库可视化工具:Navicat Premium、Pl/Sql、sql server 2008等
  • DBMS的结构:
    在这里插入图片描述

Node.js连接数据

  • 使用mysql,yarn add mysql
  • 代码如何连接mysql:
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'lianxi'
});
connection.connect();
connection.query('SELECT * from student', function (error, results, fields) {
  if(error){
    console.log('[SELECT ERROR] - ',error.message);
    return;
  }

 console.log('--------------------------SELECT----------------------------');
 console.log(results);
 console.log('------------------------------------------------------------\n\n');  
});

Mysql 数据类型

  • 数字类型
    1. bit\tinyint\bool,boolean\smallint\mediumint\int\bigint\decimal\float\double\serial等价于BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
  • 字符串类型
    1. char(100)\varchar(100)\binary(1024)\varbinary(1024)\blob\text\enum(‘v1’,‘v2’)\set(‘v1’,‘v2’)
  • 时间和日期类型
    1. date\time\datetime\timestamp\year
  • JSON类型(5.7.8以上)
  • 其他特殊类型

ORM Sequelize

  • yarn add sequelize
  • yarn add @types/sequelize
  • yarn add mysql2
const { Sequelize, Model, DataTypes } = require('sequelize');
var sequelize = new Sequelize('lianxi', 'root', 'root',  {
    host: 'localhost',
    dialect: 'mysql'
  });

class User extends Model {}
User.init({
  username: DataTypes.STRING,
  birthday: DataTypes.DATE
}, { sequelize, modelName: 'user' });

(async () => {
  await sequelize.sync();
  const jane = await User.create({
    username: 'janedoe',
    birthday: new Date(1980, 6, 20)
  });
  console.log(jane.toJSON());
})();

async function  run(){
    const users = await User.findAll();
    console.log(users);
}

run();
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页