今日内容概要
- 数据演变史
- 数据库软件的本质
- MySQL简介
- 下载与安装
- 基本配置
- 基本SQL语句
内容详细
1.数据演变史
没有固定的存放位置和格式
文件名:user.txt userinfo.txt data.txt
数据格式:jason|123 tony~123 kevin$123
"""程序彼此之间无法兼容"""
规定了文件名和存储位置
"""文件的查找变得简单了 但并没有解决核心问题"""
规定了文件的存储位置和数据格式
"""目前正在使用的阶段 解决了核心问题"""
2.数据存储发展史
数据各自保存在各自的计算机上 无法实现共享
数据统一保存在某个固定的服务器上(计算机) 实现数据共享
前提:必须有网络
'''为了数据的安全 还会采用集群策略来分担风险'''
3.数据库的本质
该程序的基本流程就是客户端提交命令给服务端运行,然后服务端将结果返回给客户端,所以说白了数据库管理软件如mysql本质就是一个远程执行命令的套接字程序,数据库管理软件提供的这套命令称之为sql
既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件
在目前地球上有很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件
"""
数据库在狭义层面上来说
指的是处理数据的底层程序
数据库在广义层面上来说
指的是操作这些底层程序的便捷应用软件
其实学习数据库很多时候学习的是配套的数据库软件
"""
4.数据库的分类(重点)
1.关系型数据库
MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
MySQL:开源免费 使用非常规范
Oracle:收费 维护成本高 大型公司可能会使用
PostgreSQL:支持二次开发
MariaDB:MySQL的替代产品(并且有自己的特性)
sqlite:小型数据库(django框架自带该数据库)
2.非关系型数据库
Redis、mongoDB、memcache
Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
mongoDB:文档型数据库 可以用在大数据和爬虫领域
memcache:已经被redis淘汰
"""
1.两类数据库的区别
关系型数据库
拥有固定的表结构 并且表与表之间可以建立代码层面的关系
非关系型数据库
没有固定的表结构 数据存储采用的是K:V键值对的形式
2.这么多数据库如何学习
两大类数据库操作逻辑基本一致 每一类学习一个基本就可以掌握所有
关系型学MySQL
非关系型学redis、mongodb
"""

5.SQL与NoSQL的由来
所以规定了统一的交互方式:
关系型数据库>>>:SQL语句
非关系型数据库>>>:NoSQL语句
"""NoSQL有时候也表示 非关系型数据库"""
6.MySQL下载
5.6:使用频率较高的版本
5.7:目前正在过渡的版本
8.0:目前最新的版本
"""
不同的版本主要区别在于底层的逻辑 SQL语句几乎是一模一样的
学习阶段可以使用 5.6的版本(如果已经下载了其他版本也没问题)
"""
mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
linux:博客置顶文章
windows:
01 官网:https://www.mysql.com/
02 点击页面 DOWNLOADS
03 下拉页面 找到并点击 MySQL Community (GPL) Downloads
04 找到 MySQL Community Server
05 点击 Archives 选择版本下载压缩包(客服端 服务端)





7.基本使用
bin文件夹
mysqld.exe 服务端
mysql.exe 客服端
data文件夹
存储使用过程中需要保存的数据
my-default.ini
配置文件
redadme
说明文件
"""
一定要先启动服务端再启动客户端
前期在操作的时候最好使用管理员cmd操作
"""
1.环境变量的配置
2.直接输入 mysqld 启动服务端(当前cmd窗口不要关闭 充当服务端)
"""
如果首次启动报错:
由于找不到MSVCR100.dll,无法继续执行代码。...
到官网下载对应缺失的文件:
https://cn.dll-files.com/
下载完成后是压缩包形式
解压文件到目录:
C:\Windows\System32
一般缺少的文件有两个 分别下载两个即可:
MSVCR100.dll MSVCP100.dll
"""
3.开设一个新的cmd窗口操作客户端
输入 mysql
输入 mysql -u用户名 -p密码
输入 mysql -hIP地址 -P端口号 -u用户名 -p密码
"""第一次登录 root用户没有密码 直接连续回车即可"""

8.系统服务
1.先关闭之前的服务端
2.查看当前计算机系统服务列表
services.msc
3.以管理员身份运行cmd并制作系统服务
输入 mysqld --install
4.启动服务
方式1:鼠标右键选择启动即可
方式2:命令行方式启动
net start mysql
"""
停止服务:
net stop mysql
移除系统服务
mysqld --remove
"""

9.密码相关(了解)
方式1:直接在cmd窗口内使用mysqladmin命令
mysqladmin -uroot -p原密码 password 新密码
eg:
mysqladmin -uroot -p password 123
mysqladmin -uroot -p123 password 666
方式2:直接在登录状态下修改当前登录用户的密码
set password=PASSWORD('密码')
方式1:前期数据库里面也没有数据 干脆重来!!!
方式2:稍作了解
1.关闭服务端
2.以跳过授权表的方式重新启动服务端
只需要提供用户名就可以登录
mysqld --skip-grant-tables
3.以管理员身份登录
mysql -uroot -p
4.修改管理员用户密码
update mysql.user set password=password(123) where user="root" and host="localhost";
5.关闭服务端再正常启动
ctrl + C
net start mysql
6.使用修改之后的密码登录
10.重要概念介绍
事物的状态
文件夹里面的文件里面的一行行内容
文件夹里面的文件
文件夹
管理数据的套接字软件,CS架构
运行有DBMS服务端的计算机,该计算机对内存和硬盘要求都相对较高
11.基本SQL语句
"""SQL语句的结束必须使用分号!!!"""
show databases;
use 库名;
show tables;
select * from 表名;
如果内容较多展示补全出现错乱的情况 可以在语句后面加\G

12.针对库的SQL语句
"""辛辛苦苦一个月 换来的就是一条SQL语句"""
create database 数据库名;
show databases;
show create database 数据库名;
alter database 数据库名 charset='gbk';
drop database 数据库名;

13.针对表的SQL语句
"""
要想操作表必须得先有库
1.先创建库
create database db1;
2.查看当前所在的库名
select database();
3.切换库
use bd1;
"""
create table 表名(字段名1 字段类型1,字段2 字段类型2);
show tables;
show create table 表名;
describe 表名;
alter table 原表名 rename 新表名;
alter table 表名 change 原字段名 新字段名 新类型;
alter table 表名 modify 字段名 新字段类型;
drop table 表名;

14.针对记录的操作
"""
得先确定库和表
"""
insert into 表名 values(数据,数据,数据);
insert into 表名 values(),(),();
select * from 表名;
update 表名 set 字段名='新数据' where 筛选条件;
delete from 表名 where 筛选条件;

15.字符编码问题
\s
1.拷贝默认的配置文件并且重新命名为my.ini
2.清空my.ini文件信息并拷贝固定的配置信息
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.重启MySQL服务端
cmd窗口 执行:
net stop mysql
net start mysql

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构