赞
踩
链接MySQL是一种流行的关系型数据库管理系统(RDBMS),广泛用于开发 Web 应用程序和其他类型的软件。它提供了一个可靠、灵活和高性能的数据存储解决方案。
安装MySQL可以通过以下步骤完成:
注意:在安装MySQL之前,请确保您的计算机满足安装要求,并备份重要数据以防止意外数据丢失。
这些是一般情况下安装MySQL的步骤。具体操作可能因操作系统和MySQL版本而有所不同。如果您遇到任何问题,可以参考官方文档或在安装过程中查找特定的安装指南。
MySQL的4大版本
MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于 大多数普通用户。
MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的 功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个 Server。需要在社区版或企业版的基础上使用。
MySQL Cluster CGE 高级集群版,需付费。
本篇文章选择社区版下载进行安装,
步骤1:打开MySQL官方地址:MySQL。
在这里插入图片描述
步骤2:进入官网后,点击 DOWNLOADS,进入下载页面。然后,点击 MySQL Community(GPL) Downloads
步骤3:点击 MySQL Community Server
步骤4:在 General Availability(GA) Releases 中选择适合的版本
Windows平台下提供两种安装文件:MySQL二进制分发版(.msi安装文件)和免安装版(.zip压缩文件)。
一般来讲,应当使用二进制分发版,因为该版本提供了图形化的安装向导过程,比其他的分发版使用起来要简单,不再需要其他工具启动就可以运行MySQL。
在 Windows 系统下推荐下载 MSI 安装程序,点击 Go to Download Page 进行下载。
Windows 下的 MySQL8.0 安装有两种安装程序:
mysql-installer-web-community-8.0.29.0.msi 下载程序大小:2.3M;安装时需要联网安装组件。
mysql-installer-community-8.0.29.0.msi 下载程序大小:439.6M;安装时离线安装即可(推荐)。
本篇文章选择安装的是8.0.26版本,而现在最新版本为8.0.29,若要下载8.0.26版本,选择Archives,选择8.0.26版本下载。
若要安装MySQL5.7版本的话,选择Archives,接着选择MySQL5.7的相应版本即可。本文下载MySQL5.7.34的版本。
步骤5:下载MySQL安装包。注意:下载安装包需要登录Oracle账户,本篇文章默认Oracle账户已登录的状态。MySQL安装包如下图所示。
MySQL下载完成后,找到下载文件,双击进行安装,具体操作步骤如下。
步骤1:双击下载的 mysql-installer-community-8.0.26.0.msi 文件,打开安装向导。
步骤2:打开“Choosing a Setup Type”(选择安装类型)窗口,总有5种安装类型:
Developer Default(默认安装类型)
Server only(仅作为服务器)
Client only(仅作为客户端)
Full(完全安装)
Custom(自定义安装)。
这里选择“Custom”类型按钮,单击“Next(下 一步)”按钮。
步骤3:打开“Select Products” (选择产品)窗口,可以定制需要安装的产品清单。本文中,选择“MySQL Server 8.0.26-X64”后,单击“→”添加按钮,即可选择安装MySQL服务器,如图所示。采用通用的方法,可以添加其他需要安装的产品。
此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。
单击“Advanced Options”(高级选项)则会弹出安装目录的选择窗口,如图所示,此时可以分别设置 MySQL的服务程序安装目录和数据存储目录。如果不设置,默认分别在C盘的Program Files目录和 ProgramData目录(注意:这是隐藏目录)。如果自定义安装目录,自定义的目录必须没有中文。另外,建议安装目录和数据目录分开存放。
步骤4:在上一步选择好自定义目录之后,点击“OK”,再单击“Next”(下一步)进入确认窗口,如图所示。单击 “Execute”(执行)按钮开始安装。
步骤5:安装完成后在“Status”(状态)列表下将显示“Complete”(安装完成),如图所示。
MySQL安装之后,需要对服务器进行配置。具体的配置步骤如下。
步骤1:在安装完成后,单击“Next”(下一步)按钮,就可以进入产品配置窗口,如图所示。
步骤2:单击“Next”(下一步)按钮,进入MySQL服务器类型配置窗口,如图所示。端口号一般选择默认端口号3306。
其中,“Config Type”选项用于设置服务器的类型。而服务器的类型共有三种,如图所示。
Development Computer(开发机器):该选项代表典型个人用桌面工作站。此时机器上需要运行多个应用程序,那么MySQL服务器将占用最少的系统资源。
Server Computer(服务器):该选项代表服务器,MySQL服务器可以同其他服务器应用程序一起运行,例如Web服务器等。MySQL服务器配置成适当比例的系统资源。
Dedicated Computer(专用服务器):该选项代表只运行MySQL服务的服务器。MySQL服务器配置成使用所有可用系统资源。
步骤3:单击“Next”(下一步)按钮,打开设置授权方式窗口。在MySQL8.0版本之后,有两种授权方式:
Use Strong Password Encryption for Authentication(RECOMMENDED):这是 MySQL8.0 版本提供的新的授权方式,采用SHA256基础的密码加密方法,使得数据库会更加安全。
Use Legacy Authentication Method(Retain MySQL 5.x Compatibality):传统的授权方式,它保留 5.x 版本的兼容性。
步骤4:单击“Next”(下一步)按钮,打开设置服务器root超级管理员的密码窗口,需要输入两次同样的登录密码。除了设置root超级管理员之外,还可以通过“Add User”添加其他用户,添加其他用户时,需要指定用户名、允许该用户名在哪台/哪些主机上登录,还可以指定用户角色等。本文暂不添加用户。
步骤5:单击“Next”(下一步)按钮,打开设置服务器名称窗口,如图所示。该服务名会出现在Windows 服务列表中,也可以在命令行窗口中使用该服务名进行启动和停止服务。本文将服务名设置为 “MySQL8.0”。如果希望开机自启动服务,也可以勾选“Start the MySQL Server at System Startup”选项(推荐)。
服务器的方式运行服务有两种:
Standard System Account:标准系统用户(推荐使用)
Custom User:自定义用户
步骤6:单击“Next”(下一步)按钮,打开确认设置服务器窗口,单击“Execute”(执行)按钮,执行配置。
步骤7:全部都打对勾,表示配置完成。单击“Finish”(完成)按钮,即可完成服务器的配置。
步骤8:如果还有其他产品需要配置,可以选择其他产品,然后继续配置。本文没有其他产品的配置,直接单击“Next” (下一步),完成整个安装和配置过程。
步骤9:至此,MySQL8.0 版本的安装和配置就已全部完成。
如果不配置MySQL环境变量,就不能在命令行直接输入MySQL登录命令。配置MySQL的环境变量步骤如下:
步骤1:在桌面上右击【此电脑】图标,在弹出的快捷菜单中选择【属性】菜单命令。
步骤2:打开【系统】窗口,单击【高级系统设置】链接。
步骤3:打开【系统属性】对话框,选择【高级】选项卡,然 后单击【环境变量】按钮。
步骤4:打开【环境变量】对话框,在系统变量列表中选择path变量。
步骤 5:单击【编辑】按钮,在【编辑环境变量】对话框中,将MySQL应用程序的bin目录(D:\software\MySQL\MySQL Server 8.0\bin)添加到变量值中,用分号将其与其他路径分隔开。
步骤6:添加完成之后,单击【确定】按钮,这样就完成了配置path变量的操作,然后就可以直接输入MySQL命令来登录数据库了。
使用”win+r“快捷键调出黑框,输入 mysql --version 命令查询MySQL的版本号。如图所示,表示安装MySQL成功。
使用命令 mysql -uroot -p123456 登录MySQL8.0。注意在输入MySQL的登录密码时,-p 后面直接加登录密码会提示这是不安全的,如下图中的第一种情况;-p 之后不加登录密码,后面再输入密码时,密码是隐藏的,所以这种方式比较安全,也是推荐的密码输入方法。
步骤1:双击下载的 mysql-installer-community-5.7.34.0.msi 文件,打开安装向导。因为已经安装过MySQL8.0,所以再次安装时,会弹出欢迎界面。
步骤2:单击“Next”(下一步)按钮,打开版本升级界面,这里不更新服务器,将对勾取消,点击”Cancel“。
弹出确认框,点击”Yes“即可。
步骤3:弹出安装界面,点击”Add“,添加MySQL5.7版本。
之后的MySQL5.7的安装与配置和MySQL8.0的安装与配置相似,这里不再赘述,只需要主要一下几个地方的配置就行。
第1点:在高级设置中的自定义目录时,会弹出警告,忽略即可。
第2点:在配置MySQL5.7时,端口号不能与MySQL8.0的一致。这里将MySQL5.7的端口号设置为13306。
MySQL是一种流行的关系型数据库管理系统(RDBMS),它解决了以下几个问题:
综上所述,MySQL解决了数据存储和管理、数据安全性、并发处理、数据备份和恢复、数据索引和查询优化、扩展性和可伸缩性、跨平台性以及开源和社区支持等多个问题,使得开发人员能够高效地处理和管理大量的结构化数据。
MySQL安装后,MySQL会以windows服务的方式为我们提供数据存储功能。开启和关闭服务的操作:右键点击我的电脑→管理→服务→可以找到MySQL服务开启或停止。
MySQL安装后,MySQL会以windows服务的方式为我们提供数据存储功能。开启和关闭服务的操作:右键点击我的电脑→管理→服务→可以找到MySQL服务开启或停止。
也可以在DOS窗口,通过命令完成MySQL服务的启动和停止(必须以管理运行cmd命令窗口)
总结:
方式1: 我的电脑-----> (右键)管理---->服务和应用程序---->服务----找到MySQL服务右键启动或关闭
方式2: 进入dos窗口 使用命令: net start mysql 开启MySQL服务; 命令:net stop mysql 关闭MySql服务
MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录。
格式1:cmd> mysql –u用户名 –p密码
例如:mysql -uroot –proot
格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码
例如:mysql --host=127.0.0.1 --user=root --password=root
- **整数类型** :
- tinyInt 很小的整数
- smallint 小的整数
- mediumint 中等大小的整数
- int(integer) 普通大小的整数
- **小数类型** :
- float 单精度浮点数
- double 双精度浮点数
- decimal(m,d) 压缩严格的定点数
- **日期类型** :
- year YYYY 1901~2155
- time HH:MM:SS -838:59:59~838:59:59
- date YYYY-MM-DD 1000-01-01~9999-12-3
- datetime YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
- timestamp YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC
- **文本、二进制类型** :
- CHAR(M) M为0~255之间的整数
- VARCHAR(M) M为0~65535之间的整数
- TINYBLOB 允许长度0~255字节
- BLOB 允许长度0~65535字节
- MEDIUMBLOB 允许长度0~167772150字节
- LONGBLOB 允许长度0~4294967295字节
- TINYTEXT 允许长度0~255字节
- TEXT 允许长度0~65535字节
- MEDIUMTEXT 允许长度0~167772150字节
- LONGTEXT 允许长度0~4294967295字节
- VARBINARY(M)允许长度0~M个字节的变长字节字符串
- BINARY(M) 允许长度0~M个字节的定长字节字符串

MySQL中的我们常使用的数据类型如下
创建数据库
格式:
create database 数据库名;
create database 数据库名 character set 字符集;
例如:
#创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE mybase;
#创建数据库 并指定数据库中数据的编码
CREATE DATABASE mybase CHARACTER SET utf8;
查看数据库
查看数据库MySQL服务器中的所有的数据库:show databases;
查看某个数据库的定义的信息:show create database 数据库名;
删除数据库
drop database 数据库名称;
例如:drop database mybase;
使用数据库
use 数据库名;
查看正在使用的数据库
select database();
1.创建表
格式:
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
例如:
###创建分类表
CREATE TABLE sort (
sid INT, #分类ID
sname VARCHAR(100) #分类名称
);
单表约束:
主键约束:primary key,要求被修饰的字段:唯一和非空
唯一约束:unique,要求被修饰的字段:唯一
非空约束:not null,要求被修饰的自动:非空
2.主键约束
在创建表时创建主键,在字段后面加上 primary key
例如:
create table tablename(
id int primary key,
…
)
在创建表时创建主键,在表创建的最后来指定主键
例如:
create table tablename(
id int,
…,
primary key(id)
)
删除主键:alter table 表名 drop primary key
例如:
alter table sort drop primary key;
主键自动增长:一般主键是自增长的字段,不需要指定。
实现添加自增长语句,主键字段后加auto_increment(只适用MySQL)
例如:
###创建分类表
CREATE TABLE sort (
sid INT PRIMARY KEY auto_increment, #分类ID
sname VARCHAR(100) #分类名称
);
3.查看表
查看数据库中的所有表:格式:show tables;
查看表结构:
格式:desc 表名;
例如:desc sort;
4.删除表
格式:drop table 表名
5.修改表
添加一列:alter table 表名 add 字段名 类型(长度) [约束]
修改列的类型(长度、约束):alter table 表名 modify 要修改的字段名 类型(长度) [约束]
修改列的列名:alter table 表名 change 旧列名 新列名 类型(长度) [约束]
删除表的列:alter table 表名 drop 列名
修改表名:rename table 表名 to 新表名
修改表的字符集:alter table 表名 character set 编码
6.插入表记录
语法:
insert into 表 (列名1,列名2,列名3…) values (值1,值2,值3…); – 向表中插入某些列
insert into 表 values (值1,值2,值3…); --向表中插入所有列
注意:
插入的数据应与字段的数据类型相同
数据的大小应该在列的长度范围内
在values中列出的数据位置必须与被加入列的排列位置相对应。
除了数值类型外,其它的字段类型的值必须使用引号引起。
如果要插入空值,可以不写字段,或者插入 null。
对于自动增长的列在操作时,直接插入null值即可。
插入数据中文乱码问题解决办法:set names 编码;
7.更新表记录
语法:
update 表名 set 字段名=值,字段名=值;
update 表名 set 字段名=值,字段名=值 where 条件;
注意:
列名的类型与修改的值要一致.
修改值得时候不能超过最大长度.
值如果是字符串或者日期需要加’’.
8.删除表记录
语法:
delete from 表名 [where 条件];
或者
truncate table 表名;
面试题:
删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
删除方式:delete 一条一条删除,不清空auto_increment记录数。
truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始
9.查询操作
语法:
select [distinct] | 列名,列名 from 表名 [where条件]
查询所有
select * from 表名;
查询指定字段信息
select 字段1,字段2,…from 表名;
别名查询,使用的as关键字,as可以省略的.
别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。
表别名格式:
select * from 表名 as 别名;
或
select * from 表名 别名;
列别名格式:
select 字段名 as 别名 from 表名;
或
select 字段名 别名 from 表名;
去掉重复值查询
distinct用于去除重复记录
select distinct 字段 from 表名;
我们在sql语句的操作中,可以直接对列进行运算。
例如:将所有账务的金额+10000元进行显示.
select pname,price+10000 from product;
条件查询
结合where进行条件查询
排序
升序查询:select … order by 字段1 asc,字段2 asc…
降序查询:select … order by 字段1 desc,字段2 desc …
例如:
商品表中价格按升序排列:select * from product order by price asc;
聚合查询
常用的聚合函数:
sum()求和
avg()平均
max()最大值
min()最小值
count()计数
注意:聚合函数不统计null值
例如:
获得所有商品价格总和:select sum(price) from product;
获得所有商品的平均价格:select avg(price) from product;
获得所有商品的个数:select count() from product;
10.分组操作
group by 字段;
以下是几个MySQL常见的存储引擎:
除了以上几个存储引擎外,MySQL还支持其他一些存储引擎,如CSV、Archive、Blackhole等。选择适合的存储引擎要根据应用需求、数据特性和性能要求来进行评估和选择。
查看mysql提供什么存储引擎:
show engines;
show engines \G;
- mysql> show engines \G;
- *************************** 1. row ***************************
- Engine: FEDERATED
- Support: NO
- Comment: Federated MySQL storage engine
- Transactions: NULL
- XA: NULL
- Savepoints: NULL
- *************************** 2. row ***************************
- Engine: MEMORY
- Support: YES
- Comment: Hash based, stored in memory, useful for temporary tables
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 3. row ***************************
- Engine: InnoDB
- Support: DEFAULT
- Comment: Supports transactions, row-level locking, and foreign keys
- Transactions: YES
- XA: YES
- Savepoints: YES
- *************************** 4. row ***************************
- Engine: PERFORMANCE_SCHEMA
- Support: YES
- Comment: Performance Schema
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 5. row ***************************
- Engine: MyISAM
- Support: YES
- Comment: MyISAM storage engine
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 6. row ***************************
- Engine: MRG_MYISAM
- Support: YES
- Comment: Collection of identical MyISAM tables
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 7. row ***************************
- Engine: BLACKHOLE
- Support: YES
- Comment: /dev/null storage engine (anything you write to it disappears)
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 8. row ***************************
- Engine: CSV
- Support: YES
- Comment: CSV storage engine
- Transactions: NO
- XA: NO
- Savepoints: NO
- *************************** 9. row ***************************
- Engine: ARCHIVE
- Support: YES
- Comment: Archive storage engine
- Transactions: NO
- XA: NO
- Savepoints: NO
- 9 rows in set (0.00 sec)
-
- ERROR:
- No query specified

查看默认的存储引擎
- show variables like '%storage_engine%';
- #或
- SELECT @@default_storage_engine;
修改默认的存储引擎
如果在创建表的语句中没有显式指定表的存储引擎的话,那就会默认使用 InnoDB 作为表的存储引擎。如果我们想改变表的默认存储引擎的话,可以这样写启动服务器的命令行:
SET DEFAULT_STORAGE_ENGINE=MyISAM;
或者修改 my.cnf 文件:
- default-storage-engine=MyISAM
- # 重启服务
- systemctl restart mysqld.service
存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为 不同的表设置不同的存储引擎 ,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。
3.1 创建表时指定存储引擎
我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎 InnoDB 。如果我们想显式的指定一下表的存储引擎,那可以这么写:
- CREATE TABLE 表名(
- 建表语句;
- ) ENGINE = 存储引擎名称;
3.2 修改表的存储引擎
如果表已经建好了,我们也可以使用下边这个语句来修改表的存储引擎:
ALTER TABLE 表名 ENGINE = 存储引擎名称;
比如我们修改一下 engine_demo_table 表的存储引擎:
这时我们再查看一下 engine_demo_table 的表结构:
4.1 InnoDB 引擎:具备外键支持功能的事务存储引擎
4.2 MyISAM 引擎:主要的非事务处理存储引擎
4.3 Archive 引擎:用于数据存档
4.4 Blackhole 引擎:丢弃写操作,读操作会返回空内容
4.5 CSV 引擎:存储数据时,以逗号分隔各个数据项
创建CSV表时,服务器会创建一个纯文本数据文件,其名称以表名开头并带有.CSV扩展名。当你将数据存储到表中时,存储引将其以逗号分隔值格式保存到数据文件中。
使用案例如下
- mysql> SELECT * FROM test;
- +---+------------+
- | i | c |
- +---+------------+
- | 1 | record one |
- | 2 | record two |
- +---+------------+
- 2 rows in set (0.00 sec)
创建CSV表还会创建相应的 元文件 ,用于 存储表的状态 和 表中存在的行数 。此文件的名称与表的名称相
同,后缀为 CSM 。如图所示
如果检查 test.CSV 通过执行上述语句创建的数据库目录中的文件,其内容使用Notepad++打开如下:
这种格式可以被 Microsoft Excel 等电子表格应用程序读取,甚至写入。使用Microsoft Excel打开如图所示
4.6 Memory 引擎:置于内存的表
概述:
Memory采用的逻辑介质是 内存 , 响应速度很快 ,但是当mysqld守护进程崩溃的时候 数据会丢失 。另外,要求存储的数据是数据长度不变的格式,比如,Blob和Text类型的数据不可用(长度不固定的)。
主要特征:
使用Memory存储引擎的场景:
4.7 Federated 引擎:访问远程表
4.8 Merge引擎:管理多个MyISAM表构成的表集合
4.9 NDB引擎:MySQL集群专用存储引擎
也叫做 NDB Cluster 存储引擎,主要用于 MySQL Cluster 分布式集群 环境,类似于 Oracle 的 RAC 集群。
4.10 引擎对比
MySQL中同一个数据库,不同的表可以选择不同的存储引擎。如下表对常用存储引擎做出了对比
其实这些东西大家没必要立即就给记住,列出来的目的就是想让大家明白不同的存储引擎支持不同的功能。
其实我们最常用的就是 InnoDB 和 MyISAM ,有时会提一下 Memory 。其中 InnoDB 是 MySQL 默认的存储引擎
很多人对 InnoDB 和 MyISAM 的取舍存在疑问,到底选择哪个比较好呢?
MySQL5.5之前的默认存储引擎是MyISAM,5.5之后改为了InnoDB。
ACID模型是一系列数据库设计规则,这些规则着重强调可靠性,而可靠性对于商业数据和任务关键型应用非常重要。MySQL包含类似InnoDB存储引擎的组件,与ACID模型紧密相连,这样出现意外时,数据不会崩溃,结果不会失真。如果依赖ACID模型,可以不使用一致性检查和崩溃恢复机制。如果拥有额外的软件保护,极可靠的硬件或者应用可以容忍一小部分的数据丢失和不一致,可以将MySQL设置调整为只依赖部分ACID特性,以达到更高的性能。下面讲解InnoDB存储引擎与ACID模型相同作用的四个方面。
COMMIT语句。
ROLLBACK语句。
操作INFORMATION_SCHEMA库中的表数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。