目录
一.数据库介绍
1.数据库的演变史
例如前段时间写的ATM:
- 最开始我们把数据保存在文件中
- 这样的文件,文件名不规范,像是kevin|123 kevin#123 kevin@123等等
- 后来我们将数据存到了db文件夹里
- 随着用户注册量的增加,文件数也越来越多,占用了大量的空间,存储和查找也都不方便,速度也很慢
- 再后来就是现在的数据库了
- 存储数据,查找数据都很便捷
2.数据存储的发展史
我们以游戏为例
- 单级游戏:本质上是把数据都存储在了本地
- 网络游戏:本质上是把数据存在了一个公共的地方,以后不管你身在何处使用数据的时候都是从这个公共的地方取值
3.数据库的本质
本质上就是一款基于C/S架构编写的软件
既然是C/S架构的软件,那就必然有服务端和客户端,理论上来说,我们自己也能够开发一款数据库软件,只需要开发一个客户端,一个服务端即可,只不过我们开发的数据库没人用
这个时候一些厉害的程序员开发了很多款数据库软件,我们只需要学会如何使用就行了
4.数据库的分类
- 关系型数据库
- MySQL、Oracle、PostgreSql、SQL Server、db2、access、MariaDB、sqllite
- MySQL:开源的
- Oracle:收费的
- MariaDB:和MySQL是同一个开发团队
- MySQL、Oracle、PostgreSql、SQL Server、db2、access、MariaDB、sqllite
- 非关系型数据库
- Redis缓存数据库(五大数据类型)、memcache数据库(支持一种字符串类型的K:V键值对)、MongoDB数据库(爬虫)
- Redis缓存数据库基本上是把memcache数据库淘汰了
关系数据库的特点:具备固定的表结构,表与表之间可以建立关系(Excel表格)
非关系数据库的特点:没有表结构,他的存储形式是K:V键值对的形式
5.SQL与nosql的介绍
MySQL数据库为了兼容各个语言就统一了格式:
关系型数据库:SQL
非关系型数据库:nosql
二.MySQL数据库介绍
1.版本问题
现在常用的几个MySQL数据库版本:
MySQL5.6:使用较多,比较稳定
MySQL5.7:使用较多,比较稳定
MySQL8.0:新版本,对于MySQL来说,版本更新不变的是SQL语句的书写
目前使用的是5.6,线上环境最好不要用最新版,尤其是8.0
数据库软件它是需要下载和安装的,如果你的电脑上已经装过了,如果有这种情况:你之前装过,但是卸载的时候,方法不对,就会出现残留文件,你会发现在此装新的时候,就装不上了,装上了启动不起来.
2.MySQL如何使用
既然是一款C/S架构的软件,那必然就会有服务端和客户端,我们需要先启动服务端,然后启动客户端连接
(1) mysqld.exe是服务端,应该先启动这个文件, 这里不能双击了,需要通过cmd的方式启动
步骤:
在bin目录下,执行mysqld就是启动服务端的
在bin目录下,执行mysql就是客户端来链接的,输入mysql即可,初次链接默认是没有密码的
# 停掉MySQL的服务端:ctrl + c(2)加入环境变量:bin目录所在的路径加入到环境变量中
(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
3.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用户的权限高,一般功能首先,就是只能查看,不能操作
4.如何修改密码
1. 关闭服务端
2. '跳过授权表'的形式启动服务端
'跳过授权表' >>>: 意味着以后客户端来链接服务端的时候,只需要用户名,不在验证密码
3. 如何跳过授权表
mysqld --skip-grant-tables
4. 跳过授权表成功之后,修改管理员的密码
update mysql.user set password=password('1234') where Host='localhost' and User='root';
5.基本SQL语句的使用
"""补充几个重要的概念"""
库 >>> 文件夹
表 >>> 文件
记录 >>> 文件中得一行行数据
字段 >>> id name age gender 其实就表的表头id name age gender
1 kevin 20 female
2 jeremy 21 female
3 jerry 22 female
4 tank 23 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;