MySQL数据库
一,数据演变史
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1 ,单独的文本文件 没有固定的存放位置和格式 文件名:user.txt userinfo.txt data.txt 数据格式:jason| 123 tony~ 123 kevin$ 123 """程序之间无法兼容""" 2 ,软件开发目录规范 规定文件名和存储位置 """文件查找变的简单了 并没有解决和核心问题""" 3 ,数据阶段 规定文件名和存储位置和数据格式 """目前正在使用的阶段 解决了核心问题""" |
二,数据存储发展史
1 2 3 4 5 6 7 8 | 1 ,单级游戏阶段 数据各自保存在各自的计算机上 无法实现共享 2 ,多机游戏阶段 数据统一保存在某个固定的服务器(计算机) 实现共享 前提:必须有网络 """为了数据安全 还会采用集群策略来分担风险""" |
三,数据库的本质
1 2 3 4 5 6 7 8 9 10 11 | 本质也是一款cs架构的软件 既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件 在目前地球上很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件 """ 数据库在狭义层面上来说 指的是处理数据的底层程序 数据库在广义层面来说 指的是操作这些底层程序的便携应用软件 其实学习数据库很多时候学习的是配套的数据库软件 """ |
四,数据库的分类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 市面有很多数据库软件 但是大致就分为两类 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 |
五,SQL与NOSQL的由来
1 2 3 4 5 | 数据库的服务端为了能够兼容不同类型的客户端实现数据交互 所以规定了统一的交互方式 关系型数据库>>>:SQL语句 非关系型数据库>>>:NoSQL语句 # NoSQL有时候也表示 非关系型数据库 |
六,MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1. 主要版本 5.6 :使用频率较高的版本 5.7 :目前正在过渡的版本 8.0 :目前最新的版本 """不同的版本主要区别在于底层的逻辑 SQL语句几乎是一模一样的""" # 学习阶段可以使用5.6的版本(如果已经下载了其他版本也没问题) 2. 软件下载 mac:https: / / www.cnblogs.com / Dominic - Ji / articles / 15402755.html linux:博客置顶文章 windows:瞪大眼睛看 访问官网:https: / / www.mysql.com / 具体步骤: DOWNLOADS MySQL Community (GPL) Downloads MySQL Community Server Archives 选择版本下载压缩包(客服端 服务端) 3. 目录介绍 bin 文件夹 mysqld.exe 服务端 mysql.exe 客服端 data文件夹 存储使用过程中需要保存的数据 my - default.ini 配置文件 redadme 说明文件 4. 基本使用 # 一定要先启动服务端再启动客户端 """前期在操作的时候最好使用管理员cmd操作""" 1. 环境变量的配置 2. 直接输入mysqld启动服务端(当前cmd窗口不要关闭) 3. 开设一个新的cmd窗口操作客户端 mysql # 游客模式登陆 mysql - u用户名 - p密码 # 账号登录(本地使用) mysql - hIP地址 - P端口号 - u用户名 - p密码 # 完整命令 """第一次登录 root用户没有密码 直接连续回车即可""" |
七,系统服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 将MySQL的服务端制作成系统服务 开机自启动 关机自关闭 1 ,先关闭之前的服务器 2 ,查看当前计算机系统服务列表 services.msc 3 ,以管理员身份运行cmd并制作系统服务 mysqld - - install # 仅仅是添加到了系统服务 第一次需要手动启动 4 ,启动服务 方式一:鼠标右键选择启动即可 方式二:命令行方式启动 net start mysql """ 停止服务 net stop mysql 移除系统服务 mysql --remove """ |
八,密码相关
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # 针对管理员用户需要设置密码 方式 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. 使用修改之后的密码登录 |
基本SQL语句
1 2 3 4 5 6 7 8 9 10 | “SQL语句的结束必须使用分号” 1 ,如何查看所有的数据库名称 show databases; 2 ,如何查看所有的表名称 use 库名 # 切换库 show tables; 3 ,如何查看所有的记录 select * from 表明; 如果内容较多展示补全出现错乱的情况 可以在语句后面加 / G |
针对库的SQL语句
1 2 3 4 5 6 7 8 9 | 增: create database 数据库名; 查: show databases; # 查看所有库名 show create database 数据库名; # 定向查看某个库 改(改的字符编码) alter database 数据库名 charset = ‘gbk’; 删 drop database 数据库名; |
针对表的SQL语句
1 2 3 4 5 6 7 8 9 10 11 12 | 增 create table 表明(字段名 1 字段类型 1 ,字段名 2 字段类型 2 ) 查 show tables show create table 表名; # 指定表的信息 describe 表名; 查看表的具体信息, 常用简写 desc 表名; 改 alter table t1 rename ttt; # 修改表名 alter table ttt change id nid int ; # 修改字段名和类型 alter table ttt modify nid char( 4 ); # 修改字段类型 删 drop table 表名; |
正对记录的操作
1 2 3 4 5 6 7 8 9 | 增 insert into 表名 values(数据,数据,数据); # 单条数据 insert into 表名 values (),(),(); # 多条数据 查 select * from 表名; “查询表中所有的数据” 改 updata 表名 set 字段名 = '新数据' where 筛选条件; 删 dalete from 表名 where 筛选条件; |
字符编码问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 查看MySQL内部默认的编码情况 / s """MySQL默认的配置文件》》》:mydefault.ini""" 1 ,拷贝默认的配置文件并且重新命名为 my.ini 2 ,拷贝固定的配置信息 [mysqld] character - set - server = utf8 collation - server = utf8_general_ci [client] default - character - set = utf8 [mysql] default - character - set = utf8 3 ,重启MySQL服务器 # 在管理员模式下 net stop mysql net start mysql |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现