种子文件概述 Sequelize-Cli 中的种子文件是专门用于编写测试数据的 我们知道在 Sequelize-Cli 中不同的阶段会创建不同的数据库 但是刚创建出来的数据库是没有数据的, 所以为了方便我们在不同的阶段演示和调试 我们可以在种子文件中提前编写测试数据, 以便于我们在不同的阶段中使用
如何修改表 使用 Sequelize-Cli 管理数据库的目的就是为了监控数据库的变化 所以我们不能直接修改表的结构, 如果要修改, 必须通过 migration 文件修改 这样我们就能记录修改的每一步操作, 就能追踪修改的整个过程, 就能回退到指定版本 修改表步骤 通过 migration:gen
在上一篇文章当中已经介绍了如何创建对应的数据库了,本文主要就是基于上一篇文章继续延伸下来的,主要内容就是介绍如何在创建的数据库当中进行创建表,和回退等相关操作。 创建模型 语法: npx sequelize model:generate --name xxx --attributes key:typ
官方文档:https://sequelize.org/v5/manual/migrations.html Sequelize-CLi 概述 在编程开发中为了能够更好的管理代码, 我们可以使用 Git 来管理我们的代码 实现对代码变更的追踪, 实现在各个不同版本之间切换 在数据库开发中为了能够更好的管
关于本文主要的内容为多对多表之间的关联查询,如何进行绑定表之间的关系的,一对一,一对多,在前面的文章当中上和中文章当中都已经介绍过了,本文就详细的来带大家来看看多对多的玩法首先需要创建三张表,以及对应的测试数据,创建模型代码如下: // 1.导入Sequelize const Sequelize =
本文主要介绍的内容为,建立表之间的关系,和标题的内容相关,在我们之前建立关系的时候是在模型创建完毕之后才进行关系的建立的,如果在没有建立关系的情况下创建模型是不会自动添加外键的: // 1.导入Sequelize const Sequelize = require('sequelize'); (as
本文主要介绍的内容为一对多的关系如何进行绑定与查询,首先添加一对多的数据,添加 book 表即可: INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (4, '玩转.net', 66, 1); INSERT INTO `d
在关联查询当中分别有一对一,一对多,多对多等关系,首先,先来看一对一的,创建一个 User 表,存储的就是用户信息,然后在创建一个 Book 表,存储的就是用户拥有的书,它们之间的关系是一对一的,一个用户只能有一本书: // 1.导入Sequelize const Sequelize = requi
分页 在看分页之前首先来看一个关键字,就是 offset 含义为 跳 过多少条数据: let users = await User.findAll({ // 跳过多少条数据 offset: 2 }); 还有一个关键字为 limit 含义为 取 多少条数据: let users = await Use
在上一篇文章当中都是针对单条数据的操作,那么本文主要介绍的内容都是基于查询进行的,可以进行查询多个,强调几点,关于使用 Sequelize 连接 MySQL 相关部分的代码这里就不在贴出来了,主要就是贴出相关核心代码,方便参阅。 查询多条数据 let users = await User.findA
关于数据的新增在前面已经介绍过了,所以本文主要介绍的内容为查询,修改,删除不包括新增。 查询数据 根据主键查询 // 1.导入Sequelize const Sequelize = require('sequelize'); (async () => { // 2.配置连接信息 const sequ
本文是紧接着上一篇Sequelize-创建表进行的,所以你在看本文的内容之前你可以先看看之前的文章把对应的表首先创建出来然后在来看看,对应的数据该如何进行创建。 因为之前已经创建好了对应的表了,所以创建模型那块的代码就不需要再次调用 sequelize.sync(); 了,要想添加一条对应的数据其实
数据库瓶颈 概述 不管是 IO 瓶颈,还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。 IO 瓶颈 第一种 磁盘读 IO 瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的 IO,降低查询速度 分库和垂直分表 第二种 网络 IO 瓶颈,
使用方法 explain sql语句 EXPLAIN SELECT * FROM department; 创建 customer 表,SQL 如下 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- Table structure for cus
表设计准则 ????满足关系数据库的三范式 1NF 是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值 第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库 2NF 要求数据库表中的每个实例或行必须可以被惟一地区分 设置主键 3NF 要求一个数据库表
什么是索引 帮助 MySQL 高效获取数据的一种数据结构 索引就是一种数据结构 类似新华字典的索引目录, 可以通过索引目录快速的查到你想要的字 排好序的快速查找数据这就是索引 为什么要建立索引 提高查询效率,没有排序之前是一个一个往后找的,通过索引进行排序之后,可以直接定义到想要的位置 排好序,快速
SQL 性能下降的表现 执行时间长 等待时间长 性能下降的原因 查询语句写的不好,各种连接,各种子查询导致用不上索引或者没有建立索引 建立的索引失效,建立了索引,在真正执行时,没有用上建立的索引 关联查询太多 join 服务器调优及和个配置参数导致,如果设置的不合理,比例不恰当,也会导致性能下降,S
创建示例表 部门表 DROP TABLE IF EXISTS `department`; CREATE TABLE `department` ( `id` int(11) NOT NULL AUTO_INCREMENT, `deptName` varchar(30) DEFAULT NULL, `a
SQL 编写顺序 select distinct 查询的字段。 from 表名。 JOIN 表名。 ON 连接条件。 where 查询条件。 group by 分组的字段。 having 分组后的查询条件。 order by 排序条件升序或者降序。 limit 查询起始位置, 查询条数。 MySQL
存储引擎的概念 MySQL 中的数据用各种不同的技术存储在文件(或者内存)中。 这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 这些不同的技术以及配套的相关功能在 My
总体分层 连接层 是用来与客户端进行连接的一个服务,主要完成一些类似连接的处理,授权认证及相关的安全方案的处理,在该层上还引入了连接池的概念 服务层 提供核心的服务功能,如 SQL 接口,完成缓存的查询,SQL 的分析和 SQL 的优化部分及内置函数的执行,所有跨存储引擎的功能都在这一层实现,服务器
首先需要创建一个 Node 项目 npm init -y 然后安装 Sequelize npm install sequelize 导入 Sequelize const Sequelize = require('sequelize'); 配置连接信息: 第一个参数:要操作的数据库名称 第二个参数:数
Sequelize基本使用 官方文档:https://sequelize.org/ 数据库连接池 默认情况下有一个人要使用数据库, 那么就必须创建一个连接 默认情况下有一个人不用数据库了, 为了不占用资源, 那么就必须销毁一个连接 但是频繁的创建和销毁连接是非常消耗服务器性能的, 所以为了提升服务器
什么是Sequelize Sequelize 是一个基于 Promise 的 NodeJS ORM 模块 什么是ORM ORM(Object-Relational-Mapping)是对象关系映射 对象关系映射可以把 JS 中的类和对象, 和数据库中的表和数据进行关系映射 映射之后我们就可以直接通过类
Node操作MySQL 我们都知道操作MySQL数据库就是连接MySQL服务器, 给MySQL服务器发送指令 在NodeJS中我们可以借助第三方库来连接MySQL服务器, 给MySQL服务器发送指令 连接MySQL操作MySQL有两种方式如下:
该文被密码保护。
往数据库里存储一万条数据 drop table if exists stu; CREATE TABLE `stu` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` int DEFAULT NULL,
自定义函数 自定义函数和存储过程很像, 只不过自定义函数不需要手动通过call调用 而是和其它的聚合函数一样会在SQL语句中自动被调用 例如: select avg(score) from stu; 例如: select count(*) from stu where age >=18; 创建自定义
存储过程 存储过程和其它编程语言的函数很像, 可以用于封装一组特定功能的SQL语句集 用户通过call 存储过程的名称()来调用执行它 存储过程基本语法 drop table if exists stu; CREATE TABLE `stu` ( `id` int NOT NULL AUTO_INC
预处理 所谓的预处理技术,最初也是由MySQL提出的一种减轻服务器压力的一种技术! 传统MySQL处理流程 首先在客户端准备SQL语句 select * from stu where id = 1; select * from stu where id = 2; 发送SQL语句到MySQL服务器 M
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号