今日内容详细
数据库数据的演变史
"""以ATM为例"""
1. 把数据都存在了文件中
文件名不规范
kevin|123 kevin@123 kevin*123
2. 存储数据的文件越来越多,放在db文件夹
随着用户的注册量越来越多,文件数也会越来越多,会占用大量的空间,以及查询和存储都不方便,还有速度很慢
3. 数据库软件就能够解决以上所有的问题:存储数据的
# 用起来非常的方便,你会爱上它
数据存储的发展史
1. 单机游戏
# 本质上是把数据都存在了本地
2. 网络游戏
# 本质上是把数据存在了一个公共的地方,以后不管你身在何处使用数据的时候都是从这个公共的地方取值
数据库的本质
"""本上就是一款基于C/S架构编写的软件"""
既然是cs架构的软件,那就必然会有服务端和客户端,理论上来说,我们自己也能够开发一款数据库软件,只需要开发一个客户端,一个服务端即可。只不过你开发的数据库软件没人用,只能你自己玩。
这个时候就有一些NB的程序员,开发了很多款的数据库软件,当然,你确实在市面上也看到了的确有很多的数据库软件,我们只需要去学会如何使用即可.
数据库的分类
1. 关系型数据库
MySQL、Oracle、PostgreSql、SqlServer、db2、access、MariaDB、sqllite等
MySQL:开源的
Oracle:收费的
MariaDB:和MySQL的作者是一个
2. 非关系型数据库
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
非关系型数据:没有表结构,它的存储形式是:K:V键值对的形式
name:kevin
age:20
"""
SQL与nosql的介绍
MySQL数据库为了兼容各个语言,那么,就统一规范了格式:
关系型数据库:SQL
非关系型数据库:nosql
MySQL数据库的介绍
1. 版本问题
# 5.5 之前的都有,哪些版本目前几乎都不用了
MySQL5.6 # 使用较多的,比较稳定的
MySQL5.7 # 使用较多的,比较稳定的
MySQL8.0 # 新版本,对于MySQL来说,版本的更新不变的是SQL语句的书写
"""我们目前使用5.6,当然我建议最好不要是新版本,尤其是8.0的版本,线上环境最好不要使用新版本"""
数据库软件它是需要下载和安装的,如果你的电脑上已经装过了,如果有这种情况:你之前装过,但是卸载的时候,方法不对,就会出现残留文件,你会发现在此装新的时候,就装不上了,装上了启动不起来.
# 借助于一些杀毒软件,检测出来一些残留文件,把这个检测出来的残留文件给删掉就可以了
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';
"""课下把这个修改的过程练习3遍!!!"""
基本的SQL语句的使用
"""补充几个重要的概念"""
库 >>> 文件夹
表 >>> 文件
记录 >>> 文件中得一行行数据
字段 >>> 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;