MySQL数据库
常见的数据库以及分类
在传统型数据库的数据组织结构
在传统型数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、字段(field) 这4大部分组成。
创建数据库
CREATE DATABASE 数据库名(不为中文)
创建数据表
CREATE TABLE table_name (column_name column_type);
什么是SQL
从表中查询数据
select * from 表名
select 查询的字段名 from 表名 查询多个字段中间用逗号隔开
插入数据
insert into 表名 (字段,字段,字段) values (对应字段的数据,对应字段的数据,对应字段的数据)
更新表的数据
更新单个
更新多个
updata 表名 set 列名称=新值 where 列名称=某值
删除数据
delete from 表名称 where 列名称 = 值
where子句
and 和 or
order by 子句 升序和排序
多重排序
返回总条数 count(*)
as 关键字给列起别名
MySQL模块
下载配置mysql模块
npm init -y 初始化package.json npm install -s mysql 下载mysql第三方模块
// 导入mysql模块
const mysql = require('mysql')
// 建立与MySQL数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1',//数据库的ip地址
user: 'root',//登录数据库的账号
password: '000000',//登录数据库的密码
database: 'test_1'//指定要操作哪个数据库
})
测试mysql模块
// 导入mysql模块
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',//数据库端口号
user: 'root',//登录账号
password: '000000',//数据库密码
database: 'test_1'//指定操作哪个数据库
})
// 测试mysql模块能否正常工作
db.query('SELECT 1', (err, result) => {
// mysql模块工作期间报错
if (err) return console.log(err.message)
// 只要打印出
console.log(result);
})
查询数据库test_1中表users中的所有数据
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
const sqlStr = 'select * from users' //查询user表中所有的数据
db.query(sqlStr, (err, result) => {
// 查询数据失败
if (err) return console.log(err.message)
// 查询数据成功
console.log(result);
})
如果用select * from 语句返回的是一个数组
利用insert into 插入数据库
在表为test_1中插入username为admin
const mysql = require('mysql')
const db = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
// 要插入到users表中的数据对象
const user = { username: '先生', password: 123456 }
// 执行的sql语句,其中英文的?表示占位符 用inset into 返回的是一个对象
const insert = 'insert into users (username,password) values (?,?)'
// 使用数组的形式,依次为?占位符指定具体的值
db.query(insert, [user.username, user.password], (err, result) => {
if (err) return console.log(err.message)//失败 利用result.affectedRows 是否等于1来判断是否插入成功
if (result.affectedRows === 1) { console.log('插入数据成功'); }//成功
})
用inset into 返回的是一个对象
插入数据的便捷方式
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
const sqlStr = { username: '小米', password: '123321' }
const str = `insert into users set ?`
db.query(str, sqlStr, (err, result) => {
if (err) return console.log("请求失败!" + err.message)
if (result.affectedRows === 1) {
console.log(`插入成功!`);
}
})
更新数据库中的数据
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
let sqlStr = { id: 1, username: "美女", password: 5201314 }
let str = `update users set username=?,password=? where id=?`
db.query(str, [sqlStr.username, sqlStr.password, sqlStr.id], (err, result) => {
if (err) return console.log('更新失败' + err.message);
if (result.affectedRows === 1) return console.log('更新成功!');
})
update 表名 set ------返回的是一个对象所以也可以用result.affected===1来判断
简便更新数据
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
const user = { id: 3, username: '小公主', password: '5201314' }
const str = `update users set ? where id=?`
db.query(str, [user, user.id], (err, result) => {
if (err) return console.log("更新失败!" + err.message);
if (result.affectedRows === 1) return console.log('更新数据成功!');
})
删除数据
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
const str = `delete from users where id=?`
db.query(str, 2, (err, result) => {
if (err) return console.log('删除数据失败!' + err.message);
if (result.affectedRows === 1) console.log('删除数据成功!');
})
delete from 语句 也是返回对象
标记删除
const mysql = require('mysql')
const db = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: '000000',
database: 'test_1'
})
const user = { id: 16, status: 1 }
// 先将id为16的数据id更新为16 status更新为1
const str = `update users set ? where id=?`
db.query(str, [user, user.id], (err, result) => {
if (err) return console.log(err.message);
if (result.affectedRows === 1) return console.log('删除成功!');
})