没有固定的存放位置:C:\a.txt D:\aaa\c.txt F:\bbb\b.txt
没有固定的数据格式: owen|111 tony$321 kevin~123
'''没有统一的标准,程序彼此无法兼容'''
按照文件功能的不同规定了相应的位置
'''
文件查找统一,但是没有解决格式的问题
'''
将数据处理部分统一
数据各自保存在各自的计算机上 无法实现远程共享
优点:'''无需互联网'''
数据统一基于网络保存到某个固定的服务器上 实现数据共享,但是必须要有互联网
"""
集群
如果所有的数据全部存储到一台远程服务器上
那么数据的安全性降低 服务器的压力上升
所以增加远程服务器的数量 数据同步保存 任务均匀分担
具有相同功能的多个服务器组合到一起 就可以称之为是集群
"""
"""
数据库在微观层面就像运行在计算机上专门处理数据的进程(程序)
eg:内存中的typora代码
数据库在宏观层面就像提供给操作者一个简单快捷的操作进程的软件
eg:typora界面
我们平时说的数据库大部分指的是操作数据库的应用软件
"""
既然数据库本质是一款CS架构的软件,那会网络编程的程序员就可以编写一款数据库软件
1、有固定的的表结构(最主要的特征)
eg:有固定字段的excel表格 id name gender
2、表与表之间可以建立代码层面的关系
eg:用户表与房屋表
用户想要买房子, 那么用户数据和房屋数据就应该有关系,便于查看
MyQSL : 关系数据库的代表,开源免费 使用频率极高
Oracle : 安全性极高 但是使用维护收费使用成本高
PostgreSQL : 支持二次开发(扩展功能)
MairaDB : 和MySQL为同一个作者,起初只是怕MySQL收费
sqlite : 小型数据库 携带方便但功能较少,主要用于本地测试使用
sql 、server : 老牌数据软件
1、没有固定的表结构,数据存取采取K:V键值对的形式(主要特征)
{'name':'owen'}
{'username':'owen', 'pwd':123}
2、表与表之间无法建立代码层面的关系
Redis : 目前最火的非关系型数据库,数据类型丰富,功能强大
MongoDB : 最像关系型数据库的非关系数据库,用于爬虫和大数据
Memvache : 现在不用了
"""
数据库服务端支持很多的客户端来链接使用
数据库自带的客户端 Python代码编写的 Java代码编写...所以很多语言
想要让服务端兼容诸多客户端 实现正常交互
1、让服务端识别并自动切换对应语言
2、统一的标准规范
比较之下方式二更加合理:SQL语句和NoSQL语句
SQL语句:
与关系型数据库交互的语言
NoSQL语句:
与非关系型数据库交互的语言
"""
SQL有时候用来标识关系型数据库, 有时候标识SQL语句
NoSQL有时候用来标识非关系型数据库,有时候表示NoSQL语句
5.6X :使用最为广泛的稳定版本
5.7x :目前正在逐步过渡使用的版本
8.0x :最新版本,暂时不投入正常生产的环境使用
官网:https://www.mysql.com/
1.点击步骤:
downloads
(GPL) Downloads
MySQL Community Server
Archives
选择版本和系统(以5.6.49为例)
点击下载对应的zip压缩包即可
mac和linux参考下列博客
https://www.cnblogs.com/Dominic-Ji/p/15124625.html
https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
2.解压处理
建议压缩到D或者E、F盘的根目录方便查找
mysql-5.6.44-winx64.zip >>> mysql-5.6.44-winx64
bin文件夹
mysqld.exe 服务端
mysql.exe 客户端
'''学习阶段服务端在本地启动即可'''
data文件夹 存放数据
my-default.ini文件 默认配置文件
README文件 说明书

必须要先启动服务端 再启动客户端链接
以F:\mysql-5.6.49-winx64为例
1.以管理员身份运行cmd
切换到bin路径下
F:
cd mysql-5.6.49-winx64
cd bin
2.启动服务端
mysqld
3.启动客户端链接服务端
先切换到bin路径下
F:
cd mysql-5.6.49-winx64
cd bin
然后直接输入mysql即可登录服务端
'''不带用户名和密码 是游客模式(只能体验基本功能)'''
"""
启动服务端的时候 有可能会报错
解决策略
拷贝报错信息 百度搜索
mysql启动报错'错误代码'
"""
将F:\mysql-5.6.44-winx64\bin添加到系统环境变量
1.先确保之前测试的服务端关闭(直接点击关闭即可)
2.重新以管理员的身份打开cmd窗口
mysqld --install
3.初次启动需要人为干预
net start mysql
4.关闭所有的cmd 随意打开一个cmd窗口
输入mysql即可链接到服务端
"""
如果想要移除系统服务
1.先停止服务端
管理员身份运行cmd
net stop mysql
2.移除系统服务
mysqld --remove
"""

1、直接输入mysql登录
默认为游客模式 没有太多操作的权限
2、使用用户名和密码的方式登录
前期直接使用root用户
mysql -u用户名 -p密码
mysql -uroot -p 直接回车
提示输入密码
3、修改管理员密码
方式一:
在cmd窗口下直接修改(不要登录进去)
mysqladmin -u用户名 -p原密码 password 新密码
'''第一次无密码修改 -p后面不写即可'''
eg: mysqladmin -uroot -padmin123 password jason123
方式二:
登录状态下修改当前用户密码(先登录)
set password=PASSWORD('新密码');
"""
如何区分当前是否是游客模式
可以执行show database;
结果如果是两条 表示是游客
结果如果是四条及以上 表示是用户
"""

库 —————— 文件夹
表 —————— 文件
记录 —————— 文件里面的一行数据
"""
show databases; 查看所有的库名称
类似于查看data文件夹内文件夹的名称
"""

show databases;
show create database 库名;
create database 库名;
alter database 库名 charset='utf8';
drop database 库名;

"""
表是存放在库下面的,所以操作表之前应该先确定是在那个库
select database();
结果如果是NULL就是当时没有切换到任何库下面
切换指定库下
use 库名;
在操作时,MySQL默认自带的都不要动
"""
create database 库名;
use 库名;
show tables;
show create table 表名;
describe 表名;
create table 表名(
字段名称1 字段类型1,
字段名称2 字典类型2
);
alter table 表名 rename 新表名;
drop table 表名;

'''
想操作记录, 就得先有库和表
'''
select * from 表名;
select * from 库名.表名;
"""
当表里面的字段太多,展示乱时,使用:
select * from 库名.表名\G;
"""
select 指定字段 from 库名.表名;
insert into 表名 values(值1,值2);
insert into 表名 values(值1,值2),(值3,值4);
update 表名 set 字段=新值 where 筛选条件;
eg:
update tt1 set name='lswyyds' where id=3;
delete from 表名 where 筛选条件;
eg:
delete from tt1 where id=3;
'''
如果不加筛选条件就是删除所有的数据
'''

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?