目录
- 数据存取演变史
- 数据库软件应用史
- 数据库的本质
- 数据库的分类
- MySQL简介
- MySQL基本使用
- MySQL系统服务制作
- MySQL密码相关操作
- SQL与NoSQL
- 数据库重要概念
- MySQL语法
- 针对库的基本SQL语法
- 针对表的基本SQL语法
- 针对记录的基本SQL语法
数据存取演变史
1.文本文件:无法实现代码互通
文件路径不一致
文件格式不一致
2.软件开发目录规范:无法实现代码互通
存储位置一直(db文件夹)
数据格式未完全统一
3.数据库服务:实现代码互通
存取位置一致
数据格式一致
数据库软件应用史
1.单机游戏
不同计算机上的相同程序 数据无法共享
数据库服务全在本地
2.网络游戏
不同计算机上的相同程序 数据可以共享
数据库服务单独在网络假设(远程数据库服务)
注:远程数据库服务
数据库集群
1.数据安全性问题
2.服务器负载问题
让多台服务器运行相同的数据库服务
数据库的本质
1.底层原理层面:数据库指的是专门用于操作数据的进程(运行在内存中的代码)
2.现实应用层面:数据库指的是拥有操作界面的应用程序(用于操作进程的界面)
注:数据库本质上是一款cs架构的应用程序(程序员理论上都可以编写-市面上已经有很多数据库软件)
数据库的分类
1.关系型数据库
1.1 数据的组织方式有明确的表结构(可以看成是表格-需要指定标题)
1.2 表与表之间可以建立数据库层面的关系(如业主与房屋表)
注:只有获取到用户表的一条数据就可以得到与之相关的其余数据
1.3.种类:
MySQL:开源 使用最广泛 数据库学习必学
PostgreSQL:开源 支持二次开发
MariaDB:开源 与MySQL是同一个作者 使用方法极其相似
Oracle:收费 安全性极高 主要用于银行及各大重要机关
sqlite:小型数据库 主要用于本地测试(django框架自带该数据库)
server:美国Microsoft公司推出的一种关系型数据库系统 可以扩展及高性能的数据管理系统
db2:IBM开发的一种大型关系型数据库平台
sq1:
2.非关系型数据库
2.1 数据的组织方式没有明确的表结构 是以k:v键值对的形式组织的
2.2 数据之间无法直接建立数据库层面的关系
2.3 分类
redis:目前最火 使用频率最高的缓存型数据库
mongoDB:稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
memcache:通过缓存数据库查询的结果 减少数据库访问次数 已经被redis淘汰
MySQL简介
1.MySQL版本分类
5.6X:前几年使用频率最高的版本
5.7X:最近尝试迁移的版本(频率+)
8.0X:最新版 功能强大 但是线上环境几乎不用(本地自己用非常好用)
注:虽然版本有区别 但是操作上几乎没有区别 主要体现在底层运作
2.下载
2.1 访问官方:https://www.mysql.com/
2.2 DOWNLOADS下载
2.3 MySQL Community Downloads进入共享界面下载
2.4 MySQL Community Server最新版本及版本选择界面
2.5 Archives版本选择-Product Version
2.6 Download下载
3.解压安装:压缩包中包含服务端与客户端 支持本地操作
4.主要文件介绍
bin文件夹:myaqld.exe服务端 mysql.exe客户端
data文件夹:存取数据
my-default.ini:默认配置文件
MySQL基本使用
1.启动服务端
1.1 先切换至MySQL数据库所在位置,如:D盘
1.2 进入MySQL数据文件夹中(命令:cd mysql按Tab补全剩余文件夹名)
1.3 进入启动文件夹bin(命令:cd bin)
1.4 进入MySQL数据库启动文件命令:myaqld
2.启动用户端
可能会报错:拷贝报错原因百度查找解决方法
2.1 先切换至MySQL数据库所在位置,如:D盘
2.2 进入MySQL数据文件夹中(命令:cd mysql按Tab补全剩余文件夹名)
2.3 进入启动文件夹bin(命令:cd bin)
2.4 进入MySQL数据库启动文件命令:myaql(如果直接进入是游客模式,能操作的功能很少)
用命令:myaql -uroot -p(用户名及密码方式进入,管理员刚开始密码为空)
3.查看
通过命令:show databases 可以查看数据库中的文件夹
4. 退出
命令:exit、quit两种方式都可以退出
MySQL系统服务制作
1.如何解决每次都需要切换路径查找文件(添加环境变量)
将bin文件路径添加到环境变量中(右键单击此电脑-属性-高级系统设置-环境变量-系统变量的path中双击点击进入新增粘贴-保存)
1.1 启动服务端直接启动文件命令:myaqld
1.2 启动客户端直接启动文件命令:myaql -uroot -p
2.解决启动服务端与客户端两个cmd窗口
2.1 将MySQL服务端制作成系统服务(开机自启)
2.1.1 以管理员身份运行cmd
2.1.2 开启命令:mysqld --install
2.1.3 关闭命令:net stop MySQL
2.1.4 移除系统服务
先确保服务已关闭
移除命令:MySQL remove
注:通过指令查看MySQL已经添加到启动服务里了(命令:services.msc)第一次添加不会自动启动
启动方式:
1.点击启动服务里的MySQL右键单击
2.启动命令:net start myaql
MySQL密码相关操作
1.密码修改
1.1 管理员密码默认为空
1.2 命令一:MysqlAdmin(-p直接跟原密码不留空格)
mysqladmin -u用户名 -p原密码 password 新密码
1.3 命令二:set password = PASSWORD('新密码')
登录进去后修改,登录谁的账号修改谁的密码(有些版本不能用)
2.忘记密码
2.1 方式一:直接重装mysql数据库/修改密码所在的文件
2.2 方式二:先关闭服务端,然后以不需要校验用户身份的方式启动,修改密码之后重新启动
关闭服务端命名:net stop MySQL
启动命令:mysqld --skip-grant-tables
重新启动一个cmd窗口:命令 mysql -uroot -p
修改密码命令:update mysql.user set password=password(123) where Host='localhost' and User='root';
关闭第一个cmd窗口命令:net stop mysql
重新启动服务端:net start mysql
SQL与NoSQL
1.SQL语句:操作关系型数据库的语法(有时候表示关系型数据库)
2.NoSQL语句:操作非关系型数据库的语法(有时候表示非关系型数据库)
注:数据库的服务端支持各种语言充当客户端 为了能够兼容所有类型的客户端
如MySQL服务端(MySQL客户端、python代码编写的客户端、java代码编写的客户端)
1.服务端兼容:消耗数据库的服务端资源
2.制定统一标准:SQL语句、NoSQL语句
数据库重要概念
1.库:文件夹
2.表:文件夹里面的文件
3.记录:文件里的一行行记录
注:show databases;命令:查看所有的数据库
show tables;命令:查看所有的表
select * from mysql.表名;命令:查看某个表里面的所有数据
MySQL语法
1.结束符:;
2.取消符:/c
针对库的基本SQL语法
1.增:create database 库名;
2.查:show databases;
show creat database 库名;
3.改:alter database 库名 charset='gbk'
4.删:drop database 库名;
针对表的基本SQL语法
1.增:create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型,);
2.查:show tables;
show create table 表名;
describe 表名; = desc 表名;
3.改:alter table 旧表名 rename 新表名; #改表名
4.删:drop table 表名;
针对记录的基本SQL语法
1.增:insert into 表名 values(数据,数据);
insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
2.查:select * from 表名; # *表示查看所有字段
select 字段1,字段2 from 表名;
注:如果表中字段较多出现错乱 可以结尾写/G 换成列显示
3.改:update 表名 set 字段名=新数据 where 筛选条件;
4.删:delete from 表名; # 删除表中所有的数据
del from 表名 where 筛选条件 # 按条件删除数据
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280199.html