MYSQL下载 环境配置 修改密码 基本SQL语句

存取数据的演变史

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.网络游戏
	数据存储于网络中 可以共享(数据库服务)
"""
数据库服务集群:提升数据的安全性

不同的服务器 要放在不同的机房:
如果服务器都是搞数据库的,应该放在多个机房,不应该放在同一个地方。一台服务器坏了,其他服务器还有备份。
"""

所有数据全部集中:
image
数据库坏了 那台服务器着火了 那所有的数据就全没了。
所以要使用数据库服务集群,进行数据同步\备份,出现服务器坏了的情况,就切换服务器。
image

数据库的本质

1.站在底层原理的角度
	数据库指的是操作数据的进程(一堆代码)
2.站在实际应用的角度
	数据库指的是可视化操作界面(一些软件)
ps:以后不做特殊说明的情况下讲数据库其实指的是数据库软件
    
数据库软件本质也是CS架构的程序
	意味着所有的程序员其实都有资格编写一款数据库软件 

'''
比如使用socket模块写一个服务端 设定为遵循TCP协议 接受用户传来的查找数据的信息
进行文件读写 再回传给用户查找的结果。
'''

image

数据库的分类

关系型数据库

特征

关系型数据库关键词:(主库)(硬盘)

  1. 拥有固定的表结构(字段名 字段类型)
    id name pwd
    字段类型得固定:如id号是整型 姓名是字符串类型

  2. 数据之间可以建立关系
    用户表数据
    豪车表数据
    豪宅表数据
    举例:如果将用户表的某个信息删除,相对应的其他表的信息也会删除。

常见关系型数据库

常见关系型数据库有:
MySQL、Oracle、MariaDB、PostgreSQL、sql server、sqlite、db2、access

  1. mysql: 开源免费 使用最广 性价比贼高 功能均衡 可以做银行数据库 适合用于学习
  2. oracle: 收费 使用成本高 安全性也最高 用于做银行数据库 oracle维护要请oracle公司的人来维护 维护费20个w
  3. postgreSQL: 开源免费 支持二次开发 兼容性极高
  4. mariaDB: 跟mysql是一个作者 开源免费 功能跟mysql差不多 为什么会写这个数据库 因为mysql被收购了 作者担心mysql会收费 所以又写了mariaDB
  5. sqlite: 小型数据库 用于本地测试

非关系型数据库

特征

非关系型数据库关键词:(缓存数据库)(副库)(内存)

  1. 没有固定的表结构 数据存储采用K:V键值对的形式
  2. 数据之间无法建立数据库层面的关系
    不会牵一发而动全身。
    ps:可以自己编写代码建立逻辑层面的关系 也就是修改了一个表的数据 你写代码自动修改另外与其相关表的数据。

常见非关系型数据库

常见非关系型数据库:redis、mongoDB、memcache

  1. redis:目前最火 使用频率最高的非关系型数据库(缓存数据库)
    虽然缓存数据库是基于内存做数据存取但是也拥有持久化存储的功能
    如何持久化? 定时刷硬盘 日志记录
  2. mongoDB:文档型数据库 最像关系型数据库的非关系型数据库
    主要用在爬虫以及大数据领域
  3. memcache:以及被redis淘汰

mysql简介

为什么是mysql?
虽然数据库软件有很多 但是操作方式大差不差
学会了一个几乎就可以学会所有,其中以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本质是一个C/S架构的程序 
	服务端启动文件mysqld.exe
	客户端启动文件mysql.exe
'''

mysql下载

  1. 官网 >>> https://www.mysql.com/
  2. 点击downloads
    image
  3. 社区版下载
    image
  4. 点击
    image
  5. 下载mysql
    image
  6. 其他历史版本
    image
  7. 解压压缩包 得到如下软件目录(5.6.44)
    image
    选择老版本的原因:用于学习比较合适 新版本会将一些内容封装

启动mysql

注意: 用管理员模式打开cmd !!!!
image

  1. 切换到mysql的bin目录下先启动服务端 mysqld.exe
    image
    现在这个cmd窗口就是你的mysql服务端,不要把他关掉了,再打开一个cmd。
  2. 保持窗口不关闭 重新打开一个新的cmd窗口
    image
  3. 切换到mysql的bin目录下启动客户端mysql.exe
    image

系统mysql服务的启动 mysql虚拟环境配置

刚才的mysql启动方式十分麻烦,需要我们手动切换路径,还需要保持服务器窗口不关掉。所以我们把mysql服务端配置到系统服务中,让电脑一开机就自动启动mysql服务端。

  1. 先把bin目录添加到环境变量
    清空之前打开的cmd窗口 一定要把之前用cmd启动的服务端关闭(ctrl+c)
    image
  2. 查看系统服务
    如何查看系统服务?
    方法一:鼠标右键任务栏选择服务
    image
    方法二:cmd输入services.msc回车 点击一个服务 输入m 会自动跳转到首字母为m的服务
  3. 将mysql添加到系统服务中
    以'''管理员身份'''打开cmd窗口
    输入命令mysqld --install
    image
    image
    在任务管理器查看服务是否存在:
    image
  4. 首次添加不会自动启动 需要人为操作一下
    1.在任务管理鼠标右键点击启动
    2.命令行启动 net start mysql
    image
    image

卸载说明

"""
如果想卸载重新按照
	1.先关闭服务端
		net stop mysql	
	2.移除系统服务
		mysqld --remove
	3.使用添加与删除程序 卸载即可
"""

image

游客模式和管理员模式的区别

直接使用mysql命令默认是游客模式 权限和功能都很少:
image
使用管理员模式进入,默认的密码是空,直接回车即可进入mysql:
image
这条命令的意思是>>> mysql -u用户名 -p密码
只不过密码为空。
游客模式下:
image

密码相关操作

修改密码

	方式1:mysqladmin 
	mysqladmin -u用户名 -p原密码 password 新密码
	方式2:直接修改存储用户数据的表
	方式3:冷门操作 有些版本可能还不支持 
       set password=password('新密码')  # 修改当前登录用户的密码

mysqladmin管理程序

mysqladmin是什么?
image
mysqladmin 是 mysqld守护线程的 管理程序。mysqld守护线程守护的是系统 系统开机mysqld自动启动 系统关机mysqld自动关闭。

  1. 先在cmd输入mysqladmin这一步必须做 不然无法修改
  2. 修改root用户的密码 由于我password后面跟了密码 所以这里直接回车两次
    也可以不带上密码 然后在enter password里面输入要修改的密码 这样mysql会将你的输入隐藏 将修改密码的过程变的更安全
    image

修改存储用户数据的表

前提是能登录mysql:
image
这里的password经过了加密处理 实际就是123

修改当前登录用户的密码

set password=password('新密码') # 修改当前登录用户的密码
前提是能登录mysql:
image

忘记密码

	方式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.关闭服务端 然后以正常方式启动即可

小把戏操作

备忘:使用管理员模式的cmd

  1. 关闭正常的服务端
    image
  2. 以跳过授权表的方式重启服务端(不校验密码) 这个cmd不关
    注意:服务启动成功之后 该cmd是不能继续输入命令的 失败则可以。
    image
  3. 再开一个cmd 以管理员身份进入然后修改mysql.user表数据即可
    输入update mysql.user set password=password('123') where Host='localhost' and User='root'; 将root的密码改成123
    image

SQL 和 NOSQL

数据库服务端是可以服务多种类型的客户端
	客户端可以是自己开发的 也可以是python代码编写 也可以是java代码编写
 
SQL
	操作关系型数据库的语言
NoSQL
	操作非关系型数据库的语言
ps:要想跟数据库交互就必须使用数据库指定的语言
    
"""
SQL有时候也指代关系型数据库
NoSQL有时候也指代非关系型数据库
"""

image

基本SQL语句

注意事项
1.sql语句必须以分号结尾
2.sql语句编写错误之后不用担心 可以直接执行报错即可

基于库的增删改查指令

1.创建库
create database 库名;
2.查看库
show databases; 查看所有的库名称
show create database 库名; 查看指定库信息
3.编辑库
alter database 库名 charset='utf8';
4.删除库
drop database 库名;

基于表的增删改查

操作表之前需要先确定库
create database db1;
切换操作库
use db1;
1.创建表
create table 表名(字段名 字段类型,字段名 字段类型);
2.查看表
show tables; 查看库下所有的表名称
show create table 表名; 查看指定表信息
describe 表名; 查看表结构
desc 表名;
ps:如果想跨库操作其他表 只需要在表名前加库名即可
desc mysql.user;
3.编辑表
alter table 表名 rename 新表名;
4.删除表
drop table 表名;

基于记录的增删改查

1.插入数据
insert into 表名 values(数据值1,数据值2);
insert into 表名 values(数据值1,数据组2),(数据值1,数据值2);
2.查询数据
select * from 表名; 查询表中所有的数据
3.编辑数据
update 表名 set 字段名=新数据 where 筛选条件;
4.删除数据
delete from 表名;
delete from 表名 where id=2;

补充-容易犯的错误

image
2.
image
3.
image

posted @ 2022-11-22 19:44  passion2021  阅读(155)  评论(0编辑  收藏  举报