一、连接mysql数据库
mysql -uroot -p
show databases;
use course;
二、sql语句的使用
1. insert into(插入语句)
- 语法
insert into 表名 (字段1,字段2) value (值1,值2)
- sql语句
//插入名字,密码,头像进user表
insert into user (name,pwd,head_img) value ("易只烊","yizhiyang","https://file.xdclass.net/xdclass/2020-11/WechatIMG1137.png");
2. delete(删除语句)
- 语法
delete from 表名 where id=?
- sql语句
//删除id=1的user表的row
delete from user where id=1
-
注意
:一般在删除接口不使用这个delete sql语句,而是使用update语句更新一个字段,比如:isdelete
3. update(更新语句)
- 语法
update 表名 set 字段1='值1',字段2='值2' where id=?
- sql语句
//更新id=2的名字
update user set name="冰冰" where id=3
//更新id=2的名字和密码
update user set name="冰冰",pwd="111" where id=3;
4. select(查询语句)
- 语法
select * from 表名;
//查询user表的所有数据
select * from user;
//查询对应的字段
select name,pwd from user;
5. where语法和and、or运算符
//查询id大于3和del等于1的数据 del 是否删除 < !=
select * from user where id>3 and del=1;
//查询id大于3或者del等于1的数据
select * from user where id>3 or del=1;
6. 排序 order by
//以id的升序排序 默认就是升序 asc可以不加
select * from user order by id s
//以id的降序排序
select * from user order by id desc
7. 统计count(*)
//查询user表中del字段为0的总条数
select count(*) from user where del=0
//通过as给总数设置别名
select count(*) as total from user where del=0
8. 分页limit(查询大量数据时必须要使用的分页查询)
//从索引为i开始查询,查询n条
select * from user limit i,n;
//实现分页
select * from user limit (i-1)*n,n
三、在项目中操作 MySQL
1. 在项目中操作数据库的步骤
- 安装操作 MySQL 数据库的第三方模块(
mysql
) - 通过 mysql 模块
连接到 MySQL 数据库
- 通过 mysql 模块
执行 SQL 语句
2. node连接mysql
- 安装 mysql 模块
npm install mysql
- 配置 mysql 模块
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与mysql数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的IP地址
user: 'root', // 登录数据库的账号
password: 'root', // 登录数据库的密码
database: 'course', // 指定要操作哪个数据库
})
- 测试 mysql 模块能否正常工作
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与mysql数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的IP地址
user: 'root', // 登录数据库的账号
password: 'root', // 登录数据库的密码
database: 'course', // 指定要操作哪个数据库
})
// 测试mysql模块能否正常工作
db.query('select 1', (err, results) => {
if(err) return console.log(err.message)
// [ RowDataPacket { '1': 1 } ] 连接成功
console.log(results)
})
四、node中操作mysql
- 前提条件
// 1. 导入 mysql 模块
const mysql = require('mysql')
// 2. 建立与mysql数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的IP地址
user: 'root', // 登录数据库的账号
password: 'root', // 登录数据库的密码
database: 'course', // 指定要操作哪个数据库
})
1. 查询数据
- 查询 users 表中所有的数据:
2. 插入数据
- 向 users 表中新增数据, 其中
username 为 Spider-Man
,password 为 pcc321
。
3. 插入数据的便捷方式
- 向表中新增数据时,如果
数据对象的每个属性
和数据表的字段一一对应
,则可以通过如下方式快速插入数据:
4. 更新数据
5. 更新数据的便捷方式
- 更新表数据时,如果
数据对象的每个属性
和数据表的字段一一对应
6. 删除数据
- 在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。
7. 标记删除
- 使用 DELETE 语句,会把真正的把数据从表中删除掉。为了保险起见,
推荐使用标记删除
的形式,来模拟删除的动作
。 - 所谓的标记删除,就是在表中设置类似于
status
这样的状态字段
,来标记
当前这条数据是否被删除。 - 当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的 status 字段标记为删除即可。