数据存储的演变史

数据库基础内容一

一.了解知识

1.1数据演变史

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

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

1.2数据库应用发展史

1.单机游戏阶段
	数据各自保存在各自的计算机上 无法实现远程共享
  '''无需互联网'''
2.多机游戏阶段
	数据统一基于网络保存到某个固定的服务器上 实现数据共享
  '''必须要有互联网'''
"""
集群
	如果所有的数据全部存储到一台远程服务器上 
		那么数据的安全性降低 服务器的压力上升
	所以增加远程服务器的数量 数据同步保存 任务均匀分担
		具有相同功能的多个服务器组合到一起 就可以称之为是集群
"""

1.3数据库的本质

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

二.初识数据库

2.1数据库的分类

1.关系数据库
   有固定的表结构
   并且表与表之间可以建立代码层面的关系
# 常见的关系数据库
   MySQL:关系型数据库的代表 开源免费 使用频率极高
   Oracle:安全性极高 但是使用和维护收费 使用成本高
   PostgreSQL:支持二次开发(自己嫁接、扩展功能)
   MariaDB:与MySQL是同一个作者 开发的初衷是作为MySQL的替代品
   sqlite:小型数据库 携带方便但功能较少 主要用于本地测试使用
   sql server:老牌数据库软件 目前主流不用
2.非关系型数据库
   没有固定的表结构,数据主要采用k:v键值对的形式储存
   表与表之间无法建立练习
# 常见的非关系型数据库
   Redis:目前最火的非关系型数据库 数据类型丰富 功能强大
   MongoDB:最像关系型数据库的非关系型数据库 主要用于爬虫和大数据
   Memcache:被redis取代了!!!

2.2SQL与NoSQL

1.SQL与NoSQL区别
  SQL语句:与关系型数据库交互的语言
  NoSQL语句:与非关系型数据库交互的语言
'''SQL有时候用来标识关系型数据库 有时候表示SQL语句
NoSQL有时候用来标识非关系型数据库 有时候表示NoSQL语句'''

三.MySQL

3.1MySQL下载与安装

1.版本问题
  5.6X:使用最为广泛的稳定版本
  5.7X:目前正在逐步过渡使用的版本
  8.0X:最新版本 暂时不投入正常生产环境使用(其实很好用!!!)
  """
  版本问题不会影响我们的学习 因为SQL语句是一样的 
  只不过底层有变化 目前不用考虑
  """ 
2.下载使用
  官网:https://www.mysql.com/
  点击步骤:
  downloads
  (GPL) Downloads
  MySQL Community Server
  Archives
  选择版本和系统(以5.6.44为例)
  点击下载对应的zip压缩包即可
  # mac和linux参考下列博客
  	linux:https://www.cnblogs.com/Dominic-Ji/p/15124625.html
    mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
   解压处理
  	建议压缩到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文件
  	说明书

3.2系统服务制作

1.添加环境变量
将D:\mysql-5.6.44-winx64\bin添加到系统环境变量
2.编写固定的指令
  重新以管理员的身份打开cmd窗口
  输入mysqld --install
  # 成功含有successfully
  初次启动需要手动输入net start mysql
  关闭所有窗口重新开一个cmd输入mysql即可连接服务端
3.如果要移除系统服务
  先停止服务端 管理员cmd命令net stop mysql
  移除系统服务 命令mysqld --remove

3.3修改MySQL密码

1.直接输入mysql登录
  默认为游客模式,权限有限
2.使用用户名和密码的方式登录
  管理员账号登录mysql -uroot -p跟上回车
  提示输入密码
3.修改管理员密码
  一.在cmd窗口下直接修改
  mysqladmin -u用户名 -p原密码(第一次无) password 新密码
  二.登录状态下修改用户密码
  set password=PASSWORD('新密码'); #不支持最新版本8.0
4.区分游客和管理员的方式
  命令show database;
  结果是两条,为游客,四条及以上为用户

3.4重要概念

1.库    类似于  文件夹
2.表    类似于  文件
3.记录  类似于  文件中的数据
# 查看所有库的名称
show databases;  #;为结束符号

3.5SQL基本操作

1.增
  show databases;       # 查看所有库名
  show create database 库名; # 指定查看库内的信息
2.删
  create database 库名;  #增加一个库
3.改
  alter datebase 库名 charset='gbk'; # 修改字符编码
4.查
  drop database 库名;

3.6操作表的基本SQL语句

1.select database();   # 查看当前的库 NULL表示当前没有切换
2.use 库名;            # 切换当库下面
3.show tables;         # 查看当前库下的表名
4.show create table 表名;# 查看某个表的信息
5.describbe/desc 表名;   # 查看表的字段信息
6.create table 表名(字段名称1 字段类型1,字段名称2 字段类型2)
7.alter table 表明 rename 新表名;  # 修改表名
8.drop table 表名;    # 删除表

3.7操作记录的基本SQL语句

#要想操作记录得现有库和表
1.select * from 表名;  # 查看表里面的所有数据
2.select * from 库名.表名\G; # 未进入库内的查询表内数据\G表示一行行展示
3.select Host,User from mysql.user # 查看指定字段
# 增
4.insert into 表名 values(值1,值2); # 增加单条数据
5.insert into 表名 values(值1,值2),(值3,值4) # 增加多条
# 改
6.update 表名 set 字段=新值 where 筛选条件;
eg:update t1 set name='jasonNB'where id=1;
# 删
  delete from 表名 where 筛选条件;
 '''如果不限制筛选条件就是删除表内所有数据'''
7.分组查询和筛选查询
select */字段名 from 表名 where 筛选条件
select 以什么分组的字段名,非必要条件展示分组之后的字段属性 from group by 以什么分组就用什么字段
8.关键字
    max				统计最大值
    min				统计最小值
    sum				统计求和
    count			统计计数
    avg				统计平均值
    group_concat(间接获取列的所有数据会分成组的形式展示)   

posted on 2022-05-03 22:20  淦白嫖怪  阅读(272)  评论(0)    收藏  举报

导航