数据库介绍
- 之前的数据是怎么存储的:存储在文本文件中
data.json
- 缺点1:数据存取不方便,不利于维护和扩展,当数据量大了之后,无法直接通过打开文件的形式对数据进行操作;
- 缺点2:数据存储比较分散,无法进行集中式管理;
- 缺点3:安全性较低,由于数据是直接存储在文本文件中的,所有无法进行数据的加密,存在安全隐患;
- Sql(Structured Query Language)数据库:提供了安全机制、便于通过Sql语句对数据直接进行操作。
- 支持 结构化查询语言(Sql)的数据库,叫做
Sql数据库
Sql
是一种查询语言,能够很方便的对数据进行CRUD;
- 常见的数据库的分类
- 传统的关系型数据库(Sql数据库):Oracle(甲骨文 Java)、DB2、MySql、MS SQL Server、Sqlite【关系型数据库,对于大量数据的存取效率很高】
- 现在比较流行的非关系型数据库(No-Sql数据库):Redis(内部以键值对形式存储数据,是内存数据库)、CouchDB、MongoDb(可以把数据对应到实际的物理磁盘,MongoDB使用JS来操作数据)【一般当作中间层来使用,对于少量数据存取速度非常快,但是当数据多了之后,效率就变慢】
安装配置PHPStudy
、navicat
- PHPStudy傻瓜式安装:默认的用户名是
root
,默认的密码也是root
- navicat傻瓜式安装、一键激活(建议安装navicat时候选择默认安装路径,方便一键激活)
- 关系型数据库的整体介绍:
- MySql中的数据库服务是什么
- MySql中的数据库是什么:一个数据服务中通常包含一个或多个数据库。每个数据库由名字来进行区分;
- MySql中的数据库表是什么:一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
- 数据库服务就相当于是一个国家;数据库表相当于是省份;数据库表相当于是省份中的市;
数据库可视化工具navicat
的基本使用
- 打开和关闭数据库连接
- 创建用户、设置用户权限
- 新建数据库、新建表、设计表(设置字段类型)、设置Id自增、日期自动插入
- 新建
users
用户表,表字段为:id、name、age、gender、address、isdel - Id自增:设置为主键,勾选
自动递增
- 主键:是用来标识数据表中每一行数据的唯一性的,确保独一无二性。
- 创建表并添加字段:
|
|
使用Sql语句对数据库执行基本操作
|
|
使用node.js
代码的方式进行增删改查
使用命令行执行npm install mysql --save
安装操作MySQL数据库的模块;
连接数据库
|
|
基本查询操作
|
|
在查询语句中使用参数
|
|
使用参数化查询语句
|
|
添加数据
|
|
便捷的插入数据:
|
|
更新数据
|
|
便捷的更新数据:
|
|
删除数据
硬删除
|
|
软删除
|
|
用户列表案例
body-parser 中间件
- 注意:一定要把 body-parser 注册的过程,放到 注册路由之前,否则不生效
- 导入 解析 表单 Post 提交上来数据的 一个第三方 中间件
var bodyParser = require('body-parser');
- 注册一下这个第三方中间件
- 其中,extended: false 表示不使用第三方的插件去解析表单数据,而是使用 Node 内置的 querystring 来解析 数据
app.use(bodyParser.urlencoded({ extended: false }));
- 分析 body-parser 内部的实现原理:
- 由于他是一个中间件,所以能够拿到 req 和 res 这两个对象;
- 拿到 req 之后,这个中间件,调用了 req.on(‘data’, (chunk)=>{}) 和 req.on(‘end’,()=>{})
- 在这两个事件内部,body-parser中间件,将 post 过来的数据进行了一下解析,解析完毕后拿到一个数据对象
- 把解析出来的数据对象,通过自定义属性的形式, 追加为了 req.body