数据库简介
- 什么是数据库
保存和管理数据的仓库,数据库 - 什么是数据
文件,图片,视频,订单,用户名,密码等等。这些数据都需要有专门的地方来保存和管理 - 数据库的分类
关系型:mysql ...
非关系型:mongodb...
理解关系型数据库
在关系型数据库中,存在三级关系:
- 数据库
- 数据表
-
字段
数据表的解构和excel一模一样:
安装MySQL
- 单独安装mysql
- 官网下载:
(https://www.mysql.com/downloads/)
- 官网下载:
- 集成安装
- 市面上有很多的集成环境(一个大的软件)。优点在于:基本不需要配置,使用比较方便。这样的集成环境有:
- wampserver
- phpstudy
- ...
- 市面上有很多的集成环境(一个大的软件)。优点在于:基本不需要配置,使用比较方便。这样的集成环境有:
phpstudy-mysql-navicat中操作数据库
phpstudy下载 ,安装
开启了mysql(这个数据库就是我们自己的电脑)
操作数据库-用navicat
新建数据库
新建数据表
添加字段和添加数据
SQL语句
结构化查询语言(Structured Query Language)简称SQL。
是一种数据库查询和程序设计语言,用来存取数据以及查询、更新、和管理关系型数据库。
常用的sql语句有四类,分别对应对数据的四种操作:
- 增(create)(用户注册)
- 删(delete) (删除订单)
- 改(update) (修改密码)
- 查(read) (搜索,用户登陆)
添加数据
删除数据
修改数据
数据查询
nodejs中mysql包来连接mysql数据库
创建项目
npm init --yes
-
安装第三方模块
npm install mysql
-
写代码
let mysql = require('mysql'); let connection = mysql.createConnection({ host : 'localhost', // 你要连接的数据库服务器的地址 port : 3306,// 端口号 user : 'root', // 连接数据库服务器需要的用户名 password : 'root', // 连接数据库服务器需要的密码 database : 'testStu' //你要连接的数据库的名字 }); connection.connect((err) => { // 如果有错误对象,表示连接失败 if (err) return console.log('数据库连接失败') // 没有错误对象提示连接成功 console.log('mysql数据库连接成功') });
nodejs中mysql包操作数据库-做查询
// 1. 加载mysql
const mysql = require('mysql');
// 2. 创建连接对象
const conn = mysql.createConnection({
// 对象的属性名字不能改变
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'testStu'
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
// 如果有错误对象,表示连接失败
if (err) return console.log('数据库连接失败')
// 没有错误对象提示连接成功
console.log('mysql数据库连接成功')
});
let sql = 'insert into users (name,password) values("小王","snv")'
connection.query(sql, (err, result) => {
if (result.affectedRows > 0) {
console.log('添加成功,新数据的id为:' + result.insertId);
} else {
console.log('添加失败');
}
});
写一个真正接口
-
项目初始化
npm init --yes
数据库服务器启动,准备数据库,数据表
-
项目安装依赖
-
写一个基本的express程序
// 写一个用来做添加用户接口 // 地址: localhost:3030/user/add // 类型:post // 参数: name ,age ,gender // 备注: 数据要写入数据库 // 引入模板 const express = require('express') // 创建服务 const server = express() // 启动服务 server.listen(3030, () => { console.log('端口3030启动成功'); })
-
写一个最简单的接口
// 引入模板 const express = require('express') // 创建服务 const server = express() // post请求 server.post('/user/add', (req, res) => { }) // 启动服务 server.listen(3030, () => { console.log('端口3030启动成功'); })
-
收集用户数据并拼接sql语句
// 引入模板 const express = require('express') // 引入自定义数据库连接模板 const conn = require("./util/sql") // 引入cors 解决跨域问题 const cors = require('cors') // 创建服务 const server = express() server.use(cors()) server.use(express.urlencoded()) server.post('/user/add', (req, res) => { // 1.收集用户信息 let { name, age, gender } = req.body // 2. 拼接sql语句 let sqlStr = `insert into test(name,age,gender) values("${name}",${age},"${gender}")` }) // 启动服务 server.listen(3030, () => { console.log('端口3030启动成功'); })
-
执行sql,根据执行结果,给出返回值
// 引入模板 const express = require('express') // 引入自定义数据库连接模板 const conn = require("./util/sql") // 引入cors 解决跨域问题 const cors = require('cors') // 创建服务 const server = express() server.use(cors()) server.use(express.urlencoded()) server.post('/user/add', (req, res) => { // 1.收集用户信息 let { name, age, gender } = req.body // 2. 拼接sql语句 let sqlStr = `insert into test(name,age,gender) values("${name}",${age},"${gender}")` // 3. 执行sql,根据执行结果,给出返回值 conn.query(sqlStr, (err, result) => { if (err) { res.status(500).json({ msg: '添加失败', code: 500 }) } res.json({ msg: '添加成功', code: 200 }) }) }) // 启动服务 server.listen(3030, () => { console.log('端口3030启动成功'); })