MySQL数据库

211 阅读3分钟

MySQL数据库

常见的数据库以及分类

image.png

在传统型数据库的数据组织结构

image.png 在传统型数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、字段(field) 这4大部分组成。

创建数据库

 CREATE DATABASE 数据库名(不为中文)

image.png

创建数据表

CREATE TABLE table_name (column_name column_type);

image.png

image.png

什么是SQL

image.png

image.png

从表中查询数据

select * from 表名 select 查询的字段名 from 表名 查询多个字段中间用逗号隔开 image.png

image.png

image.png

插入数据

insert into 表名 (字段,字段,字段) values (对应字段的数据,对应字段的数据,对应字段的数据)

image.png

image.png

更新表的数据

更新单个

image.png

image.png

image.png

更新多个

updata 表名 set 列名称=新值 where 列名称=某值 image.png

image.png

删除数据

delete from 表名称 where 列名称 = 值 image.png

image.png

image.png

where子句

image.png

image.png

image.png

image.png

image.png

and 和 or

image.png image.png

image.png

order by 子句 升序和排序

image.png

image.png

多重排序

image.png

返回总条数 count(*)

image.png

as 关键字给列起别名

image.png

MySQL模块

image.png

image.png

下载配置mysql模块

npm init -y 初始化package.json npm install -s mysql 下载mysql第三方模块

image.png

// 导入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);
})

image.png

查询数据库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);
})

image.png

如果用select * from 语句返回的是一个数组

利用insert into 插入数据库

在表为test_1中插入username为admin

image.png

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 返回的是一个对象

插入数据的便捷方式

image.png

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('更新成功!');
})

image.png

update 表名 set ------返回的是一个对象所以也可以用result.affected===1来判断

简便更新数据

image.png

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('更新数据成功!');
})

删除数据

image.png

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 语句 也是返回对象

标记删除

image.png

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('删除成功!');
})