SQL相关概念与MYSQL下载安装卸载


为什么学习数据库

在生活中,每当每当我们登陆微信,QQ,找好友聊天的时候,我们就是在使用数据库。那为什么要学习数据库呢?在编程语言中,我们有数组,集合,文件(如XML文件等),但是前两者不能永久的存储,只能存储在内存当中。而后者文件可以存储在我们的硬盘当中,实现理论上的永久保存。但是存在文件上,乜有问题。如果想存储大量的图片到文件上,存是没问题,但是查询的话,很麻烦了。那怎么办?所以就需要用到了数据库了。

数据库的相关概念

  • DB:数据库

    关于数据库的术语,用法有多种,笔者认为数据库是一个以某种有规则,有组织的方式存储的数据集合即容器,
    可以理解为是一个文件柜。这个文件柜是一个存放数据的物理位置。
    
  • DBMS:数据库管理系统

    DBMS:全称Database Management System,数据库是通过DBMS创建和操作数据库的。
    这里需要注意:
    	生活中,我们通常用数据库这个术语来代表我们使用的数据库软件,这其实是不正确的,确切的说数据库软件称为DBMS
    	(数据库管理系统),数据库是通过DBMS创建和操作的容器。数据库可以是保存在硬件设备上的文件,乜可以不是。
    	但是对于我们来说,数据库究竟是文件还是其他的东西,对我们都不重要,因为我们不是直接访问数据库,而是通过DBMS,
    	由它来替我们访问数据库。
    
  • SQL:结构化查询语言

    SQL:全称Structure Query Language(构化查询语言),专门用来与数据库通信的语言。
    国人与国人之间进行交流,需要使用普通话, 跟数据库交流,我们需要SQL,一个道理。
    
    SQL具有如下优点:
    	* SQL不是某个特定数据库供应商专有语言,几乎所有重要的DBMS都支持SQL
    	* 简单易学
    	* 看上去简单,但实际上是一种强有力的语言,灵活使用,可以进行非常复杂和高级的数据库操作
    
  • 表:某种特定类型数据的结构化清单

    我们将资料存放在文件柜的时候,不是随便乱扔,而是在储物柜中创建一个文件,然后将资料放在这个特定的文件中。
    在数据库中,这种文件称为表。表是一种结构化的文件,可以用来存储某种特定类型的数据。
    可以保存顾客购买的清单,产品目录,或者一些其他信息等。数据库中的每个表都有一个名字,用来标识自己,这个名字是唯一的。
    需要注意的是:
    	存储在表中的数据是一种类型的数据或一个清单。不应该将两种不同类型的东西放在同一个数据表中,
    	比如将用户的清单和订单的清单存放在一起。这样检索和访问比较困难。
    	试想一下你把袜子和内裤放在一起,要找你的内裤的时候,肯定很难找的。所以应该创建两张表,每个袜子和内裤都是一张表。
    	类似Java编程语言中的类
    
  • 列:表由组成,列中存储表中某部分的信息

    列:表中的一个字段,所有表都由一个或者多个列组合而成,可以把数据库理解为一个网格,列就是每个格子。
    其中每个格子存放着一条特定的信息。如:学生表中,一个列中存放着学生的编号,一个列存放着学生姓名,
    等其他的信息都存在各自的列中。类似Java类中的属性。
    
  • 数据类型:所允许的数据的类型

    每个表的列都有相应的数据类型,它限制(允许)该列中存储的数据。例如可以防止在数值字段中录入字符值。
    数据类型还帮助正确的排序数据,并在优化磁盘使用方面起到了重要的作用。
    
  • 行:表中的一行记录

    表中的数据是按行存储的,例如学生表可以每行存储一个学生。
    可以将表理解为网格,网格中垂直(竖着)的列称为表列,水平(横着)的行称为表行。每一行都类似Java中的对象。
    行和记录两个术语可以相互代替,即一行等价于一条记录。
    
  • 主键:一列(多列),其值能够唯一区分表中每个行

    唯一标识表中每行的这个列(或多列)称为主键,主键用来表示一个特定的行,表中每一行都应该有可以唯一标识自己的一列(或多列)。
    例如学生表的学号,订单表的订单号。如果没有主键,在进行更新或者删除指定的行的时候,特别困难,因为无法保证只涉及指定的。
    
    表中任何列都可以作为主键,只需要满足以下条件:
    	* 任意两行都不具有相同的键值
    	* 每个行都必须具有一个主键值(主键列不允许NULL值)
    
    虽然并不总是需要主键,但是大多数情况下都为每个表创建一个主键,以便以后的数据操作和管理。
    
    主键使用的习惯:
    	* 不更新主键列中的值
    	* 不重用主键列的值
    	* 不在主键列中使用可能会更改的值
    
  • 外键

    外键为某个表中的一列,它可以包含另一个表的主键值,定义了两个表之间的关系。
    
    举个例子:
    	有供应商(vendors),产品(products)两张表,在一个存储供应商信息,一个存储产品信息。
    	其中供应商表中每个供应商都具有唯一的标识,这个标识称为主键,可以是供应商ID或者其他。
    	产品表中只存储产品表相关的信息,除了只存储供应商ID(供应商表中的主键)外,不存储供应商其他信息,
    	供应商的主键又叫做产品表的外键,它将供应商和产品进行了关联,可以通过供应商ID能从供应商表中找到相应的供应商的详细信息。
    	
    这样做的好处是:
    	* 供应商信息不重复,从而不浪费时间和空间
    	* 如果供应商信息变动,可以只更新供应商表中的单个记录,相关表中的数据不用改动
    	* 由于数据无重复,数据自然是一致的,这样可以使得处理数据更加简单
    

MySQL

介绍了SQL相关的知识后,就应该开始动手实践了。

什么是MYSQL

数据的所有存储、检索、管理和处理,实际上都是有数据库软件DBMS(数据库管理系统)来完成的,MYSQL就是一种DBMS。它是一种数据库软件。MYSQL存在很久了,并且得到了世界广泛使用。这些都离不开MYSQL如下优点:

  • 成本:MYSQL是完全开源,可以免费使用
  • 性能:MYSQL执行非常快
  • 可信赖:某些声望很高的公司等都在使用MYSQL来处理自己的数据
  • 简单:简单的安全和使用

DBMS的分类

我们已经知道了什么是MYSQL,那么在下载安装MSYQL之前,我们得知道 要安装什么。

DBMS分为两类:

  • 基于共享文件系统的DBMS(如:Access、FileMaker)用于桌面
  • 基于客户机-服务器的DBMS(如:Oracle、MYSQL、SQL Server),乜叫C/S架构,其中客户机和服务器分为两个不同的部分
    • 服务器部分是负责所有数据访问和处理的一个软件,这个软件运行在称为数据库服务器的计算机上。与数据文件打交道的只有服务器软件,关于数据的添加、删除、更新的所有请求都是有服务器完成
    • 客户机是用来跟用户打交道的软件。如请求一个按照学号排序的学生表,则客户机通过网络提交请求给服务软件,服务器处理这个请求,经过处理把结果送回你的客户机软件,客户机可以是MYSQL提供的工具,可以是脚本语言,可以是程序设计语言(C++,C,Java)等

MYSQL版本

  • 社区版(免费)
  • 企业版(收费)

MYSQL下载

MYSQL官网:点进跳转,笔者下载的是社区版,解压版版本,非安装版。

  • 进入官网后,点击downloads,进入下载界面
    在这里插入图片描述

  • 下拉,找到MySQL Community (GPL) Downloads »,点击进入社区版下载页面
    在这里插入图片描述

  • 点击MySQL Community Server
    在这里插入图片描述

  • 此时进入了MYSQL社区版下载页面,当前最新的版本是MYSQL 8的版本,笔者下载MYSQL 5.7的版本
    在这里插入图片描述

  • 点击Archives,进入MYSQL档案页面,根据自己的需求,下载对应的版本
    在这里插入图片描述

  • 此时就进入了下载页面了。
    在这里插入图片描述

  • 如果你是点击Looking for previous GA versions?进入下载页面进行下载的,那么在下载的时候,会出现如下窗口
    在这里插入图片描述

MYSQL安装

成功下载MYSQL后,接下来就安装了。需要提前准备好MYSQL的安装包。

  • 解压MYSQL压缩包得到如下结构
    在这里插入图片描述

  • 5.7的版本的MYSQL根目录是没有data目录和my.ini文件的,其中data目录是mysql初始化的时候会自动创建一个data目录,我们需要自己创建一个my.ini文件,文件内容如下

    [Client]
    port = 3306
     
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=D:\devSoft\mysql-5.7.21
    # 设置mysql数据库的数据的存放目录
    datadir=D:\devSoft\mysql-5.7.21\data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
     
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    
  • 一定要记得更改上面参数配置的目录

  • 使用cmd,进入bin目录,初始化MYSQL,输入如下命令

    mysqld --initialize --user=mysql --console
    
  • 初始化后,会在mysql安装目录生成data文件夹,并生成初始化密码,需要记住密码
    在这里插入图片描述

  • 紧接着输入安装mysql服务命令

    mysqld --install mysql
    
  • 显示service successfully installed 表示安装成功
    在这里插入图片描述

  • 输入启动mysql服务命令

    net start mysql
    
  • 输入登录mysql命令

    mysql -uroot -p
    密码是上面随机生成的密码
    

    在这里插入图片描述

  • 修改mysql登录密码,这里笔者将密码改为123

    set password=password('123');
    
  • 为了后续的操作方便,还需要配置环境变量,在电脑->属性->高级->环境变量中新建MYSQL_HOME
    在这里插入图片描述

  • 在path中配置好
    在这里插入图片描述

  • 配置好,进行验证,ok就安装成功了
    在这里插入图片描述

MYSQL安装过程中出现的问题

  • 初始化的时候,可能会报错,需要重新检查下你的my.ini文件是否正确,尽量复制
  • 在安装mysql服务的时候,可能会出现权限不足的问题,需要自己以管理员的身份启动cmd窗口
  • 提示缺少MSVCP140.dll缺丢,原因是缺少VC运行库,去官网下载安装即可。点击进入官网下载

MYSQL卸载

  • 停止MYSQL服务

    net start mysql
    
  • 使用命令卸载服务

    mysqld -remove mysql
    看到Service seccessfully removed .表示卸载成功了。
    
  • 删除MYSQL安装目录

  • win+R运行输入regedit命令打开注册表,删除如下内容

    删除注册表中的MySQL服务的几个地方:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
    可能还会存在其他的MYSQL目录,通过搜索找到后,乜一并删除。
    
  • 重启电脑

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值