数据库入门

目录

说明

简介:当前阶段的数据库主要以开发为主(操作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服务端
上一篇:5. ByteBuf


下一篇:Grafana v8.3.3 & jmeter-influxdb2-backend