今天结束的挺早,因为今天的内容还可以不是很难,今天全程是学了一些关于mysql数据库和sql查询语句的内容包括在node终端里面怎么来连接数据库。经过今天的一个学习,我感觉离那个地步越来越近了,就是那个自己完成一个网站,有服务器、有响应,就跟现在这些上线的网站一样一样的,越来越近了。

1.

这些内容其实上学期间就学过了,现在主要是拿来复习一下。

首先我们先了解一下数据库的基本概念,用来组织、存储,管理数据的仓库。

我们传统型数据库(mysql、sql、Oracle)的一个数据结构为:数据库》数据表》数据行》字段

库、表、行、字段之间的一些关系:

①每个项目都有独立的数据库文件

②不同的数据要放在不同的表中,比如一个用户信息就应该放到user表中

③每个表要存放哪些信息是由字段来决定的

④表中的行代表一条具体的数据

1.1

安装配置mysql,其实还是有一些步骤的,建议baidu就不多赘述了这里。

然后装好后用workbench去创建一个数据库再去创建一个表这个时候就有一些数据类型参考了,常见的int整数型,varchar字符串型、tinyint是布尔值

包括还有一些特殊标识,pk代表主键具有唯一标识,nn是not null不能为空值,uq是值唯一,ai是值会自增

1.2

上面是通过用那个工具去写一些数据进去,但是我们是程序员那肯定是要用代码来实现的,sql结构化查询语言来了,专门搞数据库的语言。

无非就是四个增删改查,我说一下一些注意点,然后就可以看代码就行了。

首先是增这里的列名和值必须要一一对应就没有了

-- 通过 * 把 users 表中所有的数据查询出来
-- select * from users -- 从 users 表中把 username 和 password 对应的数据查询出来
-- select username, password from users -- 向 users 表中,插入新数据,username 的值为 tony stark password 的值为 098123
-- insert into users (username, password) values ('tony stark', '098123')
-- select * from users -- 将 id 为 4 的用户密码,更新成 888888
-- update users set password='888888' where id=4
-- select * from users -- 更新 id 为 2 的用户,把用户密码更新为 admin123 同时,把用户的状态更新为 1
-- update users set password='admin123', status=1 where id=2
-- select * from users -- 删除 users 表中, id 为 4 的用户
-- delete from users where id=4
-- select * from users -- and运算符
-- select * from users where id = 1 and username = '2'
-- select * from users where id = 1 or username = '2'
-- oder by
-- select * from users order by id desc -- count
select count(*) as total from users where status = 0

1.3

看到mysql模块

怎么在项目中来操作一个mysql

首先要安装通过npm然后要配置来连接那个数据库,再去执行一些语句,主要实现的功能还是一个增删查改

注意

查:返回的是一个数组

增:sql语句中用?先来作为占位符先不填充数据,后面的也是这样,返回的是一个对象,里面有一个属性affectedRows也就是被影响的行,要等于一这个操作才能被算作生效,

然后由于我们的id具有唯一标识性,所以如果你删了4,又去增加一个那么他的id是5不是4,增有便捷版操作

改:也有便捷版,也返回的是一个对象,注意他的便捷版的where条件不能够省略

删:推荐以id这个唯一标识符作为条件来删除,然后我们delete就是真的从数据库删除了,其实是有点危险的,因为万一用户反悔了想恢复回来,这个时候就没办法了,所以我们一般是用标记删除,也就是通过update来改类似于status的值来达到一个模拟删除的操作,并没有真正从数据库删除

// 1. 前面如果通过npm安装了mysql第三方包后,就需要配置一下mysql模块了
// 首先是导入
const mysql = require('mysql')
// 通过mysql.createPool来配置
const db = mysql.createPool({
host : '127.0.0.1', // 数据库的ip地址
user : 'root' , // 登录数据库的账号
password : 'admin123', // 登录数据库密码
database : 'my_db_01' // 指定要操作哪个数据库
}) // 2.测试mysql
// select 1 没有任何作用只是可以测试是否连接成功
db.query('select 1' ,(err, results) => {
if (err) return err.message
return console.log(results);
}) // 3. 查询数据
db.query('select * from users', (err, results) => {
if (err) return err.message
return console.log(results);
}) // 4.插入数据
/* let obj = {
username : '流星',
password : '653213'
} */
// 4.1注意sql语句中可用?来占位
/* let insertStr = 'insert into users(username, password) values (?,?)'
// 4.2使用数组的形式可以依次去填补?里面的值
db.query(insertStr, [obj.username, obj.password] ,(err, results) => {
if (err) return err.message
// 4.3用到rsults的一个属性 表示影响的行数,只有当为一才表示真正的插入成功了
if (results.affectedRows == 1) return console.log('数据添加成功');
}) */ // 4.2插入数据便捷版
/* let obj = {
username : 'jj',
password : '653213'
}
let insertStr = 'insert into users set ?'
// 4.2使用数组的形式可以依次去填补?里面的值
db.query(insertStr, obj ,(err, results) => {
if (err) return err.message
// 4.3用到rsults的一个属性 表示影响的行数,只有当为一才表示真正的插入成功了
if (results.affectedRows == 1) return console.log('数据添加成功');
}) */ // 5.改数据
/* let user = {username : '姐姐', password : '1243333', id : '9'}
let updateStr = 'update users set username = ? , password = ? where id = ?'
db.query(updateStr, [user.username, user.password, user.id], (err, results) => {
if (err) {
return err.message
} else if (results.affectedRows == 1) {
return console.log('更新数据成功');
}
}) */
// 5.1便捷版
/* let user = {username : '姐姐', password : '1243333', id : '9'}
let updateStr = 'update users set ? where id = ?'
db.query(updateStr, [user, user.id], (err, results) => {
if (err) {
return err.message
} else if (results.affectedRows == 1) {
return console.log('更新数据成功');
}
}) */ // 6.删除数据
let deleteStr = 'delete from users where id = ?'
db.query(deleteStr, 9, (err, results) => {
if (err) {
return err.message
} else if (results.affectedRows == 1) {
return console.log('删除数据成功');
}
})

node.js - mysql的更多相关文章

  1. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

  2. 零代码第一步,做个添加数据的服务先。node.js + mysql

    node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...

  3. node.js+mysql环境搭建

    https://www.jianshu.com/p/9b338095cbe8 node.js+mysql环境搭建 0x01 前言 随着html web技术的发展,和全栈式开发的需求,对于前端人员来讲, ...

  4. Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城

    转载于这篇文章 关于pm2看这篇文章 最近在研究小程序,申请了域名之后,再一次来配置环境,根据作者的步骤基本上完成了网站的架构,但由于环境路径等不同,配置上会有所不同,因此记录下来. 1.更新系统和安 ...

  5. Node.jsでMySQLを使うメモ

    インストール npm install mysql コネクション var mysql = require('mysql'); var connection = mysql.createConnectio ...

  6. Node.JS + Mysql数据库

    服务嘛,当然离不开数据库了,你要是见到数据就哭了,我建议你还是看看本文,不要做数据哭啊,哈哈哈 要做 ‘数据酷’嘛,哈哈哈 一 安装 1. wget -i -c http://dev.mysql.co ...

  7. node.js+mysql用户的注册登录验证

    下面代码实现的功能是:用node.js连接mysql实现用户的注册和登录,这里主要实现的是后端的验证代码,前端显示部分没具体写出. 整个程序的流程是这样的: 1.首先建立数据库reji,数据表user ...

  8. Node.js实操练习(一)之Node.js+MySQL+RESTful

    前言 最近学习了一下node.js相关的内容,在这里初步做个小总结,说实话关于本篇博客的相关内容,自己很久之前就已经有过学习,但是你懂的,“好记性不如烂笔筒”,学过的东西不做笔记的话,很容易就会忘记的 ...

  9. node.js+mysql把数据显示到前端简单实例

    原以为数据查出来了,要展示是鸡毛蒜皮的事儿!谁知道,我弄了一天....我错就错在没把connection.query里面. 下面的例子是可以的了! 看过我之前文章的同学,应该很熟悉下面的代码,对!主要 ...

  10. 借助node.js + mysql 学习基础ajax~

    很多小白不知道ajax怎么学,所以就弄了个node后台模拟下基本的ajax请求. 环境要求是安装node~ 先上linkMysql.js var mysql = require('mysql') va ...

随机推荐

  1. 字节跳动社会招聘&内推-帮助你更快加入字节跳动

    字节跳动社会招聘&内推「[内推码]:4J8CA3W」 内推时间:一直有效 招聘对象:根据招聘要求而定 社招投递链接: https://job.toutiao.com/s/de5teaA 应届生 ...

  2. C249: 'DATA': SEGMENT TOO LARGE“解决方法 | keilC51设置编译模式:SMALL,COMPACT,LARGE

    "Keil Cx51编译器提供三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下. SMALL:所有变量都被定义在8051单片机的片内RAM中,对这 ...

  3. J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...

  4. xml文件使用DOM解析,报异常org.xml.sax.SAXParseException,"characterEncoding" 的引用必须以 ';' 分隔符结尾异常

    这个异常一般为xml文件对&的报错,只需要将&改为转义后的&amp即可解决

  5. 什么是 Apache Kafka?

    Apache Kafka 是一个分布式发布 - 订阅消息系统.它是一个可扩展的,容错的 发布 - 订阅消息系统,它使我们能够构建分布式应用程序.这是一个 Apache 顶 级项目.Kafka 适合离线 ...

  6. 我们能在 Switch 中使用 String 吗?

    从 Java 7 开始,我们可以在 switch case 中使用字符串,但这仅仅是一个语法 糖.内部实现在 switch 中使用字符串的 hash code. 30.Java 中的构造器链是什么? ...

  7. 本地存储和cookies之间的区别是什么?

    cookies本地存储客户端/服务器端既可以从客户端也可以从服务器端访问数据.每个请求都会发送cookie数据到服务器.只能在本地浏览器端访问数据.服务器无法访问本地存储,除非特意通过POST或GET ...

  8. 学习GlusterFS(九)

    环境说明: 3台机器安装 GlusterFS 组成一个集群. 使用 docker volume plugin GlusterFS 服务器: 10.6.0.140 10.6.0.192 10.6.0.1 ...

  9. Java入门之基础程序设计

    1.Java语言特点了解 1. java语言:   有些语言提供了可移植性.垃圾收集等机制,但是没有提供一个大型的库.如果想要有酷炫的绘图功能.网络连接功能或者数据库存取功能,就必须动手编写代码.Ja ...

  10. c++中的左值和右值的理解

    1.左值和右值的概念 C++中左值(lvalue)和右值(rvalue)是比较基础的概念,虽然平常几乎用不到,但C++11之后变得十分重要,它是理解 move/forward 等新语义的基础. 左值与 ...