【存取数据的演变史】
1.文本文件
文件路径不固定:C:\aaa.txt D:\bbb.txt E:\ccc.txt
数据格式不统一:jason|123 jason$123 jason 123
------
2.软件开发目录规范
规定了数据应该保存在db目录下>>>:路径偏向统一
db/user.txt db/userinfo.txt db/jason.json db/jason
数据格式还是没有得到统一
文本 json格式 对象
--------------------------------------------------------
3.数据库服务(重点)
统一路径,统一操作方式
降低学习成本,提高开发效率
【数据库软件应用史】
1.单机游戏
数据存储于各个计算机的本地 无法共享
2.网络游戏
数据存储于网络中 可以共享(数据库服务)
--------------------------------------
数据库服务集群:提升数据的安全性
。
【数据库的本质】
1.站在底层原理的角度
数据库指的是操作数据的进程(就是一堆代码,专门干增删改查的操作!!!)
2.站在实际应用的角度
数据库指的是可视化操作界面(一些软件)
ps:以后不做特殊说明的情况下讲数据库其实指的是数据库软件
----------------------------
数据库软件本质也是CS架构的程序!!!
意味着所有的程序员其实都有资格编写一款数据库软件
。
【数据库的分类】
1 1.关系型数据库 2 特征1:拥有固定的表结构(字段名 字段类型) 3 类似于excel表里面的表第一行的表头 id name pwd 就是字段名 4 字段类型:就是在字段名下面要写的数据的应该属于的数据类型,要提前固定好!!! 5 ----------- 6 特征2:数据与数据之间可以建立数据库层面关系,只要拿到其中的一个,就可以拿到与该有关系的所有!!! 7 用户表数据 8 豪车表数据 9 豪宅表数据 10 ----------- 11 关系型数据库软件: 12 MySQL、Oracle、MariaDB、PostgreSQL、sql server、sqlite、db2、access 13 1.MySQL:开源免费,使用最广,性价比贼高。 14 2.Oracle:收费,使用成本较高但是安全性也最高。 15 3.PostgreSQL:开源免费,支持二次开发,兼容性极高。 16 4.MariaDB:跟MySQL是一个作者,开源免费。 17 5.sqlite:小型数据库,主要用于本地测试。 18 ---------------------------------------- 19 2.非关系型数据库 20 特征1:没有固定的表结构 数据存储采用K:V键值对的形式 21 {'name':'jason'} 22 {'username':'kevin','pwd':123} 23 特征2:数据之间无法建立数据库层面的关系 24 但可以自己编写代码,额外的干预数据间的关系,建立代码层面的关系 25 ---------- 26 非关系型数据库软件: 27 redis、mongoDB、memcache 28 1.redis:目前最火 使用频率最高的非关系型数据库(缓存数据库) 29 虽然缓存数据库是基于内存做数据存取,但是拥有持久化的功能,优势是速度快!!! 30 2.mongoDB:文档型数据库,最像关系型数据库的非关系型数据库!! 31 主要用在爬虫以及大数据领域 32 3.memcache:以及被redis淘汰 33 ------------------------------------------- 34 一般大型的软件都需要关系型数据库与非关系型数据库搭配使用 35 关系型数据库用来做持久化,数据往硬盘上存 36 非关系型数据库用来做数据查询,基于内存做数据存取,速度快! 37 ------------------------------------------- 38 """ 39 虽然数据库软件有很多 但是操作方式大差不差 学会了一个几乎就可以学会所有 40 其中以MySQL最为典型 41 """
。
。
。
【MYSQL】
数据库的概念介绍
库------------------》文件夹
表--------------------》文件
记录--------------------》文件内容
name password hobby
jason 123456 football
tom 123456 basketball
表头:表格的第一行字段
字段:name、password、hobby
表单:除了表头以外的内容
【mysql的安装】
参考网站:MySQL的官网:https://www.mysql.com/
【环境变量设置】
找到属性------------------高级系统设置------------------环境变量-------------PATH------
启动
1.管理员模式下打开cmd,切换到mysql的bin目录下先启动mysql的服务端!!!
mysqld
2.保持服务端窗口不关闭!!! 重新打开一个新的cmd窗口(客户端不需要用管理员身份打开cmd)
3.游客模式下打开cmd,切换到mysql的bin目录下启动客户端,输入mysql,直接回车就行了。
直接用mysql命令登录客户端是游客模式!!权限与功能比较少!!
mysql
-------------------------------------------
# 还有一种快捷的启动mysql服务端的方式
打开mysql本地文件,打开到bin目录下 D:\mysql-5.7.28-winx64\bin
然后在上面的地址栏里面,直接敲cmd,就会直接进入命令行,并且切到了bin目录下
然后直接敲mysqld 就行了
游客模式cmd打开mysql的客户端!!!
直接使用mysql命令,默认是游客模式,权限和功能都很少!!!
客户端用户名与密码的方式登录方法:
mysql -u用户名 -p密码
-------------------
客户端,管理员模式,管理员初始默认没有密码, 连续回车即可!!!!!!
mysql -uroot -p
-------------------
有些同学的电脑在启动服务端的时候就会报错!!!!!!
解决方法:拷贝报错信息 然后百度搜索:mysql启动报错,粘贴错误信息,基本都能找到解决方案!!!
可能会报错的原因是缺一个文件,缺哪个文件,可以直接复制别人电脑里面的该文件,靠到你电脑里面就行了!!或者到网上找看看能把能下到该文件,或者使用360修复一下!!
管理员模式登录客户端!
。
。
。
系统服务的制作
把mysql的服务端做成开机自启动的模式或者说是做成windows系统的守护进程
只要开机了,mysql的服务端自动后台启动,就不需要再用cmd命令了!!!
这样以后想用mysql的客户端的话,就cmd命令输入账号密码就行了,
1.先把bin目录添加到环境变量中
清空之前打开的cmd窗口 一定要把之前用cmd启动的服务端与客户端全部关闭直接叉掉窗口
或者在命令行里面按ctrl+c
----------------------------
2.将mysql添加到系统服务中
1.如何查看系统服务
鼠标点到桌面最下面右键一下,点击任务管理器,点击服务,就能看到所有系统服务了
或者Ctrl+Alt+Del 打开任务管理器,点击服务
装逼的方法>>: windows+R命令栏里面输入services.msc回车,也能看到系统服务
2.必须要以管理员身份打开cmd窗口!!!!!!
mysqld --install 就将mysqld服务端安装到windows的开机自启服务里面去了
----------------------------
3.首次添加不会自动启动,需要人为操作一下,启动mysql的系统服务
在服务里面先刷新一下,找到mysqld
1.鼠标右键点击启动
2.命令行启动,继续在cmd命令栏里面输入命令:
net start mysql
--------------------------------------------
4.如果想卸载重新安装mysql的系统服务
1.先关闭系统服务
net stop mysql
2.移除系统服务
mysqld --remove
。
。
密码相关操作 重要!!!
修改密码 在原密码知道的情况下,先登录mysql后,再改密码
方式一在cmd主界面输入命令:mysqladmin -u用户名 -p原密码 password 新密码
方式二在cmd界面已经登录成功的情况下输入命令:set password=password('新密码');
1.管理员账号 修改密码
方式1:mysqladmin 注意要先exit退出mysql,回到cmd终端初始窗口,
mysqladmin -u用户名 -p原密码 password 新密码
如果是一开始管理员没有密码的时候,-p后面可以不写,该方法可以改密码。
如果管理员已经改过密码了,但是现在忘了以前的密码了,那就不能用该方法来改密码了!!!
----------------------------------------------------
方式2:直接修改存储用户数据的表(主要是管理员改其他人的密码的时候要用!!)
----------------------------------------------------
方式3:冷门操作 有些版本可能还不支持 当前登录的是谁,改的就是谁的密码!!!
set password=password('新密码'); # 修改当前登录用户的密码 注意后面的分号;不能少!!
.第一种方法改密码!!!这个时候再不输密码就登录不上去了!!!
。
登录的话可以在mysql -uroot -p后回车一下,在Enter password:后面输密码,
这个时候密码是密文的形式,比较推荐用
如果比较急,就直接 mysql -uroot -p密码 也行就是这样密码容易被人看到,不安全
.管理员改自己密码,在mysql登录进去后,输入命令set password = password('新密码')
也可以改密码!!!
。
。
编辑配置文件my.ini
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ---这里输入你安装的文件路径----
basedir=D:\mysql-8.0.28-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.28-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
。
。
安装Mysql,配置服务
# 来到mysql解压后的bin路径下(以管理员身份运行)
# 安装mysql 安装完成后Mysql会有一个随机密码(记住这个密码)
mysqld --initialize --console
# 把mysql创建成系统服务
mysqld --install mysql
# 启动mysql服务
net start mysql
------------------------------
如果使用上述方式无法创建服务可以使用如下方式
# 如果使用上述方式无法创建服务可以使用如下方式
# 创建系统服务
sc create mysql binpath= "D:\mysql-8.0.28-winx64\mysql-8.0.28-winx64\bin\mysqld --defaults-file=D:\mysql-8.0.28-winx64\mysql-8.0.28-winx64\\my.ini" start= auto displayname= "mysql8"
# sc create mysql binpath= "D:\mysql-8.0.28-winx64\mysql-8.0.28-winx64\bin\mysqld"
# 删除系统服务
sc delete mysql
。
。
升级mysql版本后,还想保留原版本里面的库数据,操作
升级mysql版本后,还想保留原版本里面的库数据,操作见
https://www.jb51.net/article/212626.htm
最后用新的sql去打开Backup.sql文件的,完成后刷新一下,老的数据库里的文件全过来了!!
--------------------------------------
新的数据库的客户端的运行,及服务端的运行 有问题,参考老刘博客,直接拷过来!!!
【Navicat使用】
(外键的创建步骤)
当有一些要求无法满足是,可以自己写