明天完结的挺早,因为明天的内容还能够不是很难,明天全程是学了一些对于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-- countselect 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('删除数据胜利');    }})