使用 SQL 管理数据库
1. 什么是 SQL
SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让
我们以编程的形式,操作数据库里面的数据。
三个关键点:
① SQL 是一门数据库编程语言
② 使用 SQL 语言编写出来的代码,叫做 SQL 语句
③ SQL 语言只能在关系型数据库中使用(例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb)
不支持 SQL 语言
2. SQL 能做什么
① 从数据库中查询数据
② 向数据库中插入新的数据
③ 更新数据库中的数据
④ 从数据库删除数据
⑤ 可以创建新数据库
⑥ 可在数据库中创建新表
⑦ 可在数据库中创建存储过程、视图
⑧ etc...
3. SQL 的学习目标
重点掌握如何使用 SQL 从数据表中:
查询数据(select) 、插入数据(insert into) 、更新数据(update) 、删除数据(delete)
额外需要掌握的 4 种 SQL 语法:
where 条件、and 和 or 运算符、order by 排序、count(*) 函数
在项目中操作数据库的步骤
① 安装操作 MySQL 数据库的第三方模块(mysql)
② 通过 mysql 模块连接到 MySQL 数据库
③ 通过 mysql 模块执行 SQL 语句
1.安装 mysql 模块
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:npm i mysql
2.测试mysql是否能够正常工作
// 1、导入mysql模块 const mysql =require('mysql') //2、建立与MySql数据库的连接 const db=mysql.createPool({ host:'127.0.0.1', //数据库的ip地址 user:"root", //登录数据库的账号 password:'123', //登录数据库的密码 database:"my_db" //指定要操作那个数据库 }) //测试mysql能否正常工作 db.query('SELECT 1',(err,results)=>{ if(err) return console.log(err.message); console.log(results); }) // 插入数据 const user={username:'batman2',password:'sb123'} const insertUserSql='insert into users(username,password) values(?,?)' db.query(insertUserSql,[user.username,user.password],(err,results)=>{ if(err) return console.log(err.message); //失败 console.log(results); // 成功了 // 注意:如果执行的是 insert into 插入语句,则 results 是一个对象 // 可以通过 affectedRows 属性,来判断是否插入数据成功 if(results.affectedRows===1){ console.log("插入成功"); } }) // 演示插入数据的便捷方式 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('插入数据成功') } }) //更新用户信息 const user = { id: 6, username: 'aaa', password: '000' } // 定义 SQL 语句 const sqlStr = 'update users set username=?, password=? where id=?' // 执行 SQL 语句 db.query(sqlStr, [user.username, user.password, user.id], (err, results) => { if (err) return console.log(err.message) // 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功 if (results.affectedRows === 1) { console.log('更新成功') } }) // 演示更新数据的便捷方式 const user = { id: 6, username: 'aaaa', password: '0000' } // 定义 SQL 语句 const sqlStr = 'update users set ? where id=?' // 执行 SQL 语句 db.query(sqlStr, [user, user.id], (err, results) => { if (err) return console.log(err.message) if (results.affectedRows === 1) { console.log('更新数据成功') } }) // 删除 id 为 5 的用户 const sqlStr = 'delete from users where id=?' //如果只需要传一个值的话就不用数组形式 db.query(sqlStr, 5, (err, results) => { if (err) return console.log(err.message) // 注意:执行 delete 语句之后,结果也是一个对象,也会包含 affectedRows 属性 if (results.affectedRows === 1) { console.log('删除数据成功') } }) // 标记删除 const sqlStr = 'update users set status=? where id=?' db.query(sqlStr, [1, 6], (err, results) => { if (err) return console.log(err.message) if (results.affectedRows === 1) { console.log('标记删除成功') } })