1 数据库(了解)
- 作用:管理数据的仓库
- 数据库的分类:
- 关系型数据库:MySQL、Oracle、Sql Server、DB2...
- 非关系型数据库:mongodb等
2 sql 语句
- 结构化查询语言,专门用来操作关系型数据库,不仅使用MySQL,其他关系型数据库也适用
- 操作数据的语言有四类:
- 添加 insert
- 删除 delete
- 修改 update
- 查询 select
- 语法
//添加 insert into 表名(字段1,...,字段n,) values(值1,...,值n) 字符串需要加引号,数值不加
insert into stu (name,age,tel) values ('李白',18,'13417175111')
//删除 delete from 表名 where 条件
delete from stu where name='李白'
//修改 update 表名 set 字段名=值 where 条件
update stu set age=20,name='小白' where id=5 and name='典韦'
//查询 select 字段名 from 表名 where 条件
select * from stu where id=4
3 nodejs中mysql包来连接mysql数据库
- 初始化
- 安装 mysql 包
- 写代码
- 引入包
- 创建连接对象
- 连接服务器
- 执行 sql
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'l-ddui'
});
connection.connect((err) => {
if (err) return console.log('数据库连接失败')
console.log('mysql数据库连接成功')
});
4 nodejs中mysql包操作数据库-以查询为例
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'l-ddui'
});
connection.connect((err) => {
if (err) return console.log('数据库连接失败')
console.log('mysql数据库连接成功')
});
let sqlStr = `select * from stu `
connection.query(sqlStr, (err, result) => {
if (err){
console.log('操作失败:',err);
}
console.log('操作成功:', result);
})
5 写一个真正的接口
- 项目初始化
- 数据库服务启动,准备数据库,数据表
- 项目安装依赖-->express、mysql、cors
- 写一个基本的 express 程序
- 写一个接口
- 收集用户数据
- 拼接sql,验证拼接结果
- 连接数据库,操作
- 根据操作结果,做出不同返回
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'l-ddui'
});
connection.connect((err) => {
if (err) return console.log('数据库连接失败')
console.log('mysql数据库连接成功')
});
module.exports = connection
const express = require('express')
const server = express()
server.listen(10086, () => {
console.log('服务器已启动');
})
const conn = require('./sql')
server.use(express.urlencoded())
server.post('/user/add', (req, res) => {
const { name, age, tel } = req.body
const sqlStr = `insert into stu (name, age, tel) values ("${name}", ${age}, "${tel}")`
conn.query(sqlStr, (err, result) => {
if (err) {
console.log('操作失败', err);
return
}
res.json('操作成功')
})
})
6 软删除-了解
- 数据不是真正的 delete --> 数据比较值钱
- 在表中设计一个特殊的字段:表示是否删除,要删除时去修改这个字段
- 把 delete 改成了update