1. SQL 的 SELECT 语法
SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)
2. SQL 的 INSERT INTO 语句
INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下:
3. SQL 的 UPDATE 语句
Update 语句用于修改表中的数据
4. SQL 的 DELETE 语句
DELETE 语句用于删除表中的行
5. SQL 的 WHERE 子句
WHERE 子句用于限定选择的标准。在 SELECT、UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准。
可在 WHERE 子句中使用的运算符
6. SQL 的 AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
AND 表示必须同时满足多个条件,相当于 JavaScript 中的 && 运算符,例如 if (a !== 10 && a !== 20)
OR 表示只要满足任意一个条件即可,相当于 JavaScript 中的 || 运算符,例如 if(a !== 10 || a !== 20)
7. SQL 的 ORDER BY 子句
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序,可以使用 ASC 关键字。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
8. SQL 的 COUNT(*) 函数
COUNT(*) 函数用于返回查询结果的总数据条数
9. 使用 AS 为列设置别名
如果希望给查询出来的列名称设置别名,可以使用 AS 关键字
在项目中操作Mysql
1. 安装 mysql 模块
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:
2. 配置 mysql 模块
// 1. 导入 mysql 模块
const mysql = require('mysql');
// 2. 建立与 mysql 数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1', // 数据库的IP地址
user: 'root', // 数据库的账号
password: 'admin123', // 数据库的密码
database: 'my_db_01' // 指定要操作哪个数据库
})
3. 测试 mysql 模块
// 测试 mysql 模块能否正常工作
db.query('select 1', (err, results) => {
// mysql 模块工作期间报错
if (err) return console.log(err.messge);
// 返回[ RowDataPacket { '1': 1 } ] 表示工作正常
console.log(results);
});
4. 查询数据
// 查询 users 表中所有的数据
const sqlStr = 'select * from users';
db.query(sqlStr, (err, results) => {
// 查询失败
if (err) return console.log(err.messge);
// 查询成功
// 注意:如果执行的是 select 查询语句 ,则执行的结果是数组
console.log(results);
})
5. 插入数据
// 插入数据
const user = { username: 'Spider-Man2', password: 'pcc4321' };
// 定义待执行的 SQL 语句
const sqlStr = 'insert into users set ?';
// 执行 SQL 语句
db.query(sqlStr, user, (err, results) => {
// 执行失败
if (err) return console.log(err.message);
// 执行成功
if (results.affectedRows === 1) {
console.log('插入成功');
}
})
6. 更新数据
// 更新数据
const user = { id: 11, username: 'ccc', password: '111' };
// 定义 SQL 语句
const sqlStr = 'update users set ? where id=?';
// 执行 SQL 语句
db.query(sqlStr, [user, user.id], (err, results) => {
if (err) return console.log(err.message);
// 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过affectedRows 判断是否更新成功
if (results.affectedRows === 1) {
console.log('更新成功');
};
})
7. 删除数据
// 删除数据
const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 3, (err, results) => {
if (err) return console.log(err.message);
// 注意:执行 delete 语句之后,结果也是一个对象,也会包含 affectedRows 属性
if (results.affectedRows === 1) {
console.log('删除数据成功');
}
})
8. 标记删除
使用 DELETE 语句,会把真正的把数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。
所谓的标记删除,就是在表中设置类似于 status 这样的状态字段,来标记当前这条数据是否被删除。
当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的 status 字段标记为删除即可。