- 说明
- 1、数据演变史
- 2、数据存储发展史
- 3、数据库软件的本质
- 4、数据库的分类
- 5、SQL与NoSQL的由来
- 6、MySQL简介
- 7、MySQL的基本使用
- 8、系统服务
- 9、密码相关操作
- 10、相关概念的介绍
- 11、基本的SQL语句
- 12、针对库的SQL语句
- 13、针对表的SQL语句
- 14、针对记录的SQL语句
说明
简介:当前阶段的数据库主要以开发为主(操作SQL语句),为后续的框架铺垫
概要:
1、数据演变史
2、数据库软件的本质
3、MySQL简介
4、MySQL下载与安装
5、基本配置
6、基本的SQL语句
1、数据演变史
1、单独的文本文件(eg:python文件操作)
特点:当前阶段数据没有固定的存放位置和格式
例:
文件:user.txt
数据格式:json|123
'''程序之间无法实现兼容'''
2、软件开发目录规范
特点:规范了数据的存储位置及文件名
'''数据及文件的查找变的简单了,但是并没有解决核心问题'''
3、数据库阶段
特点:规范了软件的存储位置及数据的格式
'''目前阶段正在使用,解决的程序之间无法兼容的核心问题'''
2、数据存储发展史
1、单击游戏阶段
特点:数据各自保存在本地计算机上,无法实现不同计算机之间的数据交互或者共享
2、多级游戏阶段
特点:数据统一保存在固定的服务器上(计算机),实现了不同计算机之间的数据交互问题,
前提:该阶段的数据交互与共享必须是基于网络的基础上
'''为了数据的安全,通常还会采用集群策略来分担风险'''
3、数据库软件的本质
前提:我们在学习数操作据库时,实际上是在操作一款数据库软件(当然本质上还是通过数据库软件来操作数据库)
# 数据库本质上是一款cs架构的软件(客户端与服务端)
既然数据库本质是一款你cs架构的软件,那么也就意味着
每一个优秀的程序员都具备独自开发一个数据库软件的能力(
当然不是我这种啦)
在当前的社会背景下,有很多的大牛都具备编写数据库软件的能力,
并且市面上也确实存在很多款数据库软件
'''
数据库在狭义层面上来说
指的就是处理数据的底层程序
广义层面上来说
指的是操作这些底层程序的便捷应用软件
总得来说,学习数据库很多时候学习的是配套的数据库软件
'''
4、数据库的分类
市面上的数据库大致分为两类:关系型数据库与非关系型数据库
1、关系型数据库
eg:MySQL,Orcale,PsotgreSQL,MariaDB,SQLite,SQL Server,db2
MySQL:开源免费 使用非常规范,当前市面上使用最为广泛
Oracle:收费 维护成本高,安全性极高,大型公司可能会使用
PostgreSQL:支持二次开发
MariaDB:MySQL的替代产品(并且有自己的特性)
sqlite:小型数据库(django框架自带该数据库)
2、非关系型数据库
eg:Redis,mongoDB,memcache
Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
mongoDB:文档型数据库 可以用在大数据和爬虫领域
memcache:已经被redis淘汰
"""
1.两类数据库的区别
关系型数据库
拥有固定的表结构 并且表与表之间可以建立代码层面的关系
非关系型数据库
没有固定的表结构 数据存储采用的是K:V键值对的形式
2.这么多数据库如何学习
两大类数据库操作逻辑基本一致
每一类学习一个基本就可以掌握所有
关系型学MySQL
非关系型学redis、mongodb
"""
5、SQL与NoSQL的由来
数据库的服务端为了能够实现与不同的客户端之间进行数据的交互,
规定了统一的交互方式
使用关系型数据库:SQL语句
使用非关系型数据库:NoSQL语句
#注:NoSQL有时表示非关系型数据库
6、MySQL简介
1、MySQL主要版本介绍:
5.6:使用频率较高的版本
5.7:当前过渡阶段版本
8.0:当前最新版本,功能较为强大
#注:不同的版本之间的区别主要在于底层的逻辑,而SQL语句几乎是一模一样的,对刚接触并学习MySQL来说,使用5.6版本即可(其他版本也可)
2、MySQL软件的下载
mac电脑下载网址:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
windows官网网址:https://www.mysql.com/
- 下载及安装(以windows为例)
1、进入官网以后,选择图中的Dowload
2、点击Dowload后,滑到最底端,选择MySQL Community (GPL) Downloads »
3、进入如下界面,选择MySQL Community Server
)
4、进入如下界面,点击Archives
选择想要下载的版本
5、选择对应版本的压缩包下载
上面说到了MySQL又分为客户端与服务端,MySQL为了便于用户使用,
在我们下载的压缩包里,已经囊括了服务端与客户端
-
目录介绍
下载完压缩包以后,对压缩包进行解压,解压完成以后,来到解压完成后的位置,打开相应的文件夹
1、bin文件夹
存放相关的启动文件
mysql.exe 客户端启动文件
mysqld.exe 服务端启动文件
2、data文件夹
存放在操作MySQL时产生并保存的数据
3、my-default.ini
存放相关的配置文件
4、README
存放MySQL软件的相关简介
7、MySQL的基本使用
# 在cmd命令窗口下对mysql进行操作
1、环境变量的配置
将mysql.exe、mysqld.exe文件所在路径添加到系统环境变量中
步骤:>>>鼠标右键此电脑
>>>高级系统设置
>>>环境变量
>>>选择系统变量里的Path,单击编辑
>>>选择新建,将mysql.exe、mysqld.exe文件所在路径粘贴进去就可以了
2、启动MySQL服务端(一定要先启动服务端再启动客户端)
1、win+r输入cmd进入命令窗口
前期在操作的时候最好使用管理员模式打开cmd命令窗口,避免发生权限问题出现报错情况
步骤:在本机搜索界面,搜索cmd右键选择以管理员模式打开,这里不再进行演示
2、直接输入mysqld启动服务端(当前命令窗口即为MySQL服务端,不要关闭)
这里说明一下我遇到的问题,由于我之前安装过了MySQL5.6.51版本,
后面又卸载了,在输入mysqld后没反应的情况,本人也是弄了好久,最终成功解决了问题
出现问题的情况:使用mysqld启动没反应,用net start mysql提示找不到系统文件
解决措施:1、win+r输入regedit进入注册表cmd-->regedit-->HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services-->Mysql,
修改ImagePath为mysql所安装的路径下的mysqld即可
2、使用mysqld --remove移除之前添加的系统服务
3、重新输入mysqld就可以正常的启动mysql服务端了
3、重新开设一个新的cmd窗口充当客户端
直接输入mysql即可登录 # 该模式为游客模式登录
mysql -u用户名 -p密码 # 账号登录(本地使用)
mysql -hIP地址 -P端口号 -u用户名 -p密码 # 完整命令
#ps:第一次登录,root用户没有密码,直接连续回车即可
8、系统服务
上面说到了要想操作MwSQL,服务端必须要存在,但是每次都必须要开设一个cmd窗口充当服务端,
这样操作起来很麻烦,因此我们可以将MySQL的服务端制作成系统服务并设置成开机自启,关机自关闭,这样我们
就不用再每次手动开设服务端了。
如何制作MySQL系统服务并设置成开机自启,关机自关闭
# 操作步骤
1、关闭之前的服务端
2、查看当前计算机的系统服务列表
1、win+r输入service.msc
2、查看是否存在mysql系统服务
3、若未存在,则以管理员身份运行cmd命令窗口
制作MySQL系统服务时,切记一定要以管理员身份运行cmd,
否则会出现无权限或者报错的问题
直接输入mysqld --install # 这一步仅仅时添加到了系统服务中,第一次需要手动启动
4、重启动mysql系统服务
1、重复第二步的操作,找到mysql,右键选择属性,启动类型选择自动,服务状态点击启动,点击确定就完成了
2、cmd命令窗口模式下输入:net start mysql
# 其他服务命令(涉及到mysql服务端操作一律以管理员身份打开cmd命令窗口进行操作)
停止服务:net stop mysql
移除系统服务:mysqld --remove
9、密码相关操作
# SQL语句的结束必须使用分号(重点)
上面提到,在第一次本地登录MySQL时,管理员用户是没有密码的,
但是这样安全性显然很低,因此我们需要针对管理员用户设置密码
# 针对管理员用户需要设置密码
# 方式1:直接在cmd命令窗口内使用mysqladmin命令
mysqladmin -uroot -p原密码 password 新密码
eg:mysqladmin -uroot -p password 123 #初次设置密码,该次登录需要输入原密码进行确认
mysqladmin -uroot -p123 password 666
# 方式2:直接在登录状态下修改当前登录用户的密码
set password=PASSWORD('密码');
eg:set password=PASSWORD('123')
# 忘记密码如何解决(了解)
方式1:前期数据库里没有数据的情况,直接从头再来
方式2:稍作了解(因为一般情况我们也接触不到这一点)
1、关闭服务端
2、以跳过授权表的方式重启服务端 # 该方式只需要提供用户名就可以登录
mysqld --skip-grant-tables
3、新开一个cmd窗口,以管理员身份登录
mysql -uroot -p,回车即可
4、修改管理员用户密码
update mysql.user set password=password(123) where user="root" and host="localhost";
5、关闭服务端再正常启动
CTRL + C直接关闭服务端
net start mysql正常启动服务端
6、使用修改之后的密码登录
mysql -uroot -p
#ps:在登录阶段,出现warning时,皆是mysql出于安全性所给与的建议,并不会影响实际的操作
10、相关概念的介绍
在学习MySQL之前,要对三个重要概念进行了解
什么是库、表、记录?
# 通俗一点说
库 >>> 文件夹
表 >>> 文件夹里的文件
记录 >>> 文件夹里的文件里的一行行内容
11、基本的SQL语句
"""SQL语句的结束必须使用分号"""
# 1、如何查看所有的数据库名称
show databases; # 会有一个临时产生在内存里的库information_schema
# 2、如何查看所有表名称
1、切换库
use 库名; # 类似于双击进入文件夹
2、查看当前库所有的表名称
show tables;
# 3、如何查看所有的记录
select * from 表名;
#ps:如果内容较多显示不全出现错乱的情况,可以在语句后面加上\G
12、针对库的SQL语句
# 增
creat database 库名;
# 删
drop database 库名;
# 改
alter database 数据库名 charset='gbk';
# 查
show databases; # 展示所有的数据库
show create database 数据库名; # 定向查看某个库
13、针对表的SQL语句
## 在操作表之前必须要有库
1、创建数据库
create database 数据库名;
2、查看当前所在的库
select database();
3、切换库
use 数据库名;
# 增
create table 表名(字段名1 字段类型1,字段名2 字段类型2);
# 删
drop table 表名;
# 改
alter table 表名 rename 新的表名; # 修改表名
alter table 表名 change 字段名 新的字段名 字段类型; # 修改表中的字段名和类型
alter table 表名 modify 字段名 字段类型; # 修改字段类型
# 查
show tables; # 展示当前库下的所有表
show create table 表名; # 定向查看指定表的信息
describe 表名; # 查看表的具体信息(常用)可简写为 desc 表名;
14、针对记录的SQL语句
## 在对记录进行操作时,必须要先确定库和表
# 增
insert into 表名 values(数据,数据,数据); # 单条数据
insert into 表名 values(),(),(); # 多条数据
# 删
delete from 表名 where 筛选条件;
# 改
update 表名 set 字段名='新数据' where 筛选条件;
# 查
select * from 表名; # 查询表中的所有记录
15、字符编码问题
# 查看MySQL内部默认的编码情况
\s;
注:我们在往表中插入数据时,若数据含有中文,则我们在查看的时候会出现乱码的问题,
这也就是我们所说的字符编码的问题,具体应该怎么解决?
1、拷贝并粘贴一份默认的配置文件my-default.ini文件。重命名为my.ini
2、拷贝固定的配置信息,将以下信息粘贴到my.ini文件里
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3、重启MySQL服务端
net stop mysql # 关闭MySQL服务端
net start mysql # 重启启动MySQL服务端