热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【2022.8.12】MySQL数据库(1)

今日内容概要主体:数据库(入门核心)数据存取演变史数据库软件应用史数据库的本质数据库的分类MySQL数据库基本使用系统服务制作基本SQL语句今日内容详细数据存取演变史1.文本文件文

文章目录[隐藏]

  • 今日内容概要
  • 今日内容详细
    • 数据存取演变史
    • 数据库软件应用史
    • 数据库的本质
    • 数据库的分类
    • MySQL简介
    • 基本使用
    • 系统服务制作
    • 密码相关操作
    • SQL 与 NOSQL
    • 数据库重要概念(帮助理解 不完全准确)
    • 针对库的基本SQL语句
    • 针对表的基本SQL语句
    • 针对记录的基本SQL语句


今日内容概要

主体:数据库(入门核心)

  • 数据存取演变史
  • 数据库软件应用史
  • 数据库的本质
  • 数据库的分类
  • MySQL数据库
  • 基本使用
  • 系统服务制作
  • 基本SQL语句

今日内容详细

数据存取演变史

  • 1.文本文件
    • 文件存取路径不一致:C:/a.txt D:/b.txt E:/user/c.txt
    • 数据格式也不一致:jason|123 tony$123
  • 2.软件开发目录规范
    • 规定了数据文件的大致存取位置:db文件夹下
    • 但是数据格式还做不到统计统一:统一用了json文件 但是内部键值对不同
  • 3.数据库服务
    • 统一了存取位置 也统一了数据格式(做到了完全统一 兼容性也做到了最好)

数据库软件应用史

  • 1.单机游戏

    • 不同计算机上的相同程序 数据无法做到共享
      • 只能基于本机计算机上面去存档 数据库服务只能在本地完成
  • 2.网络游戏

    • 不同计算机上的相同程序 数据可以共享
      • 数据库服务单独在网络架设(远程数据库服务)
  • 拓展:

    • 远程数据库服务
    • 数据库集群
      • 问题 1. 数据安全性问题
      • 问题 2. 服务器负载问题
    • 解决方式:
      • 让多台服务器运行相同的数据库服务

数据库的本质

  • 数据库在不同角度下描述的意思:

  • 1.在底层原理的角度:

    • 数据库指的是专门用于操作数据的过程
      • 如同 运行在内存中的代码
  • 2.在现实应用的角度

    • 数据库指的是拥有操作界面的应用程序
      • 如同 用于操作进程的界面
  • 在不做特殊说明的情况下:

    • 提起数据库 一般都在指数据库软件
    • 数据库软件本质是一款CS架构的应用程序
    • 言外之意所有的程序员理论上都可以编写>>>: 包括市面上已经有很多的数据库软件

数据库的分类

  • 1.关系型数据库

    • (1)数据的组织方式有明确的表结构

      • 表内有数据标注 类似:id name password...
      • 关系型数据库存取数据的方式可以看成是表格
    • (2)表与表之间可以建立数据库层面的关系

      • 用户表 房屋表
      • 只要获取到用户表的一条数据 就可以获取到与之相关的其他表数据
    • (3)关系型数据库软件:

      • MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、sql server
      • MySQL: 开源 使用最为广泛 数据库学习必学
      • PostgreSQL: 开源 支持二次开发
      • MariaDB: 开源 与MySQL是同一个作者 用法也极其相似
      • Oracle: 收费 安全性极高 主要用于银行及各大重要机关
      • sqlite: 小型数据库 主要用于本地测试(django框架自带该数据库)
  • 2.非关系型数据库

    • (1)数据的组织方式没有明确的表结构 是以K:V 键值对的形式组织的

      • 例如: {'name':'make','pwd':123}
    • (2)数据之间无法直接建立数据库层面的关系

      • redis:目前最火 使用频率最高的缓存型数据库
      • mongoDB:稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
      • memcache:已经被redis淘汰

MySQL简介

  • 1.MySQL版本介绍:

    • 5.6X:前几年使用频率最高的版本
    • 5.7X:最近尝试迁移的版本(频率+)
    • 8.0X:最新版 功能很强大 但是线上环境几乎不用(本地自己用非常好用)
  • 版本虽然有区别 但是操作上几乎没有区别 主要是提现在底层的运作

  • 2.下载与安装

  • 顺序 操作
    1: 访问官网
    2: 点击DOWNLOADS
    3: 点击GPL
    4: 点击Community Server
    5: 点击Archives
    6: 点击Download
  • 3.解压安装

    • 上述方式下载的压缩包里含有服务端和客户端 支持本地操作
  • 4.主要文件介绍

【2022.8.12】MySQL数据库(1)

基本使用

  • 1.先启动服务端
    • 可能会报错:拷贝关键信息去百度
  • 2.查找MySQL文件位置
    • mysqld
    • cmd窗口就是服务端 不要随意关闭
  • 3.再次开启新的cmd窗口
    • mysql
    • 直接回车会以游客模式进入 功能很少
  • 4.用户名和密码登录
    • mysql -u用户名 -q密码
    • mysql默认管理员账号 用户名是root 密码是空
  • 5.退出:命令
    • quit
    • exit

系统服务制作

1.如何解决每次都需要切换路径查找文件的缺陷
	添加环境变量
2.将mysql服务端制作成系统服务(随着计算机的开启而启动 关闭而结束)
	1.以管理员身份打开cmd窗口
  	2.执行系统服务命令
    	mysqld --install
	3.启动服务端
    	1.右键直接点击启动
		2.命令启动
        	net start mysql
"""
1.查看系统服务的命令
	services.msc
2.关闭mysql服务端
	net stop mysql
3.移除系统服务
	1.先确保服务已经关闭
	2.执行移除命令
	    mysqld --remove
"""

密码相关操作

  • 1.修改密码:
    • mysqladmin命令
      • 通用方式:直接在cmd窗口中写
        • mysqladmin -u用户名 -p原密码 password 新密码
        • 第一次修改:
          • mysqladmin -uroot -p -password 123
        • 第二次修改:
          • mysqladmin -uroot -p123 -password 666
        • 偏门方法:需要先登录>>>:set password=PASSWORD(新密码);
  • 2.忘记密码:
    • (1) 直接重新安装或者拷贝对应文件
    • (2) 先关闭服务端 然后以不需要校验用户身份的方式去启动 在修改 最后再安装 正常方式启动
      • 1.net stop mysql(先退出服务端)
      • 2.mysql --skip-grant-tables(用这种方式去启动 (不校验用户密码直接启动(比较危险 )))
      • 3.mysql -uroot -p(不关闭第2步窗口 在开一个cmd窗口 输入命令进入 )
      • 4.update mysql.user set password=password(123) where Host='localhost' and User='root';(修改密码)
      • 5.net stop mysql(关闭退出cmd窗口)
      • 6.net start mysql(然后再正常的启动就可以了)

SQL 与 NOSQL

  • 数据库的服务端支持各种语言充当客户端

    • 以MySQL服务端为例:mysql的客户端、python代码编写的客户端、java代码编写的客户端
    • 为了能够兼容所有类型的客户端 有两种策略
      • 1.服务端兼容
        • 这种方式 不合理 比较消耗数据库服务端资源 也比较麻烦
      • 2.制定统一标准
        • SQL语句 、NoSQL语句
  • SQL 与 NoSQL

    • SQL语句的意思是操作关系型数据库的语法

    • NoSQL语句的意思操作非关系型数据库的语法

  • 补充:SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库

数据库重要概念(帮助理解 不完全准确)

  • 库: 文件夹
  • 表: 文件夹里的文件

  • 记录: 文件里一行行的数据

  • 基于用户登录状态:

  • show databases; 查看所有的数据库

  • show tables; 查看数据库里所有的表

  • select * from mysql.user; 查看user表里面所有的记录

  • selcet * from mysql.user/G; 切换显示表现

  • 补充说明:

    • SQL语句结束符是分号(英文输入法) ;

    • 取消SQL语句的执行是:/c

针对库的基本SQL语句

方法 语句
cretae database 库名;
drop database 库名;
alter database 库名 charset='gbk';
show databases; 或者 show create database 库名;

针对表的基本SQL语句

  • 1.查看当前所在的库名:

    • selcet database();
      • 如果没有在任何的库下 默认会显示NULL(意思现在所在位置为data下的页面)
      • 切换库:use 库名;
  • 方法 语句
    create table 表名(字段名 字段类型 ,字段名字 段类型,字段名 字段类型 );
    drop table 表名;
    alter table 旧表名 rename 新表名;
    show tables; show create table 表名; describe 表名; desc 表名;

针对记录的基本SQL语句

  • 前提:
    • 既然想操作记录 那就必须先有 库 和 表
方法 语句
insert into 表名 values(数据,数据); insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
delete from 表名; # 删除表中的所有数据 delete from 表名 where 筛选条件; # 按照条件删除数据
update 表名 set 字段名=新数据 where 筛选条件;
select * from 表名; # 表示查看所有的字段 select 字段1,字段2, from 表名; # 选择查看指定字段信息

推荐阅读
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • 深入解析 Zend Guard 4 功能与配置
    本文旨在通过图文并茂的方式详细介绍 Zend Guard 4 的核心功能及其配置方法,特别适合英文阅读能力有限的技术人员。文中不仅提供了详细的步骤说明,还附带了实际操作中的注意事项,帮助读者更好地理解和应用这一工具。 ... [详细]
  • 本文提供了解决在尝试重置MySQL root用户密码时遇到连接失败问题的方法,包括停止MySQL服务、以安全模式启动MySQL、手动更新用户表中的密码等步骤。 ... [详细]
  • 了解如何有效清除远程桌面连接中的缓存记录,对于提升服务器安全性至关重要。本文将指导您完成这一过程。 ... [详细]
  • 重新审视Kubernetes的必要性
    近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
author-avatar
先人掌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有