相关推荐recommended
MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据
作者:mmseoamin日期:2024-01-23

⭐ 简介:大家好,我是zy阿二,是一名对知识充满渴望的自由职业者。

☘️ 最近我沉溺于Python的学习中。你所看到的是我的学习笔记。

❤️ 如果对你有帮助,请关注我,让我们共同进步。有不足之处请留言指正!

Mysql系列文章传送门,建议循序渐进的学习:

1. Mysql入门安装 & Pycharm可视化链接MySQL。入门篇【本文】

2. 用Pycharm熟悉MySQL命令,实现增删改查基本操作。基础篇


数据库的基本概念:

Q:A:
什么是数据库?DB(DataBase)数据仓库,软件,安装在操作系统之上
有什么用?存储数据,管理数据 。在服务端读写数据
数据库分类SQL关系型数据库:MySQL、Oracle、Sql Server、DB2、SQLlite
为什么要选MySQL主流,可以免费使用
关系型数据库概念通过表和表之间,行和列之间的关系进行数据的存储,通过外键关联来建立表与表之间的关系
那有其他类型的数据库吗?非关系型数据库:NoSQL。 代表:MongoDB、Redis
什么是非关系型数据库数据以键值对的形式存储,而对象之间的关系通过每个对象自身的属性来决定
数据库的构成(MySQL)软件本身(我的电脑) → (database)数据库(文件夹) → (table)表(文件),我们的数据都是写入到表里的,父子关系。

一、 Mysql下载安装和初始化操作

1. 下载Mysql官方地址

本教程演示版本:5.7.38。也是当下最为主流的版本。

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第1张

2. 解压到自定义路径。

本教程解压的的路径为:D:\mysql-5.7.38-winx64

3. 在 D:\mysql-5.7.38-winx64 下新建一个txt文件,并写入:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\mysql-5.7.38-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\mysql-5.7.38-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

5. 保存并关闭后 重命名 新建.txt 为 my.iniMySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第2张

重要!! 务必确保文件的类型是 .ini

右击重命名后的文件,点击查看属性,可以看到下图窗口画面。

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第3张

6. 加环境变量。

  1. 按win键
  2. 直接打字“环境变量”
  3. 回车
  4. 进入如下画面后按图所示步骤
  5. 最终在 path中加入 D:\mysql-5.7.38-winx64\bin 然后确定即可。

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第4张

注: 此操作的目的是后面使用cmd是可以直接输入mysql,而不需要写完整的路径。

7. 打开命令行(cmd),输入如下命令

enter键 = 执行命令。

1.
>mysqld –install mysql57
>//创建mysql服务,我写mysql57是因为我的版本是5.7.x。名字没有要求,可以随便写。
>//后面 开启服务、删除服务、停止服务 时,都需要用这个名字。
2.
>mysqld --initialize -insecure
>//在刚刚设置环境变量的D:\mysql-5.7.38-winx64目录下创建一个data的文件夹,用于后续存放数据库文件
>//必须要创建,如果没有创建的话,后面是无法开启服务
3.
>net start mysql57
>//开启mysql服务命令。 至此,基本已经完成了MySQL的安装。
// 用管理员方式启动 CMD
>关闭服务输入:net stop mysql57
>删除服务命令:sc delete mysql57

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第5张

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第6张

出现上述情况:

一、可能没有创建my.ini,或者命名错误,文件类型不是ini

二、缺少data文件夹,执行mysqld --initialize-insecure

三、可能有多个MySQL服务,全部删除重新安装,再操作

8. 链接数据库

1. cmd命令行链接MySQL
>mysql -u root -p**
//链接数据库。 首次链接会看到下图内容
// 提示Enter password,输入密码。 不用管,直接按回车即可。

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第7张MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第8张

2. 首次连接MySQL后设置一个密码。以便数据安全以及后面第三方链接数据库时都需要一个密码。
> set password = password("000000");
> //注: 此处密码按自己习惯设置。 设置好后,下次链接数据库的时候就需要用到它。如果忘记将无法链接。【忘记密码重置方法后续在此附上传送门】
> //附言: 现在正式进入mysql命令的输入,基本所有的语句结束都需要加 ; (英文的分号) 再回车。如果忘记加了可以回车后再加 ;  再回车。我刚开始接触到时候总是忘记写。
4. 首次连接MySQL后设置一个密码。以便数据安全以及后面第三方链接数据库时都需要一个密码。
> create test;
> //注: 创建一个databese (数据库文件夹)在以后的Python的连接数据库的时候都需要选择链接的databese名字。所以在这里事先创建好一个。方便后面调用。
5. 查看当前已有数据
> show databases;
> //查看一下当前MySQL中所有的database

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第9张


二、Pycharm 可视化连接 MySQL 图形界面

1. 按图示Pycharm 连接 MySQL

首次连接需要安装mysql的驱动,第11步“测试连接”按钮的上方会提示“下载”,点击下载,等待完成即可。(我已经安装过,所以没有提示了。)

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第10张

2. 链接表 & 创建表。

2.1 链接已有的结构database

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第11张

2.2 新建结构database和表table

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第12张

3. 查看表数据

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第13张

4. 进入Mysql控制台

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第14张

MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第15张

三、列的数据类型

注:解释均建立在严格模式下。

4.1 整数

int

  • 表示 取值范围 -21474836848 ~21474836848,可以写入这个区间的任意一个整数
  • 最常用的整数类型

int unsigned

  • 表示 取值范围 0 ~ 4294967295,不支持负数。可以写入这个区间的任意一个整数

int(5) zerofill

  • 长度位5的整数,当写入的数据不满足5位时,会在左边用0填充。> 例如:2 会显示为 00002。
  • 如果满足条件则正常显示。> 例如:12345 会显示 12345
4.2. 小数

decimal(m,n)

  • m 表示数字的总位数,最大65位。写入的位数超过了设置的位数时,会报错。
  • n表示小数点后的位数。最大30位。当写入的位数超过了设置的位数时,会自动四舍五入保留n位
  • 最常用的小数类型

float[(m,n)]

  • 单精度浮点数,非准确小数值,m是数字总位数,n是小数点后的位数。32位二进制存储
  • 和Python的float类似,不常用。

double[(m,n)]

  • 双精度浮点数,非准确小数值,m是数字总位数,n是小数点后的位数。64位二进制存储
  • 比float存储的数据多一点,不常用。
4.3. 字符串

char(m)

  • 定长字符串,m代表字符串的长度,最多可容纳255个字符。
  • 表现:即使写入的内容长度小于m,底层也会占用m个字符。
  • 例如:char(5) , 写入一个“NO” 实际只有2个字符,但是底层数据库中NO占了5个字符。如果写入“Happy birthday” 超过了5个字符就会报错。

varchar(m)

  • 变长字符串,m 代表字符串的长度,最多可容纳 65535个字符。

  • 表现: 即使写入的内容小于m,也会按照数据的真实长度存储,如果超出m长度限制,则会报错。

  • 例如: varchar(5) , 写入一个“NO” 没有任何问题。底层数据库中占2个字符。但是如果写入“Happy birthday” 超过了5个字符就会报错。

  • 最常用的字符串数据类型

text

  • 用于保存变长的长字符串,最多可容纳65535(2**16 -1)个字符
  • 一般情况下,长文本会用text类型。 例如:文章、新闻、等。。

mediumtext

  • 用于保存变长的长字符串,最多可容纳16,777,215(2**24 -1)个字符
  • 相比text,能容纳的字符更多。 (几乎用不到)

longtext

  • 用于保存变长的长字符串,最多可容纳4,294,967,295 或4GB(2**32 -1)个字符
  • 相比mediumtext,能容纳的字符更多。(更几乎用不到)
4.4. 时间

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:00 ~ 2037-12-31 23:59:59
  • 相比datetime它容纳的区间更小。并且他会将写入的时间从当前时区转换到UTC(世界标准时间)进行存储,查询的时候又转化为客户当地时间进行返回。
  • 而datetime不做任何改变。写入时间是什么,返回的就是什么。
  • 也就是软件在需要跨地域使用的时候,需要用到这个参数。

date

  • 格式:YYYY-MM-DD
  • 容纳区间:1000-01-01~ 9999-12-31
  • 只有年月日,没有分时秒

time

  • 格式:YYYY-MM-DD HH:MM:SS
  • 容纳区间:-838:59:59 ~ 838:59:59
  • 只有时分秒,没有年月日。

Mysql还有很多其他类型的数据,例如tinyint、smallint、mediumint、set、enum、Blob … 详见官方文档

五、列的附加属性

命令作用
UnSigned无符号的,代表不能为负数
ZEROFILL位数不足时用0填充,如:往int(5)类型的列里写入1 ,数据库会储存为00001用0凑足5位
Auto_InCrement自增,代表该列数据会自动递增无需手动写入,默认每次递增1。 通常用来设计唯一的主键,必须是整数类型
AUTO_INCREMENT=5设置步长,即每次递增5。只影响当前表
SET @@auto_increment_increment=5设置全局步长,影响所有使用递增的表
not null设置该列必须填上数据 (NOT NULL),默认可以为空(NULL)
default设置默认值,如:设定性别列的默认值=“男” 。写入时该列未指定数值 , 那么就是默认值为"男"。

五、基本命令

show databases;	        --查看当前已有数据库名
create database 数据库名;	--创建数据库
show create database 数据库名;-- 查看create database创建数据库用的语句
drop database 数据库名;     --删除数据库
use 数据库名;	--打开、进入数据库
show tables;	--查看当前数据库所有的表
create table 表名(); --创建一个表
show create table 表名;-- 查看create table用的语句
describe表名;   --显示表的信息。方法1
desc 表名;	    --显示表的信息。方法2
exit	        --退出连接
--		--单行注释
#		--单行注释
/*...*/		--多行注释

六、 创建一个表

尝试创建一个表,了解表的基本构成。并尝试写入一行数据,看看结果。

首先一个表需要拥有列名,以及对应的数据类型,适当的备注,以及一个主键,主键在表中具有唯一性,可理解为行名。类似在execl中,列名+行名就能定位一个精准的单元格。这是一个表必要的内容。

create table if not exists tb2 #如 果 tb 不存在则创建一个名为 tb 的表
(
    # not null=不能为null,auto_increment=自增类型数据,comment后面跟的是备注
    id       int(4)      not null auto_increment comment '学号',
    name     varchar(30) not null default '未知' comment '姓名',   # default '匿名' 代表这列有默认值是匿名
    password varchar(20) not null default '000000' comment '密码',
    gender   varchar(2)  not null default '男' comment '性别',
    birthday DATETIME             default null comment '出生日期', # default null 代表默认为空
    primary key (id)                                           # 最后申明主键,也可以写直接写在id的属性中
) engine = InnoDB # 设置存储的引擎为innodb。能提高并发性能。
  default CHARSET = utf8 # 设置表的编码。不过我们在my.ini中已经设置了,所以也不需要写。
    comment '创建一个表';
# 写入一行示例数据,仅输入了name和birthday2个数据
insert into tb2(name, birthday) values ('张狗剩', '2000-01-01 12:12:12')
# 查询表内数据命令
select * from tb2

如下图所示,我们得到的数据中包含了5列。id列自增为1,password未写入,所以为默认值0,gender同理也是默认值‘男’MySQL篇一,初始化安装,Pycharm可视化链接MySQL数据库,Pycharm执行MySQL命令,MySQL的基础命令和数据类型的认识,最后尝试创建一张表和写入一行数据,在这里插入图片描述,第16张