MySQL安装、下载与简单语句

概要

  • 数据演变史
  • 存取发展史
  • 数据库本质
  • SQL与NoSQL
  • MySQL下载与安装
  • 系统服务制作
  • 重要概念
  • 基本SQL语句

内容

1、数据演变史

# 1.单独的文本文件
	没有固定的存放位置: c:\a.txt D:\aaa\c.txt F:\bbb\b.txt
    没有固定的数据格式:jason|123 tony$123 kevin~123
 在单独的文本文件中我们发现程序无法兼容 没有统一的标准

# 2.软件开发目录规范
	按照文件功能的不同规定了相应的位置
    这个过程解决了让文件查找变得统一 但是没有解决格式问题(核心问题)
    
# 3.数据库应用
	这个过程解决了存放位置和数据格式的问题
    将数据处理部分统一了起来

2、数据库应用发展史

# 1.单机游戏阶段
	数据各自保存在各自的计算机上 无法实现远程共享 不需要使用互联网 即可以操作
    
# 2.多机游戏阶段
	数据统一基于网络保存到某个固定的服务器上 实现数据共享 该阶段必须要有互联网 才可以操作
  
那么多个用户在指向一个服务端时 为避免数据丢失和数据安全问题 采用的是在服务端使用集群的方式 
集群出现的原因是: 
    如果所有的数据全部存储到一台远程服务器上 
    那么数据的安全性降低(比如服务端运行出现问题数据泄露问题) 服务器的压力上升
    所以会增加远程服务器的数量 数据同步保存 任务均匀分担
    具有相同功能的多个服务器组合到一起 就可以称之为是集群

3、数据库本质

"""数据库在微观层面上来说
	运行在计算机上专门处理数据的进程(程序)
		eg:内存中的typora文本编辑器代码
数据库在宏观层面上来说
	提供给操作者一个简单快捷的操作进程的软件
	eg:比如typora在计算机屏幕上展示给我们使用的界面 让我们在界面上可以编写文本内容 和让我们能够看得懂
	我们平时在说数据库的时候大部分指的是操作数据库的应用软件
"""
# 数据库软件的本质其实也是一款cs架构的软件
	既然数据库本质是一款CS架构的软件 也就意味着我们每个会网络编程的程序员理论上来说都可以编写出一款数据库软件
    在目前全世界上有很多厉害的程序员 他们都具备编写数据库软件的能力 所以现在市面上其实存在很多数据库软件

4、数据库分类

"""目前市面上有很多数据库软件 大致可以分为两类"""
1.关系型数据库
	关系型:
        1.有固定的表结构(最主要的特征)
        eg:有固定字段的excel表格
          id name  gender
        2.并且表与表之间可以建立代码层面的关系
        eg:用户表与房屋表
           用户买房 那么用户数据和房屋数据就应该有关系
常见数据库名称:
	MySQL、Oracle、PostgreSQL、MariaDB、splite、sql server
    MySQL:关系型数据库的代表 开源免费 使用频率极高
    Oracle:安全性极高 但是使用和维护收费 使用成本高 一般是大型国有企业才会使用
    PostgreSQL:支持二次开发的空间(自己可以嫁接 进行扩展的功能)
    MariaDB:与MySQL是同一个开发作者 开发的初衷是作为MySQL的替代品
    sqlite:小型数据库 携带方便但功能较少 主要用于本地测试使用
    sql server:是老牌数据库软件 目前主流不用这个数据库
        
2.非关系型数据库
	非关系型:
        1.没有固定的表结构 数据存取采用K:V键值对的形式(最主要特征)
            {'name':'jason'} {'username':'jason','pwd':123}
       2.并且表与表之间无法建立代码层面的关系
    常见的数据库名称:
        Redis、MongoDB、Memcache
        Redis:目前最火的非关系型数据库 数据类型丰富 功能强大
       MongoDB:最像关系型数据库的非关系型数据库 主要用于爬虫和大数据
       Memcache:被redis取代了

"""
疑问:诸多数据库软件 如何进行学习?
	两大类数据库的操作方式几乎一模一样 学会一个其他都很容易上手
	eg:学习了MySQL 那么学其他关系型数据库很简单
	学习了Redis 那么学其他非关系型数据库也很简单"""

5、SQL与NoSQL

数据库服务端支持很多客户端来链接使用
	数据库自带的客户端有很多种形式:python代码编写的 、Java代码编写的......
     如何让服务端兼容诸多客户端 实现正常交互
    方式1:让服务端识别并自动切换对应的语言
    方式2:统一沟通标准
相较之下方式2更加合理:SQL语句与NoSQL语句
    
SQL语句
	与关系型数据库交互的语言
NoSQL语句
	与非关系型数据交互的语言
    
SQL有时候用来标识关系型数据库 有时候表示SQL语句
NoSQL有时候用来标识非关系型数据库 有时候表示NoSQL语句

6、MySQL简介

# 1.版本问题
	5.6X:使用最为广泛的稳定版本
    5.7X:目前正在逐步过渡使用的版本
    8.0X:最新版本 暂时不投入正常生产环境使用(MacBook中很好用)
   """
   版本问题不会影响我们的学习 因为SQL语句是一样的 只不过底层有变化 目前暂时不用考虑"""

# 2.下载使用
官网:https://www.mysql.com/
1.downloads
    	(GPL) Downloads
      	MySQL Community Server
        	Archives
          	选择版本和系统(以5.6.44为例)
            	点击下载对应的zip压缩包即可
 	讲解以windows为基准 mac和linux参考下列博客
	linux:https://www.cnblogs.com/Dominic-Ji/p/15124625.html
    mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
 2.解压处理
	建议压缩到D盘或者E、F盘的根目录方便查找
    mysql-5.6.44-winx64.zip>>>> mysql-5.6.44-winx64
    
 3.目录结构
bin文件夹
mysqld.exe   服务端
mysql.exe    客户端
学习阶段服务端在本地启动
	data文件夹
	  存放数据
my-default.ini文件
	默认配置文件
    README文件
    说明书

7、基本使用

必须要先启动服务端 再启动客户端连接
以F:\mysql-5.6.44-winx64为例
    
1.以管理员身份运行cmd
切换到bin路径下
F:
    cd mysql-5.6.44-winx64\bin
2.启动服务端
mysqld
	# 维持cmd窗口不要关闭 重新打开一个新的cmd窗口
3.启动客户端连接服务端
先切换到bin路径下
F:
    cd mysql-5.6.44-winx64\bin

8、系统服务

1.我们不想切换路径 直接输入命名
2.我们不想自己启动服务端 设置成开机自启动(消耗的资源很少)

# 针对第一个点的解决措施就是添加环境变量
	将F:\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

9、修改密码

1.直接输入mysql登录
	默认是游客模式 没有太多操作的权限
2.使用用户名和密码的方式登录
	# 学习阶段不用考虑用户管理  直接使用root用户(管理员账号)
  mysql -u用户名 -p密码
  # 管理员账号登录(第一次登录 没有密码 直接回车即可)
  mysql -uroot -p 直接回车
  提示输入密码
3.修改管理员密码
	方式1:在cmd窗口下直接修改(不要登录进去)
    	mysqladmin -u用户名 -p原密码 password 新密码
      '''第一次无密码修改 -p后面不写即可'''
    	mysqladmin -uroot -padmin123 password jason123
  方式2:登录状态下修改当前用户密码(先登录)
    	set password=PASSWORD('新密码');  # 最新版不支持
"""
如何区分当前是否是游客模式
	可以执行show databases;
		结果如果是两条 表示是游客
		结果如果是四条及以上 表示是用户
"""

10、重要概念

库						类似于				文件夹

表						类似于				文件

记录				 类似于			 文件中一行行数据
"""
show databases;		查看所有的库名称
	类似于查看data文件夹内文件夹的名称

11、补充说明

SQL语句使用分号作为结束符

12、操作库的基本SQL语句

# 查
	show databases;  # 查看所有的库名称
	show create database 库名;  # 指定查看某个库的信息
  
# 增
	create database 库名;
  
# 改
	alter database 库名 charset='gbk';  # 修改字符编码

# 删
	drop database 库名;
  '''以后进入公司 每个账号都会有权限管理 不可能轻易做到'''

13、操作记录的基本SQL语句

"""
要想操作记录 肯定得先有库和表
"""
# 查
	select * from 表名;  # 查看表里面所有的数据
  select * from 库名.表名;  # 查看指定库下面的指定表里面的所有数据
  """
  有些表里面的字段太多 展示的时候会错乱 可以考虑逐行展示
  select * from 库名.表名\G;
  """
  select Host,User from mysql.user  # 查看指定字段
  
# 增
	insert into 表名 values(值1,值2);  # 单条数据
  insert into 表名 values(值1,值2),(值3,值4);  # 多条数据
  
# 改
	update 表名 set 字段=新值 where 筛选条件;
	update t1 set name='jasonNB' where id=1;
  '''将id是1的数据中name字段对应的值改成jasonNB'''

# 删
	delete from 表名 where 筛选条件;
  delete from t1 where id=3;
  '''将id是3的数据删除'''
  如果不加筛选条件就是删除所有的数据 
posted @ 2022-05-03 23:33  一颗平凡的小石头  阅读(86)  评论(0)    收藏  举报