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

2022.5.3数据库与MySQL的下载使用

2022.5.3数据库与MySQL的下载使用数据演变史存取(数据库应用)发展史数据库本质数据库分类SQL与NoSQLMySQL简介及下载与安装MySQL系统服务制作MySQL数据库

2022.5.3数据库与MySQL的下载使用

  • 数据演变史

  • 存取(数据库应用)发展史

  • 数据库本质

  • 数据库分类

  • SQL与NoSQL

  • MySQL简介及下载与安装

  • MySQL系统服务制作

  • MySQL数据库重要概念

  • 基本SQL语句


一、数据演变史


1、单独的文本文件

特点:

(1)没有固定的存放位置:C:\a.txt, D:\aaa\c.txt, F:\bbb\b.txt...

(2)没有固定的数据格式:jason|123, tony$123, kevin~123...


2、软件开发目录规范

按照文件功能的不同规定了相应的位置,使文件查找变得统一,但是没有解决格式问题...


3、数据库应用

解决了存放位置和数据格式问题,数据处理部分统一起来


二、数据库应用发展史


1、单机游戏阶段

数据各自保存在各自的计算机上,无法实现远程共享,但是无序互联网


2、多机游戏阶段

数据统一基于网络保存到某个固定的服务器上,实现数据共享,但是必须要有互联网

集群:
如果所有的数据全部存储到一台远程服务器上,那么数据的安全性降低,服务器的压力上升,所以增加远程服务器的数量,数据同步保存,任务均匀分担,具有相同功能的多个服务器组合到一起,就可以称之为是“集群”。

三、数据库本质


微观层面:

运行在计算机上专门处理数据的进程(程序)


eg:内存中的typora代码



宏观层面:

提供给操作者一个简单快捷的操作进程的软件


屏幕上typora界面


ps:我们平时说的数据库大部分是指操作数据库的应用软件


数据库软件的本质:

# 数据库软件的本质其实也是一款CS架构的软件
既然数据库本质是一款CS架构的软件,也就意味着我们每个会网络编程的程序员理论上来说都可以编写出来一款数据库软件;
在目前地球上有很多厉害的程序员,他们就具备编写数据库软件的能力,所以现在市面上其实存在很多数据库软件。

四、数据库分类


1、关系型数据库


特点:

(1)有固定的表结构(最主要的特征)


eg:有固定字段的excel表格(id,name,gender...)


(2)表与表之间可以建立代码层面的关系


eg:用户表与房屋表,用户买房,那么用户数据和房屋数据就应该有关系



常见数据库名称:

























MySQLOraclePostgreSQLMariaDBsqlitesqlserver
关系型数据库的代表,开源免费,使用频率极高安全性极高,但是使用和维护收费,使用成本高支持二次开发(自己嫁接、扩展功能)与MySQL是同一个创始人,开发初中是作为MySQL的替代品小型数据库,携带方便但功能较少,主要用于本地测试使用老牌数据库软件,目前主流不用老牌数据库软件,目前主流不用

2、非关系型数据库


特点:

(1)没有固定的表结构,数据存取采用K:V键值对的形式(最主要的特征)


{'name':'jason'},{'username':'jason','pwd':123}


(2)表与表之间无法建立代码层面的关系


常见数据库名称:

















RedisMongoDBMemcache
目前最火的非关系型数据库,数据类型丰富,功能强大最像关系型数据库的非关系型数据库,主要用于爬虫和大数据被redis所取代

疑问:诸多数据库软件,如何学习?

两大类数据库的操作方式几乎一致,学完一个其他都很容易上手!

eg:

学习了MySQL,那么学其他关系型数据库很简单;

学习了redis,那么学其他非关系型数据也很简单。


五、SQL与NoSQL

数据库服务端支持多客户端链接使用,数据库自带的客户端、python代码编写的,java代码编写的...那么如何让服务端兼容诸多客户端从而实现正常交互呢?


方式1:让服务端识别并自动切换对应语言



方式2:统一沟通标准


相较之下方式2更加合理>>>即SQL语句与NoSQL语句


SQL语句:与关系型数据库交互的语言



NoSQL语句:与非关系型数据库交互的语言


SQL有时候用来表示关系型数据库,有时候表示SQL语句;NoSQL有时候用来表示非关系型数据库,有时候表示NoSQL语句


六、MySQL简介及下载与安装


1、版本问题

5.6X:使用最为广泛的稳定版本

5.7X:目前正在逐步过度使用的版本

8.0X:最新版本,暂时不投入正常生产环境使用(好用)


2、下载使用

官网:https://www.mysql.com/

# 官网下载步骤:
downloads
(GPL) Downloads
MySQL Community Server
Archives
选择版本和系统(以5.6.44为例)
点击下载对应的zip压缩包即可
# 解压处理
解压至除C盘以外的盘符,根目录以便查找
mysql-5.6.44-winx64.zip >>> mysql-5.6.44-winx64
# 目录结构
bin文件夹
>> mysqld.exe 服务端
>> mysql.exe 客户端
'''学习阶段服务端在本地启动即可'''
data文件夹 存放数据
my-default.ini文件 默认配置文件
README文件 说明书

ps:讲解以windows为基准 mac和linux参考下列博客


linux:

https://www.cnblogs.com/Dominic-Ji/p/15124625.html


mac:

https://www.cnblogs.com/Dominic-Ji/articles/15402755.html


3、基本使用

注意:必须要先启动服务端,再启动客户端链接

以D:\mysql-5.6.44-winx64为例

1.以管理员身份运行cmd
切换到bin路径下
D:
cd mysql-5.6.44-winx64\bin
2.启动服务端
mysqld
# 维持cmd窗口不要关闭 重新打开一个新的cmd窗口
3.启动客户端链接服务端
先切换到bin路径下
D:
cd mysql-5.6.44-winx64\bin
# 然后直接输入mysql即可登录服务端
注意:可以把bin路径直接添加到环境变量,然后直接输入mysqld即可启动服务端,输入mysql启动客户端
'''不带用户名和密码 是游客模式(只能体验基本功能)'''
# 报错情况:启动服务端的时候 有些同学的电脑可能会报错
解决策略:
拷贝报错信息,百度搜索>>>mysql启动报错+错误代码
eg:一般情况下是系统C盘下的windows文件下system32文件夹下缺失或者需要更换一些文件,如msvcr100.dll,msvcp100.dll

七、MySQL系统服务制作


1、添加环境变量

好处:cmd窗口可直接输入mysqld或mysql打开服务端或者客户端

将D:\mysql-5.6.44-winx64\bin添加到系统环境变量
此电脑>>>属性>>>高级系统设置>>>高级>>>环境变量>>>系统变量中双击Path>>>新建>>>粘贴bin路径>>>确定

2、设置服务端开机自启动

# 设置开机自启动
1.先确保之前测试的服务端关闭(直接点击关闭即可)
2.重新以管理员的身份打开cmd窗口 # 注意必须在打开cmd窗口时使用管理员身份,否则会报错:Install/Remove of the Service Denied!
mysqld --install
# 结果显示: Service successfully installed.
3.初次启动需要人为干预
net start mysql
4.关闭所有的cmd 随意打开一个cmd窗口
输入mysql即可链接到服务端

# 关闭开机自启动,即移除系统服务
1.打开cmd窗口
2.先停止服务端
net stop mysql 管理员身份运行cmd
# MySQL 服务已成功停止。
3.移除系统服务
mysqld --remove
# Service successfully removed.

3、修改密码

1.直接输入mysql登录:
默认是游客模式,没有太多操作的权限
"""
如何区分当前是否是游客模式?
登陆后可以执行show database;
结果如果是两条 表示是游客
结果如果是四条及以上 表示是用户
"""
2.使用用户名和密码的方式登录
mysql -u用户名 -p密码
# 学习阶段暂不考虑用户管理,直接使用root用户(管理员账号)
mysql -uroot -p # 直接回车,先不输入密码,可以密码输入
Enter password: ********
3.修改管理员密码
(1)在cmd窗口下直接修改(不要登录进去)
mysqladmin -u用户名 -p原密码 password 新密码
eg:mysqladmin -uroot -padmin123 password jason123
# Warning: Using a password on the command line interface can be insecure.提示在命令行界面上使用密码可能不安全
'''第一次无密码修改 -p后面不写即可'''
(2)登录状态下修改当前用户密码(初次登录或者已密码登录)
set password = PASSWORD('新密码'); # 最新版不支持
eg:set password = PASSWORD('jason123')

八、重要概念

库 类似于>>> 文件夹
表 类似于>>> 文件
记录 类似于>>> 文件中一行行数据
"""
show databases; 查看所有的库名称
类似于查看data文件夹内文件夹的名称
"""
# SQL语句使用分号作为结束符

九、基本SQL语句操作


1、操作库的基本SQL语句

# 查
show databases; # 查看所有的库名称
show create database 库名 # 指定查看某个库的信息

# 增
create database 库名; # 创建新的库

# 改
alter database 库名 charset='utf8'; # 修改库的字符编码

# 删
drop database 库名;
'''进入公司 每个账号都会有权限管理 不可能轻易做到'''

# 切换到指定库
use 库名;

2、操作表的基本SQL语句

表是存放于库下面的,所以操作表之前,应该先确定库如何查看当前在哪个库下:


select database();

结果如果是null则表示当前没有切换到任何库下


切换到指定库:


use 库名;


注意:强调我们在操作库、表、记录的时候,MySQL默认自带的都不要动

# 查
show tables # 查看当前库下所有的表名称
show create table 表名; # 指定查看某个表的信息
describe 表名; # 指定查看表的详细信息,简写:desc 表名;

# 增
create table 表名(字段名称1 字段类型2,字段名称2 字段类型2);

# 改
alter table 表名 rename 新表名; # 修改表名

# 删
drop table 表名; # 指定删除某表

3、操作记录的基本SQL语句

要操作记录,首先得有库和表

# 查
select * from 表名; # 查看表里面的所有数据
select * from 库名.表名; # 查看指定库下面的指定表的所有数据

select * from 表名\G; # 逐行展示表的信息

select Host,User from mysql.user # 查看指定字段

# 增
insert into 表名 values(值1,值2); # 增加单条数据
insert into 表名 values(值1,值2),(值3,值4); # 增加多条数据

# 改
update 表名 set 字段=新值 where 筛选条件;
eg: update t1 set name='jason' where id=1; # 将id是1的数据中name字段对应的值改成jason

# 删
delete from 表名 where 筛选条件;
eg: delete from t1 where id=3;
# 如果不加筛选条件就是删除所有的数据
delete from t1;


推荐阅读
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • 本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • Redis: 高效的键值存储系统
    Redis是一款遵循BSD许可的开源高性能键值存储系统,它不仅支持多种数据类型的存储,还提供了数据持久化和复制等功能,显著区别于其他键值缓存解决方案。 ... [详细]
  • 解析 HTTP 头 'Vary: Accept-Encoding' 的作用与重要性
    本文详细探讨了 'Vary: Accept-Encoding' HTTP 头的作用,即指导缓存系统(如代理服务器和 CDN)根据不同的编码需求存储和提供适当的资源版本,确保不同类型的客户端能够接收到适合自己的内容。 ... [详细]
  • VS Code 中 .vscode 文件夹配置详解
    本文介绍了 VS Code 中 .vscode 文件夹下的配置文件及其作用,包括常用的预定义变量和三个关键配置文件:launch.json、tasks.json 和 c_cpp_properties.json。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • Python中调用Java代码的方法与实践
    本文探讨了如何在Python环境中集成并调用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社区 版权所有