php sequelize,关于javascript:eggjs-sequelize-的常用方法总结
Node.js 环境切换
window 下不反对间接切换 node 的环境变量,要通过插件 cross-env 进行切换
// 装置插件
npm install cross-env \-g
// 应用 cross-env
cross-env NODE\_ENV\=test node app.js
sequelize 变量值
equelize.STRING // VARCHAR(255) 类型:字符串 最大值: 65535个字符
Sequelize.STRING(1234) // VARCHAR(1234) 类型:变长 最大值: 65535个字符
Sequelize.TEXT // TEXT 类型:字符串 最大值:65535个字符
Sequelize.TEXT('tiny') // TINYTEXT 类型:字符串 最大值:255个字符
Sequelize.INTEGER // INTEGER 类型:整型 最大值:范畴(-2147483648~2147483647)
Sequelize.BIGINT // BIGINT 类型:整型 最大值:范畴(+-9.22*10的18次方)
Sequelize.BIGINT(11) // BIGINT(11) 类型:整型 最大值:范畴(+-9.22*10的18次方)
Sequelize.FLOAT // FLOAT 类型:单精度浮点型 8位精度(4字节)
Sequelize.FLOAT(11) // FLOAT(11) 类型:单精度浮点型 8位精度(4字节)
Sequelize.FLOAT(11, 12) // FLOAT(11,12) 类型:精度浮点型 8位精度(4字节) m总个数,d小数位
Sequelize.DOUBLE // DOUBLE 类型:双精度浮点型 16位精度(8字节)
Sequelize.DOUBLE(11) // DOUBLE(11) 类型:双精度浮点型 16位精度(8字节)
Sequelize.DOUBLE(11, 12) // DOUBLE(11,12) 类型:双精度浮点型 16位精度(8字节) m总个数,d小数位
Sequelize.DECIMAL // DECIMAL 类型:定点数型
Sequelize.DECIMAL(10, 2) // DECIMAL(10,2) 类型:定点数型 参数m<65 是总个数,d<30且 d
Sequelize.DATE // DATETIME 类型:日期工夫类型 范例:'2009-05-12 02:31:44'
Sequelize.DATE(6) // DATETIME(6)
Sequelize.DATEONLY // DATE without time.
Sequelize.BOOLEAN // TINYINT(1) 类型:整型 范畴(-128~127)
Sequelize.ENUM('value 1', 'value 2') // ENUM 类型:枚举
Sequelize.BLOB // BLOB 类型:二进制数据
Sequelize.BLOB('tiny') // TINYBLOB 类型:二进制数据
sequelize 罕用办法
定义模型
// 定义 model
Sequelize.define('user', {
// 具体定义
id: {
type: Sequelize.INTEGER, // 字段类型
primaryKey: true, // 是否为主键
allowNull: false, // 是否容许为空
unique: true, // 是否惟一
autoIncrement: true, // 是否为自增
},
// 自定义值
id2: {
type: Sequelize.STRING(36), // 字段类型
primaryKey: true, // 是否为主键
allowNull: false, // 是否容许为空
defaultValue: () => { // 自定义默认值
return uuid.v1();
}
},
// 繁难定义类型,默认不能为空
name: Sequelize.STRING(32)
})
定义模型
// 定义 model
Sequelize.define('user', {
// 具体定义
id: {
type: Sequelize.INTEGER, // 字段类型
primaryKey: true, // 是否为主键
allowNull: false, // 是否容许为空
unique: true, // 是否惟一
autoIncrement: true, // 是否为自增
},
// 自定义值
id2: {
type: Sequelize.STRING(36), // 字段类型
primaryKey: true, // 是否为主键
allowNull: false, // 是否容许为空
defaultValue: () => { // 自定义默认值
return uuid.v1();
}
},
// 繁难定义类型,默认不能为空
name: Sequelize.STRING(32)
})
新增数据
// build() 办法须要通过调用 save() 进行保留
let user = User.build({
name: 'test',
password: '123456',
});
let rs = await user.save();
// 通过 create() 进行创立
let rs = await User.create({
name: 'test',
password: '123456',
});
批改数据
// 留神:更新失败返回值到第0个值是0,更新胜利则是1
// 第一个参数为更新值
// 第二个参数为更新查问条件
let rs = await User.update(
{ name: 'test2', },
{
where: { id: 1, },
},
);
删除数据
let rs = await User.destroy({
where: { id: 1, },
})
查问数据
let Op = Sequelize.Op;
// 查问所有
let rs = await User.findAll({
limit: 10, // 当页条数
offset: 0, // 开始下标
order: [[ 'create_time', 'desc' ]], // 排序规定
where: { // 查问条件
type: 'vip', // 指定值
[Op.or]: { // 应用非凡操作符
id: [1, 2, 3, 4, 5], // id 蕴含这些数据
[Op.like]: { name: 'super_' }, // 用户名蕴含 super_
}
},
attributes: [ // 指定返回的属性
'id',
['name', 'userName'] // 第一个参数为属性,第二个参数为别名,返回数据以别名返回
],
});
// 查问一条数据
let rs = await User.findOne({
where: {id: '123456'},
});
高级查问
// findByPk - 通过主键查问
let res = await User.findByPk(123);
// findOne - 查问满足条件的第一条数据
let res = await User.findOne({
where: {
type: 'user'
}
});
// findOrCreate - 查问,如果不存在将创立数据
const [user, created] = await User.findOrCreate({
where: { username: 'test' },
// 如果不存在,将会按 defaults 创立值
defaults: {
job: 'JavaScript'
}
});
console.log(user.username); // 'test'
console.log(user.job); // 这里可能为 JavaScript 也可能为其余的
console.log(created); // 是否有创立实例
if (created) {
console.log(user.job); // 创立实例,该值必然为 JavaScript
}
// findAndCountAll - 查问并返回总数
// count - 该查问条件下的总条数
// rows - 查问的所有数据
const { count, rows } = await User.findAndCountAll({
where: {
type: 'vip'
}
});
批量新增
let re = await User.bulkCreate(
{ name: 'test_1' },
{ name: 'test_2' },
);
php sequelize,关于javascript:eggjs-sequelize-的常用方法总结相关推荐
- html数组求和的方法,JavaScript数组求和的常用方法
JS数组求和的常用方法. 一.for循环var arr = [1,2,3]; function sum(arr) { var s = 0; for (var i = 0;i s += arr[i]; ...
- Eggjs Sequelize 多表关联查询
写服务端的新手,我们项目用nodejs写服务端,框架是egg.js.对于简单的 增.删.改.查 新手的我也是快速上手了,但是当我遇到需要关联其他表查询时,我就懵逼了,不知道怎么关联啊.几经周折,总算搞 ...
- mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
一.建立数据库连接:createConnection(Object)方法 该方法接受一个对象作为参数,该对象有四个常用的属性host,user,password,database.与php中 ...
- JavaScript获取DOM对象常用方法
获取DOM对象的常用方法有如下几种: getElementById() 通过元素的ID属性获取DOM对象,获取的是一个DOM对象. getElementsByTagName() 通过元素的标签名获取D ...
- JavaScript中的Object常用方法
Object常用方法 文章目录 Object常用方法 Object.getPrototypeOf() Object.setPrototypeOf() Object.create() Object.pr ...
- [Javascript] 正则表达式匹配的常用方法总结
目录标题 正则 正则表达式对象的lastIndex属性的作用是什么 举一个使用了RegExp.test()方法的例子 再举一个使用例子RegExp.exec()的例子 什么是捕获组 sticky 标志 ...
- javascript之prototype总结常用方法
//去左右空格 String.prototype.trim = function() { return this.replace(/^\s*|\s*$/g,''); } //去空格添加至数组集 ...
- JavaScript数组去重的常用方法
方法一 创建一个数组arr2,遍历需要去重的数组arr,如果arr2里面没有这个元素就push进去. var arr = [1,2,3,1,2],arr2 = [];arr.forEach(eleme ...
- 〖大前端 - 基础入门三大核心之JS篇㉕〗- JavaScript 的数组的常用方法 (二)
当前子专栏 基础入门三大核心篇 是免费开放阶段.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费开放,购买任意白宝书体系化专栏可加 ...
最新文章
- 常见存储过程分页PK赛——简单测试分析常见存储过程分页速度
- [转载]读史记札记23:并不是每次跌倒都能够重新站起来
- perl 爬ku6视频
- memcache的原理和命中率的总结
- 如何在项目中加入已存在的文件夹, 注意是文件夹而不是文件
- javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件
- kubernetes 中 label的作用_Kubernetes生产环境的16条建议
- 信息竞赛进阶指南--二叉堆(模板)
- 【转】SVN冲突出现场景
- springboot之idea无法添加包
- 教你编写高质量的 Java 代码!
- 如何通过Geth、Node.js和UNIX/PHP访问以太坊节点 1
- 全球单片机的主要厂商和主要型号介绍
- maven学习系列——(七)Dependency
- 40个国内外文献免费下载网站-转
- 多功能下拉分页选择插件SelectPage插件 http://www.jq22.com/jquery-info14227
- 如何将图片放大又清晰?
- 图层蒙版和图层剪贴路径_PS蒙版解读:快速蒙版、图层蒙版、剪贴蒙版、矢量蒙版(二)...
- 【零基础玩转BLDC系列】基于霍尔传感器的无刷直流电机控制原理
- 【快递100】 物流公司对应编码分享(截止到2021-09-19 最新数据)
热门文章
- 阿里云证书资源包申请免费SSL流程(图文教程)
- ios屏幕录制60帧_探索iOS屏幕帧缓冲区–内核反转实验
- 写分配与写不分配的区别
- 上传文件Uploading Files
- dp的sst模式下training流程
- 【LeetCode算法 - JAVA】6.Z字形变换
- CF1611E1 Escape The Maze (easy version)+ CF1611E2 Escape The Maze (hard version)
- 基于eBox旋转编码器
- 2007年全国翻译专业资格(水平)考试各地区报名信息总汇
- #插件需求# ffmpeg下载mpd切片视频