使用MySQL

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

1  下载安装MySQL

MySQL是一款开源的数据库软件,由于其免费特性得到了全世界用户的喜爱,是目前使用人数最多的数据库。下面将详细讲解如何下载和安装MySQL库。

(1)下载MySQL

在浏览器的地址栏中输入地址“https://dev.mysql.com/downloads/windows/installer/5.7.html”,并按下<Enter>键,将进入到当前最新版本MySQL 5.7的下载页面,选择离线安装包,如图3所示。

图3  下载MySQL

单击“Download”按钮下载,进入开始下载页面,如果有MySQL的账户,可以单击Login按钮,登录账户后下载,如果 没有可以直接单击下方的“No thanks, just take me to the download.”超链接,跳过注册步骤,直接下载,如图4所示。

图4  不注册下载

(2)安装MySQL

下载完成以后,开始安装MySQL。双击安装文件,在安装界面中勾选“I accept the license terms”,点击“next”,进入选择设置类型界面。在选择设置中有5种类型,说明如下:

l  Developer Default:安装MySQL服务器以及开发MySQL应用所需的工具。工具包括开发和管理服务器的GUI工作台、访问操作数据的Excel插件、与Visual Studio集成开发的插件、通过NET/Java/C/C++/OBDC等访问数据的连接器、例子和教程、开发文档。

l  Server only:仅安装MySQL服务器,适用于部署MySQL服务器。

l  Client only:仅安装客户端,适用于基于已存在的MySQL服务器进行MySQL应用开发的情况。

l  Full:安装MySQL所有可用组件。

l  Custom:自定义需要安装的组件。

MySQL会默认选择“Developer Default”类型,这里选择“Server only”类型,如图5所示,选择默认选项,单击“Next”按钮进行安装。

图5  选择安装类型

(3)设置环境变量

安装完成以后,默认的安装路径是“C:\Program Files\MySQL\MySQL Server 5.7\bin”。下面设置环境变量,以便在任意目录下使用MySQL命令。右键单击“计算机”→选择“属性”,打开控制面板主页,选择“高级系统设置”→选择“环境变量”→选择“PATH”→单击“编辑”。将“C:\Program Files\MySQL\MySQL Server 5.7\bin”写在变量值中。如图6所示。

图6  设置环境变量

(4)启动MySQL

使用MySQL数据库前,需要先启动MySQL。在cmd窗口中,输入命令行“net start mysql57”,来启动MySQL 5.7。启动成功后,使用账户和密码进入MySQL。输入命令“mysql Cu root -p”,接着提示“Enter password:”,输入密码“root”(笔者用户名和密码均为root)即可进入MySQL。如图7所示。

图7  启动MySQL

(5)使用Navicat for MySQL管理软件

在命令提示符下操作MySQL数据库的方式对初学者并不友好,而且需要有专业的SQL语言知识,所以各种MySQL图形化管理工具应运而生,其中Navicat for MySQL就是一个广受好评的桌面版MySQL数据库管理和开发工具。它使用图形化的用户界面,可以让用户使用和管理更为轻松。官方网址:https://www.navicat.com.cn。

首先下载、安装Navicat for MySQL,然后新建MySQL连接,如图8所示。

图8  新建MySQL连接

接下来,输入连接信息:输入连接名“studyPython”,输入主机名后IP地址“localhost”或“127.0.0.1”,输入密码为“root”,如图9所示。

单击“确定”按钮,创建完成。此时,双击“localhost”,即进入“localhost”数据库,如图10所示。

图9  输入连接信息

图10  Navicat 主页

下面使用Navicat 创建一个名为“mrsoft”的数据库,步骤为:右键单击“studyPython”→选择“新建数据库”→填写数据库信息。如图11所示。

图11  创建数据库

说明:Navicat for MySQL的更多操作,请查阅相关资料。

2  安装PyMySQL

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。在Python中支持MySQL的数据库模块有很多,我们选择使用PyMySQL。

PyMySQL的安装比较简单,在cmd中执行如下命令:

pip install PyMySQL

运行结果如图12所示。

图12  安装PyMySQL

3  连接数据库

使用数据库的第一步是连接数据库。接下来使用PyMySQL连接数据库。由于PyMySQL也遵循Python Database API 2.0规范,所以操作MySQL数据库的方式与SQLite相似。我们可以通过类比的方式来学习。

图标 (35)

  实例06  使用PyMySQL连接数据库

前面我们已经创建了一个MySQL连接“studyPython”,并且在安装数据库时设置了数据库的用户名“root”和密码“root”。下面通过connect()方法连接MySQL数据库mrsoft,具体代码如下:

import pymysql

# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称

db = pymysql.connect("localhost", "root", "root", "mrsoft")

# 使用cursor()方法创建一个游标对象cursor

cursor = db.cursor()

# 使用execute()方法执行SQL查询

cursor.execute("SELECT VERSION()")

# 使用fetchone()方法获取单条数据

data = cursor.fetchone()

print ("Database version : %s " % data)

# 关闭数据库连接

db.close()

上述代码中,首先使用connect()方法连接数据库,然后使用cursor()方法创建游标,接着使用excute()方法执行SQL语句查看MySQL数据库版本,然后使用fetchone()方法获取数据,最后使用close()方法关闭数据库连接。执行结果如下:

Database version : 5.7.21-log

4  创建数据表

数据库连接成功以后,我们就可以为数据库创建数据表了。下面通过一个实例,使用execute()方法来为数据库创建表books图书表。

图标 (35)

  实例07  创建books图书表

books表包含id(主键)、name(图书名称),category(图书分类),price(图书价格)和publish_time(出版时间)5个字段。创建books表的SQL语句如下:

CREATE TABLE books (

  id int(8) NOT NULL AUTO_INCREMENT,

  name varchar(50) NOT NULL,

  category varchar(50) NOT NULL,

  price decimal(10,2) DEFAULT NULL,

  publish_time date DEFAULT NULL,

  PRIMARY KEY (id)

) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

在创建数据表前,使用如下语句:

DROP TABLE IF EXISTS `books`;

如果mrsoft数据库中已经存在books,那么先删除books,然后再创建books数据表。具体代码如下:

import pymysql

# 打开数据库连接

db = pymysql.connect("localhost", "root", "root", "mrsoft")

# 使用cursor()方法创建一个游标对象cursor

cursor = db.cursor()

# 使用 execute()方法执行SQL,如果表存在则删除

cursor.execute("DROP TABLE IF EXISTS books")

# 使用预处理语句创建表

sql = """

CREATE TABLE books (

  id int(8) NOT NULL AUTO_INCREMENT,

  name varchar(50) NOT NULL,

  category varchar(50) NOT NULL,

  price decimal(10,2) DEFAULT NULL,

  publish_time date DEFAULT NULL,

  PRIMARY KEY (id)

) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

"""

# 执行SQL语句

cursor.execute(sql)

# 关闭数据库连接

db.close()

运行上述代码后,mrsoft数据库下就已经创建了一个books表。打开Navicat(如果已经打开,则按下<F5>键刷新),发现mrsoft数据库下多了一个books表,右键单击books,选择设计表,效果如图13所示。

图13  创建books表效果

5  操作MySQL数据表

MySQL数据表的操作主要包括数据的增删改查,与操作SQLite类似,这里我们通过一个实例讲解如何向books表中新增数据,至于修改、查找和删除数据则不再赘述。

图标 (35)

  实例08  向books图书表添加图书数据

在向books图书表中插入图书数据时,可以使用excute()方法添加一条记录,也可以使用executemany()方法批量添加多条记录,executemany()方法的语法格式如下:

executemany(operation, seq_of_params)

l  operation:操作的SQL语句。

l  seq_of_params:参数序列。

executemany()方法批量添加多条记录的具体代码如下:

import pymysql

# 打开数据库连接

db = pymysql.connect("localhost", "root", "root", "mrsoft",charset="utf8")

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 数据列表

data = [("零基础学Python",'Python','79.80','2018-5-20'),

        ("Python从入门到精通",'Python','69.80','2018-6-18'),

        ("零基础学PHP",'PHP','69.80','2017-5-21'),

        ("PHP项目开发实战入门",'PHP','79.80','2016-5-21'),

        ("零基础学Java",'Java','69.80','2017-5-21'),

        ]

try:

    # 执行sql语句,插入多条数据

    cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)

    # 提交数据

    db.commit()

except:

    # 发生错误时回滚

    db.rollback()

# 关闭数据库连接

db.close()

注意:

(1)使用connect()方法连接数据库时,额外设置字符集charset=utf-8,可以防止插入中文时出错。

(2)在使用insert语句插入数据时,使用%s作为占位符,可以防止SQL注入。

运行上述代码,在Navicat中查看books表数据,如图14所示。

图14  books表数据


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swarm 集群管理

Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API&#xff0c;所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。 支持的工具包括但不限…

使用 Nstbrowser 管理多个帐户 - 2024 年最佳反检测浏览器

每个人一定都看过那些房间里全是窃听器的老间谍电影&#xff0c;对吧&#xff1f;现在这些电影可能看起来有点好笑&#xff0c;但互联网并没有好到哪里去&#xff01; 事实上&#xff0c;每个你打开的页面在你浏览时都在被监控&#xff01;此外&#xff0c;当你管理多个账户时…

Rust 开发搜索引擎 Quickwit 替代ES,成本降低 10 倍,查询亚秒级别!

一、Quickwit 概述 Quickwit 它是云存储上最快的搜索引擎&#xff0c;它非常适合用于可观察性的云原生搜索引擎&#xff0c;如日志、跟踪以及即将推出的指标。同时也是 Datadog、Elasticsearch、Loki 和 Tempo 的开源替代方案。 二、Quickwit 功能 全文搜索和聚合查询&#…

C++语法13 单分支结构的相关问题详解

一、奇偶数问题 要判断一个数是否是偶数&#xff0c;只要判断这个数字能不能被2整除即可。如果一个数字a除以2&#xff0c;没有余数&#xff0c;那么就是偶数&#xff1b;如果除以2有余数&#xff0c;那么就是奇数。 if(a%20) a是偶数 if(a%21) a是奇数 训练&#xff1…

LangChain-ChatGLM本地搭建|报错合集(win10)

安装过程 1. 创建虚拟环境 conda create -n langchain-chatglm python3.10 conda activate langchain-chatglm2. 部署 langchain-ChatGLM git clone https://github.com/imClumsyPanda/langchain-ChatGLMpip3 install -r requirements.txt pip3 install -U gradio pip3 inst…

05-5.4.1 树的存储结构

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

springboot宠物领养系统-计算机毕业设计源码07863

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

4. Revit API UI 之 Ribbon(界面)

4. Revit API UI 之 Ribbon&#xff08;界面&#xff09; 第二篇中&#xff0c;我们提到了IExternalApplication&#xff0c;该接口需要实现两个方法&#xff1a;Revit启动时调用的OnStartup 方法&#xff0c;和Revit关闭时调研的OnShutdown 方法。文中还给了个例子&#xff0…

为什么idea总是提示将内部类设置为static

在写一些内部类的时候&#xff0c;Idea总是提示要设置为static&#xff0c;你知道为什么吗 在Java中&#xff0c;内部类可以被声明为static&#xff0c;这种内部类称为静态内部类&#xff08;Static Nested Class&#xff09;。静态内部类和非静态内部类有显著的区别&#xf…

mybatis之特殊SQL的执行

1.1模糊查询 尝试&#xff1a; //模糊查询用户 List<User> getUserByLike(Param("mohu") String mohu);<select id"getUserByLike" resultType"user">select * from user where username like %#{mohu}% </select>Test publ…

普林斯顿大学教授终于把算法整理成图解笔记

普林斯顿大学教授终于把算法整理成图解笔记了&#xff01;&#xff01;&#xff01; 这些年虽然学到的编程知识越来越多&#xff0c;但是我对算法却始终没搞明白&#xff0c;直到偶然间看到这份笔记&#xff0c;我才认识到这些概念是多么简单。 对于很多刚入门的小伙伴来说&am…

如何让视频有高级感 高级感视频制作方法 高级感视频怎么剪 会声会影视频剪辑制作教程 会声会影中文免费下载

高质量视频通常具有清晰的画面、优质的音频和令人印象深刻的视觉效果。这篇文章来了解如何让视频有高级感&#xff0c;高级感视频制作方法。 一、如何让视频有高级感 要让视频有高级感&#xff0c;要注意以下几个要点&#xff1a; 1、剧本和故事性&#xff1a;一个好的剧本和…

建筑工程软件Revit中复杂大模型如何实现Web端轻量化?| HOOPS技术应用

建筑信息模型&#xff08; BIM&#xff09;技术在建筑工程中扮演着越来越重要的角色&#xff0c;而Autodesk Revit作为主流的BIM软件&#xff0c;被广泛应用于设计、施工和管理。然而&#xff0c;Revit生成的复杂大模型常常由于数据量庞大而难以直接在Web端展示和操作。这时&am…

MySQL 数据库 Navicat Premium 16.01 安装教程

MySQL 数据库 Navicat Premium 16.01 安装教程 目录 MySQL 数据库 Navicat Premium 16.01 安装教程前言安装步骤同意协议选择安装目录桌面快捷方式安装正在安装安装完成 步骤获取 前言 MySQL数据库管理用Navicat更加方便&#xff0c;可视化效果更好&#xff0c;今天给大家带来…

dp练习2

如何分析这个题目呢&#xff0c;要想着当前的最优解只和前面的最优解有关 class Solution { public:int numSquares(int n) {vector<int> f(n 1);for (int i 1; i < n; i) {int minn INT_MAX;for (int j 1; j * j < i; j) {minn min(minn, f[i - j * j]);}f[…

计算机组成原理(四)Cache存储器

文章目录 Cache存储器的基本原理cache命中率、平均访问时间、效率地址映射全相联映射直接映射组相联映射 查找算法cache 存储器替换策略cache 存储器-写操作策略习题 Cache存储器的基本原理 Cache是一种高速缓冲寄存器&#xff0c;是为了解决CPU和主存之间速度不匹配而采用的一…

树莓派4B_OpenCv学习笔记6:OpenCv识别已知颜色_运用掩膜

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1&#xff1a; 学了这些OpenCv的理论性知识&#xff0c;不进行实践实在…

qss实现登录界面美化

qss实现登录界面美化 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 去掉头部this->setWindowFlag(Qt::FramelessWindowHint);// 去掉空白部分th…

深度学习训练——batch_size参数设置过大反而训练更耗时的原因分析

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…

Matlab进阶绘图第60期—带伪彩图的曲面图

带伪彩图的曲面图是曲面图与伪彩图的组合。 其中&#xff0c;伪彩图与曲面图的颜色用于表示同一个特征。 由于伪彩图无遮挡但不直观&#xff0c;曲面图直观但有遮挡&#xff0c;而将二者组合&#xff0c;可以实现优势互补。 本期就来分享一下带伪彩图的曲面图的绘制方法&…