目录
sql:结构化查询语言,以编程的形式,操作数据库里面的数据。(只能在关系型数据库中使用,非关系型数据库如:Mongodb 不支持sql语言)
数据库的基本概念:
1.1概念: 用来组织,存储和管理数据的仓库。
1.2常见的数据库及分类:
MySql数据库/Oracle数据库(收费)/Sql Server数据库(收费) (传统数据库)/Mongodb数据库
1.3 传统数据库的数据组织结构:
1.每个excel的数据组织结构,数据 组织结构分别为:工作簿,工作表,数据行,列
2.传统数据组织结构中分为:数据库,数据表,数据行,字段组成
MySql的基本使用:
sql:结构化查询语言,以编程的形式,操作数据库里面的数据。(只能在关系型数据库中使用,非关系型数据库如:Mongodb 不支持sql语言)
学习目标:(重点掌握)
查询数据(select)、插入数据(insert into)、更新数据(update)、删除数据(delete)
4种sql语法:where条件、and和or运算符、order by排序 、count(*)函数
where:限定于选择的标准。
and:必须同时满足多个条件。 &&
or:只要满足一个条件即可。 ||
count(*)函数:总数据条数。
使用as关键字给列取名
select:
--查询表中所有的数据:select * from 表名;
--指定具体列名:select 列名 from 表名;
insert into:
--insert into 表名(列1,列2...) values(值1,值2...);
update:
--update 表名 set 更改内容 where 条件;
delete:
--delete from 表名 where 条件;
在项目中操作MySql:
步骤:
安装配置mysql模块:npm i mysql
配置mysql模块:
//导入mysql模块
const mysql=require('mysql')
//建立与mysql数据库连接
const db=mysql。createPool({
host:'127.0.0.1, //数据库的ip地址
user:'登录的账户名', //登陆数据库的账号
password:'自己设置的密码', //登陆数据库的密码
database:'需要操作的数据库' //指定操作的数据库
})
测试mysql模块能否正常工作:
//1.检测mysql能否正常工作
db.query('select 1',(err,results)=>{
//mysql模块工作期间报错了
if(err) return console.log(err.message)
//能否执行成功sql语句
console.log(results)
})
mysql模块查询和插入数据:
查询
插入数据便捷方式:
更新数据:
删除数据:
标记删除:
前后端的身份认证:
通过一定的手段,完成对用户身份的确认。
Sessin认证机制:
http协议的无状性:指客户端的每次http请求都是独立的,连续多个请求之间没有直接关系,服务器不会主动保留每次http请求的状态。
突破限制主要靠:cookie
Cookie:用于存储在用户浏览器中的一段不超过4kb的字符串。由一个名称(Name),一个值(Value)和其他控制Cookie有效期,安全性,适用范围的可选属性组成。
特性:1.自动发送; 2.域名独立; 3.过期时限;4.4kb限制;
Express中使用Session认证:
npm i express-session安装中间件。
//配置中间件
const session = require('express-session')
aap.use(
session({
secret:'keyboard cat', //secret 属性值可以为任意字符串
resave:false, //固定写法
saveUninitialized:true //固定写法
})
)
清空:req.session.destroy()函数
JWT认证机制:
当前端需要跨域请求后端接口的时候,推荐使用JWT认证机制。
组成部分:Header(头部)、Payload(有效荷载)、Signature(签名)。
以my/开头的请求路径,需要在请求中携带Authorization身份认证字段
Express中使用Session认证:
3.定义secret密钥(保证jwt字符串的安全性)
constsecreKey=‘itheime No1 ^_^’
6.使用req.user获取用户信息