数据库与MySQL

本文介绍了数据库的基本概念,包括数据库的组织结构和MySQL的安装配置。接着详细讲解了如何使用MySQLWorkbench管理数据库,以及SQL语言的关键操作,如查询、插入、更新和删除数据,还涵盖了WHERE子句、ORDERBY和COUNT(*)函数的使用。最后,讨论了在项目中如何使用mysql模块操作MySQL数据库。
摘要由CSDN通过智能技术生成

数据库与身份认证

一、数据库的基本概念

1.1 什么是数据库

数据库是用来组织、存储和管理数据的仓库

  • 方便管理互联网世界中的数据 就有了数据库管理系统的概念(数据库)
  • 对数据库中的数据进行新增 查询 更新 删除

1.2 常见的数据库及分类

在这里插入图片描述

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

数据的组织结构: 指的就是数据以什么样的结构进行存储

  • 传统型数据库的数据组织结构,于Excel中数据的组织结构类似

1.3.1 Excel 的数据组织结构

包含工作簿 工作表 数据行 列

在这里插入图片描述

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

包含数据库 数据表 数据行 字段

在这里插入图片描述

1.3.2 实际开发中库、表、行、字段的关系

在这里插入图片描述

二、安装并配置MySQL

2.1 需要安装哪些MyAQL相关软件

  • MySQL Server:专门用来提供数据存储和服务的软件。
  • MySQL Workbench:可视化的 MySQL 管理工具,通过它,可以方便的操作存储在 MySQL Server 中的数据。

2.2 windows环境下安装

三、MySQL的基本使用

3.1 使用MySQL Workbench管理数据库

3.1.1 连接数据库

在这里插入图片描述

3.1.2 主界面的组成部分

在这里插入图片描述

3.1.3 创建数据库

在这里插入图片描述

3.1.4 创建数据表

在这里插入图片描述

3.1.5 向表中写入数据

在这里插入图片描述

3.1.6 数据类型与字段的特殊标识

数据类型

  • int 整数
  • tinyint(1) 布尔值
  • varchar(len) 字符串

特殊标识

  • PK(Primay Key) 主键 唯一标识
  • NK(Not Null) 值不允许为空
  • UQ(Unique) 唯一
  • AI(Auto Increment) 值自动增长

3.2 什么是SQL管理数据库

3.2.1 什么是SQL

SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。

  • SQL是一门数据库编程语言
  • 使用SQL语言编写出来的代码 叫做SQL语句
  • SQL语言只能在关系型数据库中使用(例如MySQL,Oracle SQL Server)
  • 非关系型数据库 (例如Mongodb)不支持SQL语言

3.2.2 SQL能做什么

在这里插入图片描述

3.2.3 SQL的学习目标

  • select 查询语句
  • insert into 插入数据
  • update 更新数据
  • delete 删除数据
  • where 条件语句
  • and 和 or 运算符
  • order by 排序
  • count(*) 数量函数

3.3 查询语句

3.3.1 语法

SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)

3.3.2 查询 示例

-- 通过*号把user表中的数据 查询出来
 select * from users

3.3.3 查询列名称 示例

-- 从users表中把name 和 password查询出来
select username, password from users

3.4 插入语句

3.4.1 语法

INSERT INTO 语句用于向数据表中插入新的数据行

在这里插入图片描述

3.4.2 插入 示例

-- 向users 插入新数据 username的值是tony stark ps的值为098123
insert into users (username,password) values ('tony stark','098123')

3.5 更新语句

3.5.1 语法

Update 语句用于修改表中的数据

在这里插入图片描述

3.5.2 更新示例-更新某一行中的一个列

-- 将id为4的用户 密码改为888888
 update users set password='888888' where id=4

3.5.3 更新示例-更新某一行中的若干列

-- 把 users 表中 id 为 2 的用户密码和用户状态,分别更新为 admin123 和 1
update users set username='admin123',status=1 where id=2

3.6 删除语句

3.6.1 语法

DELETE 语句用于删除表中的行

在这里插入图片描述

3.6.2 删除示例

-- 从 users 表中,删除 id 为 4 的用户
delete from users where id=4

3.7 SQL中的WHERE子句

3.7.1 语法

WHERE 子句用于限定选择的标准。在 SELECT,UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准。

在这里插入图片描述

3.7.2 可在WHERE子句中使用的运算符

在这里插入图片描述

3.7.3 WHERE子句示例

-- WHERE 子句使用
-- select * from users where status=1
-- select * from users where id>=2
-- select * from users where id<>2
-- select * from users where id!=2

3.8 SQL的AND和OR运算符

3.8.1 语法

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

在这里插入图片描述

3.8.2 AND运算符示例

-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户
select * from users where status=0 and id<3

3.8.3 OR运算符示例

-- 使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户
select * from users where status=1 or username='张三'

3.9 SQL的ORDER BY子句

3.9.1 语法

ORDER BY 语句用于根据指定的列对结果集进行排序。(默认升序) 降序(desc)

3.9.2 ORDER BY子句-升序排序

-- 对 users 表中的数据,按照 status 字段进行升序排序 asc表示升序(默认)
select * from users ORDER BY status

3.9.3 ORDER BY子句-降序排序

-- 对 users 表中的数据,按照 id 字段进行降序排序 desc表示降序 
select * from users order by id desc

3.9.4 ORDER BY子句-多重排序

-- 对 users 表中的数据,先按照 status 字段进行降序排序,再按照 username 的字母顺序,进行升序排序
select * from users order by status desc,username asc

3.10 SQL的COUNT(*)函数

3.10.1 语法

COUNT(*) 函数用于返回查询结果的总数据条数

3.10.2 COUNT(*)示例

-- 查询 users 表中 status 为 0 的总数据条数
select count(*) from users where status=0

3.10.3 使用AS为列设置别名

-- 如果希望给查询出来的列名称设置别名,可以使用 AS 关键字
-- select count(*) as total from users where status=0
select username as uname,password as pd from users 

四、在项目中操作MySQL

4.1 在项目中操作数据库的步骤

  • 1、安装操作MySQL数据库的第三方模块
  • 2、通过mysql模块连接到MySQL数据库
  • 3、通过mysql模块执行SQL语句
    在这里插入图片描述

4.2 安装与配置mysql模块

4.2.1 安装mysql模块

初始化项目操作,生成package.json 文件

npm init -y

安装mysql模块 托管与mysql上的第三方模块

npm install mysql

4.2.2 配置mysql模块

//1. 导入mysql模块
const mysql = require('mysql')

//2. 建立于MySQL 数据库的连接
const db = mysql.createPool({
    host: '127.0.0.1',     //数据库的id地址
    user: 'root',          //登录数据库的账号
    password: 'admin123',  //登录数据库的密码
    database: 'my_db_01',  //指定要操作的数据库名称
})

4.2.3 测试mysql模块能否正常工作

//测试mysql 模块能否正常工作
db.query('select 1', (err, results) => {
    //mysql模块工作期间报错了
    if (err) return console.log(err.message);
    //能够成功的执行sql语句
    console.log(results);
})

4.3 使用mysql模块操作MySQL数据库

4.3.1 查询数据

//查询users 表中的所有数据
const sqStr = 'select * from users'
db.query(sqStr, (err, results) => {
    if (err) return console.log(err.message);
    //查询数据成功 
    //如果执行的是 select 查询语句 则执行的结果results是数组格式
    console.log(results);
})

4.3.2 插入数据

//向users中新增一条数据 username为Splider-man password的值为pcc123
let user = {
    username: 'Splider-man',
    password: 'pcc123'
}
//定义待执行的sql语句  ?表示占位符
const sqlStr = 'insert into users (username,password) values(?,?)'
//执行sql语句
db.query(sqlStr, [user.username, user.password], (err, results) => {
    if (err) return console.log(err.messagee);
    //如果执行的是 insert into插入语句 则results是一个对象
    //成功
    if (results.affectdRows === 1) {
        console.log('插入数据成功', results);
    }
})

4.3.3 插入数据的便捷方法

const user = {
    username: 'Splider-man2',
    password: 'pcc4321'
}
//定义待执行的sql语句
const sqlStr = 'insert into users set ?'
//执行sql语句
db.query(sqlStr, user, (err, results) => {
    if (err) return console.log('err', err.message);
    //插入成功
    if (results.affectedRows === 1) {
        console.log('插入数据成功');
    }
})

4.3.4 更新数据

定义要更新的数据对象
const user = {
    id: 6,
    username: 'aaa',
    password: '000'
}
//定义sql语句
const sqlStr = 'update users set username=?,password=? where id=?'
//执行sql语句
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
    if (err) return console.log('更新失败', err.message);
    //执行update语句之后  执行的结果 也是一个对象
    if (results.affectedRows === 1) {
        console.log('更新成功');
    }
})

4.3.5 更新数据的便捷方式

const user = {
    id: 6,
    username: 'aaaa',
    password: '0000'
}
//定义sql语句
const sqlStr = 'update users set ? where id=?'
//执行sql语句
db.query(sqlStr, [user, user.id], (err, results) => {
    if (err) return console.log('更新失败', err.message);
    //执行update语句之后  执行的结果 也是一个对象
    if (results.affectedRows === 1) {
        console.log('更新成功');
    }
})

4.3.6 删除数据

const sqlStr = 'delete from users where id=?'
//执行sql语句
//如果有多个占位符 必须用数组包含
//如果只有一个  可以省去
db.query(sqlStr, 5, (err, results) => {
    if (err) return console.log(err.message);
    //执行delete  结果也是一个对象
    if (results.affectedRows === 1) {
        console.log('删除成功');
    }
})

4.3.7 标记删除

在这里插入图片描述

const sqrStr = 'update users set status=? where id=?'
//执行sql语句
db.query(sqrStr, [1, 6], (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows === 1) {
        console.log('标记删除成功');
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值