1. 数据库的基本概念
1.1 什么是数据库
数据库(database)是用来组织、存储和管理数据的仓库。
当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、 浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。
1.2 常见的数据库及分类
市面上的数据库有很多种,最常见的数据库有如下几个:
MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;Community + Enterprise)
Oracle 数据库(收费)
SQL Server 数据库(收费)
Mongodb 数据库(Community + Enterprise)
其中,MySQL、Oracle、SQL Server 属于传统型数据库(又叫做:关系型数据库 或 SQL 数据库),这三者的 设计理念相同,用法比较类似。
而 Mongodb 属于新型数据库(又叫做:非关系型数据库 或 NoSQL 数据库),它在一定程度上弥补了传统型数据库的缺陷
2. 什么是 SQL
是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,来操作数据库里的数据。
三个关键点:
- SQL 是一门数据库编程语言
- 使用 SQL 编写出来的代码,叫做 SQL 语句
- SQL 语言只能在关系型数据库中使用,非关系型数据库不支持 SQL 语言
3. MySQL 的安装和使用
3.1 MySQL 应用的下载
3.2 MySQL 如何使用
点击新建一个项目
创建完成后点击打开新建的文件,右键点击(tables)选择第一个 (Create Table…)新建一个页面,可以在里面写内容
3.3 创建页面里单词的效果
DataType 数据类型:
- int 整数
- varchar(len) 字符串
- tinyint(1) 布尔值
字段的特殊标识:
- PK 主键、唯一标识
- NN 值不允许为空
- UQ 值唯一
- Al 值自动增长
4. 通过 SQL 语言改变数据库里的数据
-- 通过 * 把 users 表中的所有数据查询出来 -- select * from users -- 从 users 表中吧 username 和 password 对应的数据查询出来 -- select username , password from users -- 向 users 表中,插入新数据,username 的值为 ***,password 的值为 *** -- insert into users (username,password) values ('***','***') -- select * from users -- 将 id 为 4 的用户密码,更新成 *** -- update users set password='***' where id=4 -- select * from users -- 更新 id 为 2 的用户,把用户密码更新为 lisi123 同时,把用户的状态更新为 1 -- update users set password='lisi123', status=1 where id=2 -- select * from users -- 删除 users 表中,id 为 4 的用户 -- delete from users where id=4 -- select * from users -- 演示 where 子句的使用 -- select * from users where status=1 -- select * from users where id>=2 -- select * from users where username<>'李四' -- select * from users where username!='李四' -- 使用 AND 来显示所有状态为 0 且 id 小于 3 的用户 -- select * from users where status=0 and id<3 -- 使用 OR 来显示所有状态为 1 或 username 为 张三 的用户 -- select * from users where status=1 or username='张三' -- 对 users 表中的数据,按照 status 字段进行升序排序 -- select * from users order by status -- select * from users order by status asc -- 按照 id 对结果进行降序的排序,desc 表示降序排序,asc 表示升序排序(默认情况下,就是升序排序) -- select * from users order by id desc -- 对 users 表中的数据,先按照 status 进行降序排序,再按照 username 字母的·顺序,进行升序的排序 -- select * from users order by status desc,username asc -- 使用 count(*) 来统计 users 表中,状态为 0 用户的总数量 -- select count(*)from users where status=0 -- 使用 AS 关键字给列起别名 -- select count(*) as total from users where status=0 -- select username as uname , password as upwd from users
5. 通过 JavaScript 改变数据库里的数据
// 1. 导入 mysql 模块 const mysql = require('mysql') // 2. 建立与 mysql 数据库的链接关系 const db = mysql.createPool({ host: '127.0.0.1', // 数据库的 IP 地址 user: 'root', // 登录数据库的账号 password: '******', // 登录数据库的密码 database:'my_db_01', // 指定要操作哪个数据库 }) // 测试 mysql 模块是否能正常工作 // db.query('select 1', (err, results) => { // // mysql 模块工作期间报错了 // if (err) return console.log(err.message) // // 能够成功的执行 SQl 语句 // console.log(results) // }) // 查询 users 表中所有的数据 // const sqlStr = 'select * from users' // db.query(sqlStr, (err, results) => { // // 查询数据失败 // if (err) return console.log(err.message) // // 查询数据成功 // // 注意:如果执行的是 select 查询语句,则执行的结果是数组 // console.log(results) // }) // 向 users 表中,新增一条数据,其中 username 的值为 ***,password 的值为 *** // const user = { username: '***', password: '******' } // // 定义待执行的 SQL 语句 // const sqlStr = 'insert into users (username,password) values(?,?)' // // 执行 SQL 语句 // db.query(sqlStr, [user.username, user.password], (err, results) => { // // 执行 SQL 语句失败了 // if (err) return console.log(err.message) // // 成功了 // // 注意:如果执行的是 insert into 插入语句,则 results 是一个对象 // // 可以通过 affectedRows 属性,来判断是否插入数据成功 // if (results.affectedRows === 1) { // console.log("插入数据成功!") // } // }) // 演示插入数据的便捷方式 // const user = { username: '王', password: '***' } // // 定义待执行的 SQl 语句 // const sqlStr = 'insert into users set ?' // // 执行 SQl 语句 // db.query(sqlStr, user, (err, results) => { // // 执行 SQL 语句失败了 // if (err) return console.log(err.message) // // 成功了 // if (results.affectedRows === 1) { // console.log("插入数据成功!") // } // }) // 演示如何更新用户的信息 // const user = { id: 6, username: '小张', password: 'xz123' } // // 定义 SQl 语句 // const sqlStr = 'update users set username=?,password=? where id=?' // // 执行 SQl 语句 // db.query(sqlStr, [user.username, user.password, user.id], (err, results) => { // // 执行 SQL 语句失败了 // if (err) return console.log(err.message) // // 成功了 // // 注意:执行了 update 语句后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功 // if (results.affectedRows === 1) { // console.log("更新数据成功!") // } // }) // 演示更新数据的便捷方式 // const user = { id: 5, username: '小明', password: 'xm123' } // // 定义 SQl 语句 // const sqlStr = 'update users set ? where id=?' // // 执行 SQl 语句 // db.query(sqlStr, [user, user.id], (err, results) => { // // 执行 SQL 语句失败了 // if (err) return console.log(err.message) // // 成功了 // if (results.affectedRows === 1) { // console.log("更新数据成功!") // } // }) // 删除 id 为 5 的用户 // const sqlStr = 'delete from users where id=?' // // 执行 SQl 语句 // db.query(sqlStr, 2, (err, results) => { // // 执行 SQL 语句失败了 // if (err) return console.log(err.message) // // 成功了 // // 注意:执行 delete 语句之后,结果也是一个对象,也会包含 affectedRows 属性 // if (results.affectedRows === 1) { // console.log("删除数据成功!") // } // }) // 标记删除 const sqlStr = 'update users set status=? where id=?' // 执行 SQl 语句 db.query(sqlStr, [1,6], (err, results) => { // 执行 SQL 语句失败了 if (err) return console.log(err.message) // 成功了 if (results.affectedRows === 1) { console.log("标记删除成功!") } })
以上就是 node.js 中 SQL 数据库的创建和使用方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。