数据库 MySQL
目录
一.数据前世今生
数据库从理论概念诞生到现在,发展时间也已经超过大半个世纪,其历史也经历了三个阶段,人工管理,文件系统,数据库系统。
1.人工管理阶段受限于当时的硬件。
2.文件系统.这个阶段引入了“文件”的概念,数据存储在文件中,逻辑结构和物理结构有所区分,但是不够彻底;文件的组织也多样化
数据可以重复使用;对数据的操作的颗粒比较大,是以记录为单位。
但也有缺陷,文件很容易导致数据的冗余,而冗余又进一步导致了数据的不一致,还有一个问题就是数据间的联系弱.
'这应该是一个巨大的进步,因为开始有了存储,有了分离物理和逻辑,这也是关系数据库的重要方面。'
3.为了解决文件系统阶段的问题,这时候提出的数据模型,和数据结构的发展,解决了文件系统的问题;并且为了更加实用,
发展了数据控制的技术,这时候的数据库才在实际中大量使用起来。
# 1.由没有固定数据存放位置,与没有固定的数据格式'
# 2.演化出文件存放数据
# 3.在到将数据处理部分并统一
二.数据库应用发展史
数据库的两个阶段
无连接互联网,单机游戏'保存的数据在各自的电脑计算机上'
连接互联网, 网络游戏'保存的数据存档都存放于这个游戏公司的服务器上'
集群
"""
如果所有的数据全部存储到一台远程服务器上
那么数据的安全性降低 服务器的压力上升
所以增加远程服务器的数量 数据同步保存 任务均匀分担
具有相同功能的多个服务器组合到一起 就可以称之为是集群
"""
三.数据库的本质
数据库在微观层面上来说
运行在计算机上专门处理数据的进程('内存中的代码')
数据库在宏观层面上来说
我们平时在说数据库的时候大部分指的是操作数据库的应用软件('打开的快捷方式')
本质其实就是一款基于网络通信的应用程序,也就意味着数据库软件其实有很多
''
四.数据库的分类
上图就是数据库的各种类型
# 1.关系型数据库:有固定的表结构,并表与表之间可建立代码层面关系
MySQL:关系型数据库的代表 开源免费 使用频率极高
PostgreSQL:支持二次开发(自己嫁接、扩展功能)
Oracle:安全性极高 但是使用和维护收费 使用成本高
sqlite:小型数据库 携带方便但功能较少 主要用于本地测试使用
sql server:老牌数据库软件 目前主流不用
# 2.非关系型数据库:没有固定的表结构,数据采取的是K:V键值对的形式,并且表与表之间无法建立关系
Redis:目前最火的非关系型数据库 数据类型丰富 功能强大
MongoDB:最像关系型数据库的非关系型数据库 主要用于爬虫和大数据
五.SQL与NOSQL
数据库服务端支持很多客户端来链接使用'数据库自带的客户端'
面对多个不同语言的用户如何实现交互'沟通'
# 1.服务端自己切换对应的语言
# 2.统一交互标准
演化出SQL与NOSQL语句
# 1.SQL语句:与关系类型数据库交互语言
# 2.NOSQL语句:与非关系类型数据库交互的语言
SQL 有时候用来标识关系型数据库 有时候表示SQL语句
NoSQL有时候用来标识非关系型数据库 有时候表示NoSQL语句
六.MySQL简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
七.基本SQL语句
库类似于、文件夹
表类似于、文件
记录类似于、文件中一行行数据
SQL语句使用分号作为结束符
1.操作库的SQL基本语句
查找库:show databases; # 查找所有库名
查找库:show create database 库的名字; # 查找指定的库的名字
新增库:create database 库的名字; # 新增一个库
修改库:alter database 库名 charset='gbk'; # 修改这个库的字符编码
删除库:drop database 库名; # 删除这个库
2.操作表的SQL基本语句
'表是存在库下边的 先确认你要在哪个库里操作表'
查看当前在哪个库内:select database();
进入 切换库 : use 库名;
查找表:show tablse; # 查找当前库下所有表
指定表:show crate table 表名; # 指定查找表信息
查找表:describe 表名; # 指定查看表的字段信息 简写desc 表名;
新增表:create table 表名(字段名称1 字段类型1);
(id int,name varchar(32));
修改表名:alter table 表名 rename 新表名;
删除表d:drop table 表名;
3.操作记录的SQL基本语句
'要想操作记录 肯定得先有库和表'
查找:select * from 表名 # 查看表里的所有数据
查找:select * from 库名.表名 # 查找指定库内表里的所有数据
'某些表内字段多 展示错乱 select * from 库名.表名\G; 逐行展示'
查找:select id,int from 库名.id # 查找指定的字段
增加表值: insert into 表名 values(值1,值2) # 单条增加
增加表值: insert into 表名 values(值1,值2),(值3,值4) # 多条增加
修改表值:update 表名 set 字段=新值 where 筛选条件
'update t1 set name='thnqqq' where id=1;'
'将名为 t1 表 内 name字段id为1的 值修改为 thnqqq '
删除表值:delete from 表名 where 筛选条件
delete from t1 where id=1;
'将t1 表内 id为1 的数据删除 '
'不加筛选条件就是删除全部数据'
八.MySQL基本使用方法
1.版本推荐及下载方法
5.6X : 使用最为广泛的稳定版本 # 推荐的是5.6X
5.7X :目前正在逐步过渡使用的版本
8.0X :最新版本 暂时不投入正常生产环境使用(其实很好用!!!)
官网:https://www.mysql.com/
下载解压到比较明显的盘中方便查找 mysql-5.6.44-winx64.zip 文件名
2.下载过后基本使用
目录结构
bin文件夹
mysqld.exe 服务端
mysql.exe 客户端
data文件夹
存放数据
my-default.ini文件
默认配置文件
README文件
说明书
必须要先启动服务端 再启动客户端链接
文件目录
windows + r 打开管理员界面
输入mysql存放的路径 我在D盘 cd mysql\bin 进入 我解压的文件名叫musql
再次输入mysqld 等待即可 然后进进入了服务端界面了
再次 原来的步骤 进入mysql 后 输入 mysql 进入客户端接口层 进行操作
3.基本操作系统的使用
不想切换路径 直接输入命令
不想自己启动服务端 设置成开机自启动(消耗的资源很少 不要担心)
# 针对第一个点的解决措施就是添加环境变量
将D:\mysql-5.6.44-winx64\bin添加到系统环境变量
# 针对第二个点的解决措施就是编写固定的指令即可
1.先确保之前测试的服务端关闭(直接点击关闭即可)
2.重新以管理员的身份打开cmd窗口
mysqld --install
# 结果大致显示: ... successfully
3.初次启动需要人为干预
net start mysql
4.关闭所有的cmd 随意打开一个cmd窗口
输入mysql即可链接到服务端
"""
如果想要移除系统服务
1.先停止服务端
net stop mysql 管理员身份运行cmd
2.移除系统服务
mysqld --remove
"""
4.基本操作修改密码
1.直接输入mysql登录
默认是游客模式 没有太多操作的权限
2.使用用户名和密码的方式登录
# 学习阶段不用考虑用户管理 直接使用root用户(管理员账号)
mysql -u用户名 -p密码
# 管理员账号登录(第一次登录 没有密码 直接回车即可)
mysql -uroot -p 直接回车
提示输入密码
3.修改管理员密码
方式1:在cmd窗口下直接修改(不要登录进去)
mysqladmin -u用户名 -p原密码 password 新密码
'''第一次无密码修改 -p后面不写即可'''
mysql -uroot -padmin123 password jason123
方式2:登录状态下修改当前用户密码(先登录)
set password=PASSWORD('新密码'); # 最新版不支持
"""
如何区分当前是否是游客模式
可以执行show databases;
结果如果是两条 表示是游客
结果如果是四条及以上 表示是用户
"""