Python39days

发布时间 2023-10-20 17:04:57作者: 拆尼斯、帕丁顿

数据库数据的演变史

数据存储的发展史

数据库的本质——cs架构软甲

数据库的分类

SQL与nosql的介绍

MySQL的介绍

MySQL的下载与安装
MySQL服务的制作

MySQL如何登陆

管理员密码的修改以及忘记密码怎么办

基本的SQL语句(针对库,表,记录的增删记录)

————————————————————————————————————————————————————————————————————————————————

以ATM为例

1.把数据都存在了文件中

  文件名不规范

  kaiwen|123  kaiwen@123  kaiwen*123

2.存储数据的文件越来越多,放在db文件夹

  随着用户的注册量越来越多,文件数也会越来越读,会占用大量的空间,以及查询和存储都不方便,还有速度很慢

3.数据库软件就能够解决以上所有的问题:存储数据的

——————————————————————————————————————————————————————————————————————————————

数据存储比如说 游戏
单机游戏——网络游戏

数据本地存储——公共存储取值

——————————————————————————————————————————————————————————————————————————————数据库的本质 
(本质上基于cs架构编写的软件)也会有客户端和服务端,理论上来说也能自主开发一些数据库软件,区别在于有无使用,
数据库(database)简称DB,是一个文件集合,是一个存储数据的仓库,本质上是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查等操作,音乐,视频等文件也是数据

——————————————————————————————————————————————————————————————————————————————

数据库的分类

关系型数据库

MySQL,Oracle,PostgreSql,SqlServer,db2,access,MariaDB,sqllite等

MySQL:开源

Pracle:收费

MAriaDB =MySQL

非关系型数据库

Redis缓存数据库(五大数据类型) memcache数据库(支持一种字符串类型的K:V键值对) MongoDB数据库(爬虫)
 Redis缓存数据库基本上是把memcache数据库淘汰

关系型数据的特点:具备固定的表结构,表与表之间可以建立关系(Excel表格)
id name age gender
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
1 kevin 20 male
① 基于 ACID 事务特性,保证数据的一致性和完整性

② 数据以表格的形式存在,易于存储,操作和管理

③ 通过SQL进行数据的CRUD操作,具有丰富的查询功能

④ 可以应对高并发,高可用的需求

⑤ 数据库之间的关系比较清晰,容易设计,维护和扩展

 关系型数据库具有 数据一致性,数据结构清晰,SQL灵活性,处理并发能力强,应用范围广的特点

非关系型数据:

 

优点:

  • 关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。
  • 使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
  • 速度快,效率高。
  • NoSQL 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。
  • 海量数据的维护和处理非常轻松。
  • 非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。可以实现数据的分布式处理。

缺点:

  • 非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
  • 非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
  • 功能没有关系型数据库完善。

——————————————————————————————————————————————————————————————————————————————

MySQL数据库为了兼容各个语言,那么,就统一规范了格式:
关系型数据库:SQL
非关系型数据库:nosql

——————————————————————————————————————————————————————————————————————————————

1. 版本问题
# 5.5 之前的都有,哪些版本目前几乎都不用了
MySQL5.6 # 使用较多的,比较稳定的
MySQL5.7 # 使用较多的,比较稳定的
MySQL8.0 # 新版本,对于MySQL来说,版本的更新不变的是SQL语句的书写


数据库软件它是需要下载和安装的,如果你的电脑上已经装过了,如果有这种情况:你之前装过,但是卸载的时候,方法不对,就会出现残留文件,你会发现在此装新的时候,就装不上了,装上了启动不起来.

# 借助于一些杀毒软件,检测出来一些残留文件,把这个检测出来的残留文件给删掉就可以了

2. 下载与安装
官网下载:https://www.mysql.com/
3. 主要文件介紹
bin
mysql.exe # 自带的客户端
mysqld.exe # 自带的服务端

data:MySQL的数据存储的地方
my-default.ini:这个是MySQL的配置文件
README文件是MySQL的说明文件,类似于是说明书
4. MySQL如何使用
"""它是一款C/S架构的软件,那必然就会有服务端和客户端,我们需要先启动服务端,然后启动客户端链接"""
4.1
mysqld.exe是服务端,应该先启动这个文件, 这里不能双击了,需要通过cmd的方式启动
步骤:
在bin目录下,执行mysqld就是启动服务端的
在bin目录下,执行mysql就是客户端来链接的,输入mysql即可,初次链接默认是没有密码的
# 停掉MySQL的服务端:ctrl + c

4.2
加入环境变量:bin目录所在的路径加入到环境变量中
4.3 MySQL服务的制作
目的:就是可以把服务端的cmd窗口关闭,只留一个客户端的cmd即可
# 如何查看服务
1. 在任务栏里打开任务管理器------>服务
2. 点击此电脑------>管理------->服务
3. win + R------->services.msc----------->服务

"""制作MySQL的服务步骤"""
1. mysqld --install(需要管理员权限) # Install/Remove of the Service Denied!
mysqld --install(需要管理员权限) # Service successfully installed.
# 第一次安装成功服务是没有启动的,需要手动启动一次
2. 启动服务
1. 直接点击启动------》mysqld------>服务端就不需要在打开cmd启动了---->后台工作
2. 命令启动
net start mysql # 启动服务的 (需要管理员权限)
3. 关闭服务
net stop mysql # 停止服务 (需要管理员权限)
3. 如何卸载服务以及安装服务
"""卸载服务的时候一定要先关闭服务"""
mysqld --remove
mysqld --install

——————————————————————————————————————————————————————————————————————————————

MySQL如何登录

服务端需要设置密码,然后让客户端通过用户名和密码进行登录
# 默认情况下,初次安装成功,链接是不需要密码的

如何给管理员设置密码
mysqladmin -u 用户名 -p 旧密码 password 新密码 # 修改管理员密码也是这个命令
mysqladmin -u root -p password 123

## 管理员就具备了密码
客户端在链接的时候需要使用密码链接:
mysql -u root -p # 链接的是本地的MySQL

# 完整的链接命令
mysql -h 127.0.0.1 -P 3306 -u root -p

如果不用root登录就是游客模式,权限比较低,没有root用户的权限高,一般功能首先,就是只能查看,不能操作

——————————————————————————————————————————————————————————————————————————————

忘记密码如何做?

忘记密码就需要修改密码
修改密码的步骤

1. 关闭服务端
2. '跳过授权表'的形式启动服务端
'跳过授权表' >>>: 意味着以后客户端来链接服务端的时候,只需要用户名,不在验证密码

3. 如何跳过授权表
mysqld --skip-grant-tables
4. 跳过授权表成功之后,修改管理员的密码
update mysql.user set password=password('1234') where Host='localhost' and User='root';

——————————————————————————————————————————————————————————————————————————————

基本的SQL语句的使用

SQL语句分类
数据查询语言(Data Query Language, )DQL

负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。

数据定义语言 (Data Definition Language,)DDL

负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成

数据操纵语言(Data Manipulation Language,)DML

负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。

数据控制语言 (Data Control Language)

它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。

库 >>> 文件夹

表 >>> 文件


记录 >>> 文件中得一行行数据


字段 >>> id name age gender 其实就表的表头

id name age gender
1 ly 20 female
1 ly 20 female
1 ly 20 female
1 ly 20 female

顺序是: 库 >>> 表 >>> 记录 >>> 字段
一个库中可以有多张表,一个表中可以有很多条记录,也可以有多个字段

在MySQL中,SQL语句都是要以分号结尾;
1. 针对库的SQL语句
 增加
create database 库名;

查看库
show databases;
show create database db1;

修改库(基本上不用,直接删掉直接创建)
alter database db1 charset='utf8';

 删库跑路
drop database db1; # 不要轻易使用(测试环境随便使用,线上环境一般情况下你是没有权限)

2. 针对表的SQL语句
如何选择库
use 库名;
use db1; # 双击db1文件夹了

 增加表
create table 表名 (id 数据类型, name 数据类型, gender 数据类型)
create table t1(id int, name varchar(32), gender varchar(32));

 修改表
alter table t1 rename t2; # 修改表名
 查看表
show tables;
show create table t1; # 查看表结构
desc t1; # 查看表结构,格式化了
 删除表
drop table t2;