数据库数据的演变史
ATM:1. 把数据都存在了文件中,文件名不规范 kevin|123 kevin@123 kevin*123
2. 存储数据的文件越来越多,放在db文件夹,占用空间,查询存储不方便,速度慢# 数据库软件能解决:1000 0000以下不影响速度,加索引更快,用起来方便
数据存储的发展史
1. 单机游戏 # 产生的数据在本机电脑上存着
2. 网络游戏 # 有公共存储数据的地方,不管在何处使用数据时都是从这个公共的地方取值
数据库的本质和分类
# 本质上就是一款基于C/S架构编写的软件,必然有服务端和客户端,我们自己也能开发一
款数据库软件,只需要开发一个客户端,一个服务端即可
# 分类:
关系型数据库:
MySQL、Oracle、PostgreSql、SqlServer、db2、access、MariaDB、sqllite等
MySQL:开源的
Oracle:收费的
MariaDB:和MySQL的作者是一个非关系型数据库:
Redis缓存数据库(五大数据类型) memcache数据库(K:V键值对) MongoDB数据库(爬虫)# 关系型数据的特点:具备固定的表结构,表与表之间可以建立关系(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语句的书写
# 数据库软件是需要下载和安装的,卸载不彻底再安装会启动不起来MD5 效验安全性
2. 下载与安装:官网下载:https://www.mysql.com/
3. 主要文件介紹
bin
mysql.exe # 自带的客户端
mysqld.exe # 自带的服务端data:MySQL的数据存储的地方
my-default.ini:这个是MySQL的配置文件
README文件是MySQL的说明文件,类似于是说明书4. MySQL使用
# 先启动服务端,然后启动客户端链接(cmd)
5.MySQL服务的制作
# 目的:就是可以把服务端的cmd窗口关闭,只留一个客户端的cmd即可
# 如何查看服务: 1. 在任务栏里打开任务管理器------>服务
2. 点击此电脑------>管理------->服务
3. win + R------->services.msc----------->服务# 制作MySQL的服务步骤
mysqld --install (需要管理员权限)
net start mysql # 启动服务的 (需要管理员权限)/ 直接点击启动
net stop mysql # 停止服务 (需要管理员权限)
mysqld --remove # 卸载服务
mysqld --install # 安装服务"""卸载服务的时候一定要先关闭服务"""
MySQL如何登录
# 服务端需要设置密码,然后让客户端通过用户名和密码进行登录
mysqladmin -u 用户名 -p 旧密码 password 新密码 # 修改管理员密码也是这个命令
mysqladmin -u root -p password 123
# 如果不用root登录就是游客模式,权限比较低,一般功能首先,只能查看,不能操作
修改密码
1、管理员身份运行cmd
net stop mysql # 停止mysql服务,回车运行
mysqld --skip-grant-tables # 使用无验证方式启动mysql服务
2、打开新cmd窗口输入命令,
mysql # 无验证登入数据库
use mysql; # 用数据库mysql
update user set password=password('新密码') where user='root'; # 修改密码
3、关闭两个cmd窗口,启动MySQL
4、更改成功,尝试登录
基本的SQL语句的使用
库 >>> 文件夹 表 >>> 文件 记录 >>> 文件中得一行行数据 字段 >>> 表的表头 # 先有 库 >>> 表 >>> 记录 >>> 字段
一个库中可以有多张表,一个表中可以有很多条记录,也可以有多个字段
"""在MySQL中,SQL语句都是要以分号结尾;"""
# 库的SQL语句:
create database 库名; # 增加
show databases; / show create database db1; # 查看库
alter database db1 charset='utf8'; # 修改库(基本上不用,直接删掉直接创建)
drop database db1; # 删库跑路,不要轻易使用
# 针对表的SQL语句:
use 库名; # 如何选择库 use 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; # 删除表