数据库
存取数据的演变史
# 1.文本文件 没有规定文件路径与数据格式,所以文件路径与数据格式都不一致,不统一 -1.文件可能存到任何盘任何文件夹 C:\a.txt -2.数据之间的分割符也可以是多种特殊符号 jason|123 # 2.软件开发目录规范 -1.规定了数据文件的大致存储位置 db文件夹下 -2.但是数据格式也是没有统一 json文件内部的键值对 # 3.数据库服务 -1.统一了存取位置 也统一了数据格式(完全统一)
数据库软件应用史
# 1.单机数据 每个计算机上的应用就如同没有互联网一样,不能完成数据共享,数据库的服务都在本地完 # 2.联网数据 不同计算机上的相同程序之间可以数据共享,单独在网络上架设远程数据库服务 """ 关于远程数据库服务: 1.数据安全性问题 2.服务器负载问题 通过数据库集群解决,就是让多台服务器运行相同的数据库服务 """
数据库的本质
# 站在不同角度下的的理解 -1.站在底层原理的角度 * 数据库指的是专门用于操作数据进程的 运行内存中的代码 -2.站在现实应用的角度 * 数据库指的是拥有操作界面的应用程序 操作进程的界面 # 一般数据库默认指的是数据库软件 数据库的本质也是cs架构的应用程序(所有程序员都可以参与编写)
数据库的分类
# 关系型数据库 1.指的是是数据组织方式有明确的表结构 * 关系型数据库存取数据的方式可以看成是表格 id | name | pwd 2.表与表之间可以建立数据库层面的关系 * 只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据 用户表 >>> 房屋表 3.软件: MySQL 开源 使用最为广泛,数据库学习必学 PostgreSQL 开源 支持二次开发 MariaDB 开源 与mysql用法相似 Oracle 收费 安全性极高,主要用于银行及各大重要机关 sqlite 小型数据库 主要用于本地测试(django框架自带该数据库) db2、sql server 一些用的比较少的数据库 # 非关系型数据库 1.数据的组织方式是以k:v键值对的形式组织的 {'username':'kevin','pwd':123} 2.数据之间无法直接建立数据库层面的关系
可以自己编写代码建立逻辑层面的关系
3.软件:
redis 缓存型数据库 主流的热度很高
mongoDB: 稳定型数据库 主要用于爬虫、大数据 最像关系型
memcache: 缓存型数据库 已经被redis淘汰
MySQL简介
# 1.版本问题 8.0:最新版 5.7:使用频率较高 5.6:学习推荐使用 ps:站在开发的角度使用哪个版本学习都没有关系 # 2.下载流程 1.访问官网 2.点击DOWNLOADS并点击GPL 3.点击community server 4.点击Archives 5.选择对应系统的对应版本下载即可(zip压缩包) # 3.主要目录介绍 bin目录 : 存放启动文件 mysqld.exe(服务端) mysql.exe(客户端) data目录 : 存放核心数据 my-default.ini(默认的配置文件) readme(软件说明)
MySQL基本使用
# 建议使用管理员身份打开cmd -1.切换到mysql的bin目录下先启动服务端 mysqld -2.保持窗口不关闭 重新打开一个新的cmd窗口 -3.切换到mysql的bin目录下启动客户端 mysql """ 1. 直接使用mysql命令默认是游客模式 权限和功能都很少 mysql -u用户名 -p密码 2. 管理员默认没有密码 连续回车即可 mysql -uroot -p """ # 在启动服务端的时候就报错 * 拷贝报错信息,百度或mysql启动报错粘贴错误信息
# 1.先把bin目录添加到环境变量 清空之前打开的cmd窗口,要把之前用cmd启动的服务端关闭 # 2.将mysql添加到系统服务中 -1.如何查看系统服务 鼠标右键任务栏选择服务 cmd输入services.msc回车 -2.以管理员身份打开cmd窗口 mysqld --install # 3.首次添加不会自动启动 需要人为操作一下 -1.鼠标右键点击启动 -2.命令行启动 net start mysql """ 如果想卸载重新按照 1.先关闭服务端 net stop mysql 2.移除系统服务 mysqld --remove """
# 1.修改密码 * 方式1:mysqladmin mysqladmin -u用户名 -p原密码 password 新密码 * 方式2:直接修改存储用户数据的表 * 方式3:冷门操作 部分版本不支持 set password=password('新密码') # 修改当前登录用户的密码 # 2.忘记密码 * 方式1:卸载重装 * 方式2:把data目录删除 拷贝一份别人的目录 * 方式3:非正常操作 -1.关闭正常的服务端 -2.以跳过授权表的方式重启服务端(不校验密码) -3.以管理员身份进入然后修改mysql.user表数据即可 net stop mysql mysqld --skip-grant-table mysql -uroot -p update mysql.user set password=password('123') where Host='localhost' and User='root'; -4.关闭服务端 然后以正常方式启动即可
SQL与NoSQL
# 数据库的服务端支持各种语言充当客户端 以mysql为例:为了能够兼容所有类型的客户端,有两种策略 1.服务端兼容 不合理,消耗数据库服务端资源 2.制定统一标准 SQL语句、NoSQL语句 # SQL与NoSQL SQL语句的意思是操作关系型数据库的语法 NoSQL语句的意思操作非关系型数据库的语法 ps:SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库
数据库相关概念
库 文件夹
表 文件夹里面的文件
记录 文件里一行行的数据
# 1.针对库的基本SQL语局 增 create database 库名; 删 drop database 库名; 改 alter database 库名 charset='gbk'; 查 show databases; show create database 库名; # 2.针对表的基本SQL语句 查看当前所在的库名 select database(); 如果没有切换指定的库 那么默认是NULL use 库名; 增 create table 表名(字段名 字段类型,字段名 字段类型); 删 drop table 表名; 改 alter table 旧表名 rename 新表名; 查 show tables; show create table 表名; describe 表名; desc 表名; # 3.针对记录的基本SQL语句 操作数据前,必须要先有库和表 增 insert into 表名 values(数据,数据),(数据,数据); 删 delete from 表名; # 删除表中所有的数据 delete from 表名 where 筛选条件; # 按条件删除 改 update 表名 set 字段名=新数据 where 筛选条件; 查 select * from 表名; # 查所有字段 select 字段1,字段2 from 表名; # 如果表中字段较多出现了错乱 可以结尾写\G # 补充 1.SQL语句结束符是分号 ; 2.取消SQL语句的执行 \c 3.查看所有的数据库 show databases; 4.查看所有的表 show tables; 5.查看user表里面所有的记录 select * from mysql.user;
MYSQL安装
https://juejin.cn/post/7130908861040427021
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了