node.js 学习入门(08 - MySQL 数据库)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: node.js 学习入门(08 - MySQL 数据库)

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 应用的下载

点击跳转至 MySQL 下载页面

3.2 MySQL 如何使用

f4a4250a97154e22b2e5fa333fdc380a.png

点击新建一个项目

10963b82aaba4f3d8ba03bb329166fda.png

创建完成后点击打开新建的文件,右键点击(tables)选择第一个 (Create Table…)新建一个页面,可以在里面写内容

a7bbe2289adc4e168a24a473b3ffeccc.png

26e221d18e7b4af5b8ebc1a72a3ac353.png


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 数据库的创建和使用方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
23 1
|
10天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
25 4
|
12天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
12天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
18 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
20天前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
54 10
|
17天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
84 1
|
19天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
18天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
22天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
89 4
|
26天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库