mysql 8.0.15 安装图文教程及数据库基础
作者:SsunTtaoauto
MySQL软件安装及数据库基础,供大家参考,具体内容如下
一、任务
任务一
MySQL 软件安装及数据库基础
任务时间
请于2月26日22:00前完成,在本文章评论打卡。逾期尚未打卡的会被清退。
学习内容
1.软件安装及服务器设置
教程 MySQL 安装 | 菜鸟教程
2.(选做,但是强烈建议) 使用图形界面软件 Navicat for SQL
星球提供Navicat for SQL
简易步骤:
解压缩文件,复制key
打开文件夹中的navicat.exe
用户名随意,输入key,然后连接数据库
输入密码,连接名改成自己喜欢的
剩下的自己探索,怎么在navicat中创建数据库、表等等
3.数据库基础知识
数据库定义
关系型数据库
二维表
行
列
主键
外键
4.MySQL数据库管理系统
数据库
数据表
视图
存储过程
二、软件安装及服务器设置
系统环境:win10 家庭版
2.1 MySQL安装
2.1.1 在MySQL官网 下载 Windows 版本的 MySQL 安装包
地址为:MySQL下载
点击下载Download后会弹出以下界面,点击 No thanks, just start my download
2.1.2 下载完后解压,将 zip 包解压到你想安装的目录,我的路径如下所示:
2.1.3 配置环境变量:
进入 计算机—属性—高级系统设置—环境变量,添加MySQL解压的路径。
2.1.4 接下来配置 MySQL 的配置文件
打开刚刚解压的文件夹 D:\软件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64 ,创建一个配置文件为 my.ini,编辑 my.ini 配置以下基本信息:
[mysql] default-character-set=utf8 [mysqld] port = 3306 basedir=D:\软件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64 datadir=D:\软件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\data character-set-server=utf8 default-storage-engine=INNODB
1.接下来我们来启动下 MySQL 数据库:
以管理员身份打开 cmd 命令行工具,切换目录:
D: cd D:\软件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\bin
输入初始化命令:
mysqld --initialize-insecure --user=mysql
在D:\软件\Mysql\mysql-8.0.15-winx64\mysql-8.0.15-winx64\bin目录下生成data目录
启动输入以下命令即可:
net start mysql
这证明已经连接成功。
2.2 MySQL 重置密码
2.2.1 登录MySQL
输入:
mysql -u root -p
因为之前没设置密码,所以密码为空,直接回车即可:
2.2.2 查询用户密码
查询用户密码命令:
mysql> select host,user,authentication_string from mysql.user;
host: 允许用户登录的ip;
user:当前数据库的用户名;
authentication_string: 用户密码;
如果没密码, root 这一行应该是空的。
2.2.3 设置(或修改)root用户密码:
注意:在MySQL 5.7.9以后废弃了password字段和password()函数
一定不要采取如下形式设置密码:
use mysql; update user set authentication_string="newpassword" where user="root";
这样会给user表中root用户的authentication_string字段下设置了newpassword值;
正确修改root密码的步骤为:
1.如果当前root用户authentication_string字段下有内容,先将其设置为空,没有就跳到步骤 2。
use mysql; update user set authentication_string='' where user='root'
2.使用ALTER修改root用户密码,方法为:
use mysql; ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES;
到此为止自己创建的本地MySQL创建完毕!!!
重新连接即可!!!
三、使用图形界面软件 Navicat for SQL
Navicat for SQL安装包已存百度网盘:navicat+for+mysql10.0.11简体中文
1.解压缩文件,复制key
2.打开文件夹中的navicat.exe
3.用户名随意,输入key,然后连接数据库
4.输入密码(之前如果MySQL重新设置过密码,那这里就填新设置的密码就好),连接名改成自己喜欢的
出现的问题: 这里连接出现失败,如图
解决方案:
这里的问题其实MySQL在之前设置密码时所用的加密方式ALTER user 'root'@'localhost' IDENTIFIED BY '新密码';为强加密,就会出现连接失败的情况;如果使用第二种加密方式ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '新密码';,就可以直接连上了。
成功连接!!!
到此,所需软件的安装及环境配置工作全部完成,可以开心的遨游MySQL的世界啦~~
四、数据库基础知识
4.1 数据库(database)定义
以《SQL必知必会(第4版) 》这本书来说,从 SQL的角度来看,数据库是一个以某种有组织的方式存储的数据集合,是保存有组织的数据的容器(通常是一个文件或一组文件)。
注意: 人们通常用数据库这个术语来代表他们使用的数据库软件, 这是不正确的,也因此产生了许多混淆。确切地说,数据库软件应称为数据库管理系统(DBMS)。数据库是通过 DBMS创建和操纵的容器,而具体它究竟是什么,形式如何,各种数据库都不一样。
4.2 关系型数据库
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。
优点:
1.易于维护:都是使用表结构,格式一致;
2.使用方便:SQL语言通用,可用于复杂查询;
3.复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
4.读写性能比较差,尤其是海量数据的高效率读写;
5.固定的表结构,灵活度稍欠;
6.高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
4.3 二维表
表是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、 产品目录,或者其他信息清单。表是某种特定类型数据的结构化清单。
存储在表中的数据是同一种类型的数据或清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中,否则以后的检索和访问会很困难。 应该创建两个表,每个清单一个表。
数据库中的每个表都有一个名字来标识自己。 这个名字是唯一的,即数据库中没有其他表具有相同的名字。 虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中完全可以使用相同的表名。
模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。模式是关于数据库和表的布局及特性的信息。
4.4 行
表中的数据是按行存储的,所保存的每个记录存储在自己的行内。
你可能听到用户在提到行时称其为数据库记录(record)。 这两个术语多半是可以交替使用的,但从技术上说,行才是正确的术语。
4.5 列
表由列组成。列存储表中某部分的信息。列是表中的一个字段。所有表都是由一个或多个列组成的。
数据库中每个列都有相应的数据类型。数据类型(datatype)定义了列可以存储哪些数据种类。数据类型限定了可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。
数据类型及其名称是SQL不兼容的一个主要原因。
4.6 主键
表中每一行都应该有一列(或几列)可以唯一标识自己。 顾客表可以使用顾客编号,而订单表可以使用订单 ID。雇员表可以使用雇员 ID或雇员社会安全号。
主键(primary key) 是一列(或一组列),其值能够唯一标识表中每一行。没有主键,更新或删除表中特定行就极为困难,因为你不能保证操作只涉及相关的行。
提示: 应该总是定义主键
虽然并不总是需要主键,但多数数据库设计者都会保证他们创建的每个表具有一个主键,以便于以后的数据操作和管理。
表中的任何列都可以作为主键,只要它满足以下条件:
- 任意两行都不具有相同的主键值;
- 每一行都必须具有一个主键值(主键列不允许 NULL值);
- 主键列中的值不允许修改或更新;
- 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)。
主键通常定义在表的一列上,但并不是必需这么做,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
4.7 外键
外键是表中的一列,其值必须列在另一表的主键中。外键是保证引用完整性的极其重要部分。
外键有助防止意外删除。在定义外键后, DBMS不允许删除在另一个表中具有关联行的行。例如,不能删除关联订单的顾客。 删除该顾客的唯一方法是首先删除相关的订单(这表示还要删除相关的订单项)。由于需要一系列的删除,因而利用外键可以防止意外删除数据。
五、MySQL数据库管理系统
5.1 数据库(Database,简称DB)
数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据。更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同。
5.2 数据表(table)
数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储、操作数据的逻辑结构。
根据信息的分类情况,一个数据库中可能包含若干个数据表,每张表是由行和列组成,记录一条数据,数据表就增加一行,每一列是由字段名和字段数据集合组成,列被称之为字段,每一列还有自己的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等。
5.3 数据库系统有3个主要的组成部分
1.数据库(Database System):用于存储数据的地方。
2.数据库管理系统(Database Management System,DBMS):用户管理数据库的软件。
3.数据库应用程序(Database Application):为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
5.4 视图
视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。
如下两种场景一般会使用到视图:
不希望访问者获取整个表的信息,只暴露部分字段给访问者,所以就建一个虚表,就是视图。
查询的数据来源于不同的表,而查询者希望以统一的方式查询,这样也可以建立一个视图,把多个表查询结果联合起来,查询者只需要直接从视图中获取数据,不必考虑数据来源于不同表所带来的差异。
注意: 这个视图是在数据库中创建的,而不是用代码创建的。
5.5 存储过程(Stored Procedure)
MySQL 5.0 版本开始支持存储过程。
存储过程就是为以后使用而保存的一条或多条 SQL语句。可将其视为批文件,虽然它们的作用不仅限于批处理。存储过程是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
优点:
- 存储过程可封装,并隐藏复杂的商业逻辑。
- 存储过程可以回传值,并可以接受参数。
- 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
- 存储过程可以用在数据检验,强制实行商业逻辑等。
缺点:
- 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
- 存储过程的性能调校与撰写,受限于各种数据库系统。
精彩专题分享:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。