【node】Sequelize常用操作、基本增删改查

  • sequelize初始化
    • 先初始化一个数据库实例
    • 再初始化一个model实例
    • sequelize的数据类型
  • 基本增删改查的写法
    • SELECT * FROM 表名 WHERE 属性名 = 值
    • SELECT * FROM 表名
    • SELECT * FROM 表名 OREDER BY 属性名 DESC LIMIT 3
    • SELECT count(*) AS count FROM 表名
    • SELECT max(属性名) AS max FROM 表名
    • SELECT min(属性名) AS min FROM 表名
    • SELECT sum(属性名) AS sum FROM 表名
    • INSERT INTO 表名 VALUES('value1', ...)
    • UPDATE 表名 SET 属性名1=新值 WHERE 属性名2=值
    • DELETE FROM 表名 WHERE 属性名=值

sequelize初始化

先初始化一个数据库实例

// 实例化数据库对象-数据库连接池
var sequelize = new Sequelize(
CONFIG.MYSQL.database, //数据库名
CONFIG.MYSQL.username, //账号
CONFIG.MYSQL.password, //密码
{host: CONFIG.MYSQL.host,//端口,一般为localhost// 数据库类型dialect: 'mysql',// 是否打印日志logging: CONFIG.DEBUG ? console.log : false,// 配置数据库连接池pool: {max: 5,min: 0,idle: 10000},// 时区设置timezone: '+08:00'
});

再初始化一个model实例

// 定义model
const Wish = db.define('Wish', {// 定义主键,autoIncrement 选项用于创建一个自增的整型列id: {type: Sequelize.INTEGER, primaryKey: true, allowNull: false, autoIncrement: true},// 日期默认值 => 当前时间myDate: { type: Sequelize.DATE, defaultValue: Sequelize.NOW },// 添加唯一(unique)约束后插入重复值会报错someUnique: {type: Sequelize.STRING, unique: true},// 可以通过 "field" 属性来指定数据库中的字段名fieldWithUnderscores: { type: Sequelize.STRING, field: "field_with_underscores" },
}, {// 是否支持驼峰underscored: true,// MySQL数据库表名tableName: 'wish',
});

sequelize的数据类型

Sequelize.STRING                      // VARCHAR(255)
Sequelize.STRING(1234)                // VARCHAR(1234)
Sequelize.STRING.BINARY               // VARCHAR BINARY
Sequelize.TEXT                        // TEXT
Sequelize.TEXT('tiny')                // TINYTEXTSequelize.INTEGER                     // INTEGER
Sequelize.BIGINT                      // BIGINT
Sequelize.BIGINT(11)                  // BIGINT(11)Sequelize.FLOAT                       // FLOAT
Sequelize.FLOAT(11)                   // FLOAT(11)
Sequelize.FLOAT(11, 12)               // FLOAT(11,12)Sequelize.REAL                        // REAL        PostgreSQL only.
Sequelize.REAL(11)                    // REAL(11)    PostgreSQL only.
Sequelize.REAL(11, 12)                // REAL(11,12) PostgreSQL only.Sequelize.DOUBLE                      // DOUBLE
Sequelize.DOUBLE(11)                  // DOUBLE(11)
Sequelize.DOUBLE(11, 12)              // DOUBLE(11,12)Sequelize.DECIMAL                     // DECIMAL
Sequelize.DECIMAL(10, 2)              // DECIMAL(10,2)Sequelize.DATE                        // DATETIME for mysql / sqlite, TIMESTAMP WITH TIME ZONE for postgres
Sequelize.DATE(6)                     // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision
Sequelize.DATEONLY                    // DATE without time.
Sequelize.BOOLEAN                     // TINYINT(1)Sequelize.ENUM('value 1', 'value 2')  // An ENUM with allowed values 'value 1' and 'value 2'
Sequelize.ARRAY(Sequelize.TEXT)       // Defines an array. PostgreSQL only.Sequelize.JSON                        // JSON column. PostgreSQL only.
Sequelize.JSONB                       // JSONB column. PostgreSQL only.Sequelize.BLOB                        // BLOB (bytea for PostgreSQL)
Sequelize.BLOB('tiny')                // TINYBLOB (bytea for PostgreSQL. Other options are medium and long)Sequelize.UUID                        //   PostgreSQL 和 SQLite 中为 UUID, MySQL 中为CHAR(36) BINARY (使用 defaultValue: Sequelize.UUIDV1 或 Sequelize.UUIDV4 生成默认值)Sequelize.RANGE(Sequelize.INTEGER)    // Defines int4range range. PostgreSQL only.
Sequelize.RANGE(Sequelize.BIGINT)     // Defined int8range range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DATE)       // Defines tstzrange range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DATEONLY)   // Defines daterange range. PostgreSQL only.
Sequelize.RANGE(Sequelize.DECIMAL)    // Defines numrange range. PostgreSQL only.Sequelize.ARRAY(Sequelize.RANGE(Sequelize.DATE)) // Defines array of tstzrange ranges. PostgreSQL only.Sequelize.GEOMETRY                    // Spatial column.  PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY('POINT')           // Spatial column with geomerty type.  PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY('POINT', 4326)     // Spatial column with geomerty type and SRID.  PostgreSQL (with PostGIS) or MySQL only.

基本增删改查的写法

SELECT * FROM 表名 WHERE 属性名 = 值

写法:

model对象名
.findOne({ where: {属性名: 值}}).then(function(result) {console.log(result.dataValues)
})

SELECT * FROM 表名

写法:

model对象名
.findAll({raw: true}).then(function(result) {console.log(result)
})

SELECT * FROM 表名 OREDER BY 属性名 DESC LIMIT 3

写法:

model对象名
.findAll({limit: 3,order: [['属性名', 'DESC']]}).then(function(result) {result.forEach((v) => {console.log(v.dataValues);});
})

SELECT count(*) AS count FROM 表名

写法:

model对象名
.count().then(function(c) {console.log("表中有" + c + " 个元素")
})

SELECT max(属性名) AS max FROM 表名

写法:

model对象名
.max('属性名').then(function(c) {console.log("表中最大值为" + c)
})

SELECT min(属性名) AS min FROM 表名

写法:

model对象名
.min('属性名').then(function(c) {console.log("表中最小值为" + c)
})

SELECT sum(属性名) AS sum FROM 表名

写法:

model对象名
.sum('属性名').then(function(c) {console.log("表中求和为" + c)
})

INSERT INTO 表名 VALUES(‘value1’, …)

model对象名
.create({  属性名1 : 值,属性名2 : 值,属性名3 : 值,...
});

UPDATE 表名 SET 属性名1=新值 WHERE 属性名2=值

model对象名
.update({   属性名1: 新值,
},
{where:{属性名2:值}
});

DELETE FROM 表名 WHERE 属性名=值

model对象名
.destroy({   where: {属性名:值}
});

【node】Sequelize常用操作、基本增删改查相关推荐

  1. GridView的常用操作(增删改查)

    GridView的常用操作(增删改查) void BindData()         {             string sql = "select top 10 ID,jobno, ...

  2. 数据结构之单链表(头结点)的一些常用操作(增删改查逆)

    删除指定结点 流程:判断传入数据和pos的位置是否符题意--找到删除位置的前一个结点,找到后要判断所找的位置是否越界--删除指定结点.代码: //删除指定结点 int Delete_Pos(Node* ...

  3. mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...

  4. Day 07 DjangoORM相关操作(增删改查)

    Day 07 DjangoORM相关操作(增删改查) 前提条件:配置数据库 **PROJECT.settings**.py DATABASES = {'default': {'ENGINE': 'dj ...

  5. oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...

    SQL查询操作:增删改查 一.SQL操作符 算术操作符 + - * / 比较操作符 = != < > <= >= BETWEEN--AND IN LINK IS NULL 逻辑 ...

  6. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) {// 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本var req ...

  7. golang连接mysql操作示例增删改查

    golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动.这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/ ...

  8. python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析

    Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...

  9. Python列表及其基本的操作(增删改查)

    Python列表及其基本的操作(增删改查) 增 1.insert() 2.append() 3.extend() 删 1.del() 2.pop() 2.1pop() 2.2pop(索引) 3.rem ...

  10. Django-Model操作数据库(增删改查、连表结构)参考

    一.数据库操作 1.创建model表 基本结构 1 2 3 4 5 6 from django.db import models class userinfo(models.Model): #如果没有 ...

最新文章

  1. 数字图像处理:图像就是函数的解读
  2. FileUploadUtil
  3. 计算机应用基础win7.pdf,计算机应用基础WIn7操作题(12页)-原创力文档
  4. ocs 2007 r2 服务体验
  5. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置
  6. 数据分析数据可视化(三)
  7. windows核心编程第二章阅读
  8. matlab中低通滤波器程序,MATLAB低通滤波器程序
  9. MyEclipse10破解详解过程
  10. 计算机频繁开机是什么原因,电脑频繁自动重启什么原因
  11. c语言switch有什么作用,c语言switch语句如何使用
  12. python 小数乘法_TMS320C55xDSP应用系统设计
  13. mybatis拦截器实现数据脱敏拦截器使用
  14. 贪心算法 003:Tian Ji -- The Horse Racing
  15. picview是哪里的图片_pic是图片还是照片
  16. 2021-06-11 智能汽车和自动驾驶行业人才状态初探
  17. AOP机制之环绕通知的见解
  18. 中高级工程师Java开发!java队列queue实现
  19. 第2章 信息技术发展
  20. Xscale PXA255处理器与CF卡的接口设计

热门文章

  1. Anaconda 安装 opencv3(Win10)
  2. fasterrcnn深度学习口罩检测
  3. 【Math Time 】Mean, Median, Mode 之间的区别
  4. 怎么获取html的某个元素,MSHTML怎么获取一个网页元素对象
  5. cocos2dx android protobuf,Quick_Cocos2d_x V3.3 Protobuf Android
  6. c#调用java开发的webservice_用C#.NET调用Java开发的WebService传递int,double问题
  7. 俄克拉荷马州立大学冯锋组博士生招聘-植物与微生物互作
  8. microbiomeMarker:整合多种biomarker分析工具的R包
  9. 17日南土所蒋瑀霁报告:红壤团聚体尺度养分转化的生物学过程(线虫-微生物互作机制)...
  10. Nature综述:皮肤微生物群-宿主相互作用