Day45

今日总结

数据演变史

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

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

数据库应用发展史

# 1.单机游戏阶段
	数据各自保存在各自的计算机上 无法实现远程共享

# 2.多机游戏阶段
	数据统一基于网络保存到某个固定的服务器上 实现数据共享

# 集群
	如果所有的数据全部存储到一台远程服务器上
    	那么数据的安全性降低 服务器的压力上升
	所以增加远程服务器的数量 数据同步保存 任务均匀分担
		具有相同功能的多个服务器组合到一起 就可以称之为是集群

数据库本质

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

数据库分类

1.关系型数据库
	关系型:
    	1.有固定的表结构(最主要的特征)
      	eg:有固定字段的excel表格
          	id	name	gender
      2.并且表与表之间可以建立代码层面的关系
      	eg:用户表与房屋表
          	用户买房 那么用户数据和房屋数据就应该有关系
  常见数据库名称:
  	MySQL、Oracle、PostgreSQL、MariaDB、sqlite、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取代了!!!

SQL与NoSQL

SQL语句
	与关系型数据库交互的语言
NoSQL语句
	与非关系型数据库交互的语言

SQL有时用来标识关系型数据库 有时表示SQL语句
NoSQL有时用来标识非关系型数据库 有时表示NoSQL语句

MySQL简介

# 1.版本问题
	5.6X:使用最为广泛的稳定版本
 	5.7X:目前正在逐步过渡使用的版本
  	8.0X:最新版本 暂时不投入正常生产环境使用(其实很好用!!!)
  
# 2.下载使用
	官网:https://www.mysql.com/
# 3.解压处理
  	建议压缩到D或者E盘的根目录方便查找
  	mysql-5.6.44-winx64.zip  >>>  mysql-5.6.44-winx64
    
# 3.目录结构
	bin文件夹
  	mysqld.exe		服务端
    mysql.exe		客户端
  	data文件夹		存放数据
    my-default.ini文件		默认配置文件
 	README文件		说明书

基本使用

必须要先启动服务端 再启动客户端链接
以D:\mysql-5.6.44-winx64为例

1.以管理员身份运行cmd
	切换到bin路径下
  	D:
    cd mysql-5.6.44-winx64\bin
2.启动服务端 
	mysqld
3.启动客户端链接服务端
	先切换到bin路径下 
  	D:
    cd mysql-5.6.44-winx64\bin
  然后直接输入mysql即可登录服务端

系统服务

1.不切换路径 直接输入命令
	# 添加环境变量
	将D:\mysql-5.6.44-winx64\bin添加到系统环境变量
2.不自己启动服务端 设置成开机自启动
# 编写固定的指令即可
	1.先确保之前测试的服务端关闭(直接点击关闭即可)
  	2.重新以管理员的身份打开cmd窗口
  		mysqld --install
  	3.初次启动需要人为干预
  	net start mysql
 	 4.关闭所有的cmd 随意打开一个cmd窗口 
  	输入mysql即可链接到服务端
"""
如果想要移除系统服务
	1.先停止服务端
		net stop mysql  管理员身份运行cmd
	2.移除系统服务
		mysqld --remove
"""

修改密码

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

重要概念

库	# 文件夹

表	# 文件

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

操作库的基本SQL语句

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

# 删
	drop database 库名;

操作表的基本SQL语句

如何查看当前在哪个库下
	select database();
		结果如果是NULL表示当前没有切换到任何库下
切换到指定库
	use 库名;

# 在操作库、表、记录的时候 MySQL默认自带的都不要动

create database 库名;
use 库名;
# 查
	show tables;  # 查看当前库下所有的表名称
  show crate table 表名;  # 指定查看某个表的信息
  describe 表名;  # 指定查看表的字段信息  简写 desc 表名;
  
# 增
	create table 表名(
    					字段名称1 字段类型1,
  						字段名称2 字段类型2
  );
  
# 改
	alter table 表名 rename 新表名;  # 修改表名

# 删
	drop table 表名;

操作记录的基本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:28  有梦想的阿九  阅读(26)  评论(0)    收藏  举报