node.js - mysql
今天结束的挺早,因为今天的内容还可以不是很难,今天全程是学了一些关于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的更多相关文章
- Node.js + MySQL 实现数据的增删改查
通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...
- 零代码第一步,做个添加数据的服务先。node.js + mysql
node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...
- node.js+mysql环境搭建
https://www.jianshu.com/p/9b338095cbe8 node.js+mysql环境搭建 0x01 前言 随着html web技术的发展,和全栈式开发的需求,对于前端人员来讲, ...
- Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城
转载于这篇文章 关于pm2看这篇文章 最近在研究小程序,申请了域名之后,再一次来配置环境,根据作者的步骤基本上完成了网站的架构,但由于环境路径等不同,配置上会有所不同,因此记录下来. 1.更新系统和安 ...
- Node.jsでMySQLを使うメモ
インストール npm install mysql コネクション var mysql = require('mysql'); var connection = mysql.createConnectio ...
- Node.JS + Mysql数据库
服务嘛,当然离不开数据库了,你要是见到数据就哭了,我建议你还是看看本文,不要做数据哭啊,哈哈哈 要做 ‘数据酷’嘛,哈哈哈 一 安装 1. wget -i -c http://dev.mysql.co ...
- node.js+mysql用户的注册登录验证
下面代码实现的功能是:用node.js连接mysql实现用户的注册和登录,这里主要实现的是后端的验证代码,前端显示部分没具体写出. 整个程序的流程是这样的: 1.首先建立数据库reji,数据表user ...
- Node.js实操练习(一)之Node.js+MySQL+RESTful
前言 最近学习了一下node.js相关的内容,在这里初步做个小总结,说实话关于本篇博客的相关内容,自己很久之前就已经有过学习,但是你懂的,“好记性不如烂笔筒”,学过的东西不做笔记的话,很容易就会忘记的 ...
- node.js+mysql把数据显示到前端简单实例
原以为数据查出来了,要展示是鸡毛蒜皮的事儿!谁知道,我弄了一天....我错就错在没把connection.query里面. 下面的例子是可以的了! 看过我之前文章的同学,应该很熟悉下面的代码,对!主要 ...
- 借助node.js + mysql 学习基础ajax~
很多小白不知道ajax怎么学,所以就弄了个node后台模拟下基本的ajax请求. 环境要求是安装node~ 先上linkMysql.js var mysql = require('mysql') va ...
随机推荐
- 4月10日 python学习总结 模块和面向对象
1.hashlib 1.什么叫hash:hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 2.hash值的特点是:2.1 只要传入的内容一样,得到的hash值必然一样=====& ...
- 74CMS 3.0 SQL注入漏洞前台
一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 2.因为74CMS3.0源代码编辑使用GBK编 ...
- python的内存回收机制
变量相当于门牌号,当门牌没有了,即函数的引用都没有调用了,内存的数据就会被清除掉. python内有个定时器,定期的会刷新,如果发现内存中数据被引用了,就会被回收,这个就是内存的回收机制 ...
- [WPF] 假装可变字体
1. 可变字体 上图中的两个动画,一个文字直接变粗,一个渐渐变粗,我觉得后者会更有趣.但普通的字体可达不到这种效果,例如微软雅黑,无论怎么调整它的 FontWeight,实际上它也只有三种粗细: 这时 ...
- Zookeeper 有哪几种几种部署模式?
部署模式:单机模式.伪集群模式.集群模式.
- Mybatis中的分页
Mybatis中有哪些分页方式? 数组分页:查询出全部数据,然后再list中截取需要的部分.(逻辑分页) 优点:效率高 缺点:占用内存比较高 sql分页:只从数据库中查询当前页的数据.(物理分 ...
- 转载:2017百度春季实习生五道编程题[全AC]
装载至:https://blog.csdn.net/zmdsjtu/article/details/70880761 1[编程题]买帽子 时间限制:1秒空间限制:32768K度度熊想去商场买一顶帽子, ...
- centos 7环境下安装部署zookeeper
近一直在看zookeeper的知识,有所收获,打算写些一些关于zookeeper的博客,也当做是自己的复习和笔记. 在上一篇 博客中简单地介绍了centos 7 下如何安装jdk,这一篇将介绍如何在c ...
- 以太网EMC(浪涌)中心抽头方案(节约空间)
- 所有用CSS3写的3D特效,都离不开这些知识
起因 昨晚在做慕课网的十天精通CSS3课程,其中的综合练习是要做一个3D导航翻转的效果.非常高大上. 以往这些效果我都很不屑,觉得网上一大堆这些特效的代码,复制粘贴就好了,够快.但是现实工作中,其实自 ...