美文网首页
三、操作mysql

三、操作mysql

作者: mjwz5294 | 来源:发表于2018-02-24 16:12 被阅读0次

一、安装、启动

1、安装部分,就不说了

2、连接mysql数据库服务器:在命令行窗口输入mysql -u root -p(没有密码时,也可以直接mysql -uroot),然后输入root口令后,就连接到了MySQL服务器。因为没有指定--host参数,所以我们连接到的是localhost,也就是本机的MySQL服务器。

3、基本命令:

(1)show databases;

(2)use databases;

(3)create database testname;

(4)show tables;

(5)select * from testname;

(6)source /Users/macname/projectname/testsql.sql; //执行一个sql脚本

二、mysql库:

1、目前使用最广泛的MySQL Node.js驱动程序是开源的mysql

2、如果直接使用mysql包提供的接口,我们编写的代码就比较底层,例如,查询代码:

connection.query('SELECT * FROM users WHERE id = ?', ['123'], function(err, rows) {

    if (err) {

        // error

    } else {

        for (let row in rows) {

            processRow(row);

        }

    }

});

3、最新的ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上

三、Sequelize库:Node的ORM框架,http://docs.sequelizejs.com/

1、通过Sequelize,我们读写的都是JavaScript对象,Sequelize帮我们把对象变成数据库中的行。如:

Pet.findAll()

  .then(function (pets) {

      for (let pet in pets) {

          console.log(`${pet.id}: ${pet.name}`);

      }

  }).catch(function (err) {

      // error

  });

2、我们选择Sequelize的另一个原因:只要API返回Promise,就可以用await调用,写代码就非常简单!

const Sequelize = require('sequelize');

const config = require('./config');

//创建sequelize对象

var sequelize = new Sequelize(config.database, config.username, config.password, {

    host: config.host,

    dialect: 'mysql',

    pool: {

        max: 5,

        min: 0,

        idle: 30000

    }

});

//创建pet模型

var Pet = sequelize.define('pet', {

    id: {

        type: Sequelize.STRING(50),

        primaryKey: true

    },

    name: Sequelize.STRING(100),

    gender: Sequelize.BOOLEAN,

    birth: Sequelize.STRING(10),

    createdAt: Sequelize.BIGINT,

    updatedAt: Sequelize.BIGINT,

    version: Sequelize.BIGINT

}, {

        timestamps: false

    });

(1)使用Promise方式创建对象:

var now = Date.now();

Pet.create({

    id: 'g-' + now,

    name: 'Gaffey',

    gender: false,

    birth: '2007-07-07',

    createdAt: now,

    updatedAt: now,

    version: 0

}).then(function (p) {

    console.log('created.' + JSON.stringify(p));

}).catch(function (err) {

    console.log('failed: ' + err);

});

(2)使用await方式创建对象:

var now = Date.now();

(async () => {

    var dog = await Pet.create({

        id: 'd-' + now,

        name: 'Odie',

        gender: false,

        birth: '2008-08-08',

        createdAt: now,

        updatedAt: now,

        version: 0

    });

    console.log('created: ' + JSON.stringify(dog));

})();

3、我们把sequelize.define()返回的Pet称为Model,它表示一个数据模型,这就是下一部分的主题

四、Model:这部分容易理解,代码部分见:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001472286125147031e735933574ae099842afd31be80d1000

1、显然,一个项目中,model会有很多。我们希望把各个model放到不同的模块中分开维护,而不是杂糅到一起。

2、模版应该遵循统一套规范:

(1)统一主键,名称必须是id,类型必须是STRING(50);

(2)主键可以自己指定,也可以由框架自动生成(如果为null或undefined);

(3)所有字段默认为NOT NULL,除非显式指定;

(4)统一timestamp机制,每个Model必须有createdAt、updatedAt和version,分别记录创建时间、修改时间和版本号。其中,createdAt和updatedAt以BIGINT存储时间戳,最大的好处是无需处理时区,排序方便。version每次修改时自增。

3、所以,在业务代码中,我们不要直接使用Sequelize的API,而是通过db.js间接地定义Model,规范model结构。

相关文章

  • PHP与数据库

    PHP与数据库PHP有三种方式操作MySQL数据库1.PHP有三种方式操作MySQL数据库(1)MySQL扩展库(...

  • 三、操作mysql

    一、安装、启动 1、安装部分,就不说了 2、连接mysql数据库服务器:在命令行窗口输入mysql -u root...

  • 在项目中操作 MySQL

    1,在项目中操作数据库的步骤 ① 安装操作 MySQL 数据库的第三方模块(mysql)② 通过 mysql 模块...

  • 在前端项目中使用 MySQL

    在项目中操作数据库的步骤 安装操作 MySQL 数据库的第三方模块(mysql) 通过 mysql 模块连接到 M...

  • DataWhale Mysql Task2 2019-04-03

    DataWhale Mysql Task2 2.1 MySQL 基础 (二)- 表操作 项目三 项目四 2.2 M...

  • php数据库编程(mysql mysqli pdo)

    php有三种方式来操作mysql数据库1.mysql扩展库mysqli扩展库pdo mysql扩展库和mysql数...

  • 模块系统2

    1、MySQL模块 mysql模块是第三方模块,提供了连接及操作mysql数据库的相关功能。 mysql.crea...

  • 3 MySQL数据库操作

    2 MySQL数据库操作 3.1 MySQL操作数据库 3.2 MySQL操作数据表 3.2.1 MySQL创建数...

  • 基于Linux的MySQL操作实例(软件安装,mysql基本操作

    基于Linux的MySQL操作实例(软件安装,mysql基本操作,mysql数据类型,建表、插入数据操作) 前言 ...

  • Mysql大全

    1.Mac下Homebrew 安装mysql 2.mysql管理 3.mysql数据库操作 4.mysql表操作 ...

网友评论

      本文标题:三、操作mysql

      本文链接:https://www.haomeiwen.com/subject/zfoqxftx.html