【node】Sequelize常用操作、基本增删改查
【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常用操作、基本增删改查相关推荐
- GridView的常用操作(增删改查)
GridView的常用操作(增删改查) void BindData() { string sql = "select top 10 ID,jobno, ...
- 数据结构之单链表(头结点)的一些常用操作(增删改查逆)
删除指定结点 流程:判断传入数据和pos的位置是否符题意--找到删除位置的前一个结点,找到后要判断所找的位置是否越界--删除指定结点.代码: //删除指定结点 int Delete_Pos(Node* ...
- mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...
- Day 07 DjangoORM相关操作(增删改查)
Day 07 DjangoORM相关操作(增删改查) 前提条件:配置数据库 **PROJECT.settings**.py DATABASES = {'default': {'ENGINE': 'dj ...
- oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...
SQL查询操作:增删改查 一.SQL操作符 算术操作符 + - * / 比较操作符 = != < > <= >= BETWEEN--AND IN LINK IS NULL 逻辑 ...
- js操作indexedDB增删改查示例
js操作indexedDB增删改查示例 if ('indexedDB' in window) {// 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本var req ...
- golang连接mysql操作示例增删改查
golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动.这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/ ...
- python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析
Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...
- Python列表及其基本的操作(增删改查)
Python列表及其基本的操作(增删改查) 增 1.insert() 2.append() 3.extend() 删 1.del() 2.pop() 2.1pop() 2.2pop(索引) 3.rem ...
- Django-Model操作数据库(增删改查、连表结构)参考
一.数据库操作 1.创建model表 基本结构 1 2 3 4 5 6 from django.db import models class userinfo(models.Model): #如果没有 ...
最新文章
- 数字图像处理:图像就是函数的解读
- FileUploadUtil
- 计算机应用基础win7.pdf,计算机应用基础WIn7操作题(12页)-原创力文档
- ocs 2007 r2 服务体验
- 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置
- 数据分析数据可视化(三)
- windows核心编程第二章阅读
- matlab中低通滤波器程序,MATLAB低通滤波器程序
- MyEclipse10破解详解过程
- 计算机频繁开机是什么原因,电脑频繁自动重启什么原因
- c语言switch有什么作用,c语言switch语句如何使用
- python 小数乘法_TMS320C55xDSP应用系统设计
- mybatis拦截器实现数据脱敏拦截器使用
- 贪心算法 003:Tian Ji -- The Horse Racing
- picview是哪里的图片_pic是图片还是照片
- 2021-06-11 智能汽车和自动驾驶行业人才状态初探
- AOP机制之环绕通知的见解
- 中高级工程师Java开发!java队列queue实现
- 第2章 信息技术发展
- Xscale PXA255处理器与CF卡的接口设计
热门文章
- Anaconda 安装 opencv3(Win10)
- fasterrcnn深度学习口罩检测
- 【Math Time 】Mean, Median, Mode 之间的区别
- 怎么获取html的某个元素,MSHTML怎么获取一个网页元素对象
- cocos2dx android protobuf,Quick_Cocos2d_x V3.3 Protobuf Android
- c#调用java开发的webservice_用C#.NET调用Java开发的WebService传递int,double问题
- 俄克拉荷马州立大学冯锋组博士生招聘-植物与微生物互作
- microbiomeMarker:整合多种biomarker分析工具的R包
- 17日南土所蒋瑀霁报告:红壤团聚体尺度养分转化的生物学过程(线虫-微生物互作机制)...
- Nature综述:皮肤微生物群-宿主相互作用