使用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表数据


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity【入门】重要组件和API

Unity重要组件和API 文章目录 1、最小单位GameObject1、成员变量2、静态方法1、代码创建Unity自带几何体 CreatePrimitive2、查找对象3、实例化对象&#xff08;克隆对象&#xff09;的方法4、删除对象的方法5、切换场景不移除 3、成员方法1、创建空物体2、为对象动态添加脚本(…

基数排序详解

目录 一、桶排序思想 1.1 什么是桶排序 1.2 桶排序的步骤 二、基数排序思想 2.1 什么是基数排序 2.2 实现方式 2.3 图解 三、代码思路 3.1 前置工作 3.2 映射 3.3 排序 四、C语言源码 一、桶排序思想 1.1 什么是桶排序 桶排序(Bucket sort)是一种排序算法&#xff…

网络安全课程开发

我们为卡巴斯基实验室开发了一个交钥匙教育门户网站&#xff0c;并为其开设了网络安全课程。在资源上&#xff0c;你可以熟悉课程的理论部分-观看视频或阅读插图文本版本&#xff0c;然后通过回答问题来验证你的知识。通过最终测试后&#xff0c;用户将获得证书。 对于这个项目…

Pythone 程序打包成 exe

1.安装pyinstaller # 安装 pip install pyinstaller # 查看版本 pyinstaller -v2.更新pyinstaller 版本 # 更新 pip install --upgrade pyinstaller # 查看版本 pyinstaller -v3.切换到 py文件所在目录 #切换到.py所在的目录 E: cd cd E:\x-svn_x-local\04PythoneProjects\A…

平安养老险陕西分公司荣获“2021-2023年乡村振兴‘三村工程’先进机构”

5月27日&#xff0c;中国平安成立36周年司庆暨三省推广启动大会顺利召开。会上&#xff0c;平安养老险陕西分公司获“2021-2023年乡村振兴‘三村工程’先进机构”荣誉表彰。 过去三年间&#xff0c;平安养老险陕西分公司始终坚持金融为民&#xff0c;在平安集团、平安养老险的指…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【08】【商品服务】Object划分_批量删除 Object划分批量删除/添加参考 Object划分 数据库中对于一张表的数据&#xff0c;由于拥有隐私字段、多余字段、字段过少等原因&#xff0c;不应该直…

33 _ 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?

通过上篇文章的介绍&#xff0c;我们知道了同源策略可以隔离各个站点之间的DOM交互、页面数据和网络通信&#xff0c;虽然严格的同源策略会带来更多的安全&#xff0c;但是也束缚了Web。这就需要在安全和自由之间找到一个平衡点&#xff0c;所以我们默认页面中可以引用任意第三…

js之简单轮播图

今天给大家封装一个简单的轮播图,可以点击下一张上一张以及自动轮播 <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>走马…

基于蚁群算法的二维路径规划算法(matlab)

微♥关注“电击小子程高兴的MATLAB小屋”获得资料 一、理论基础 1、路径规划算法 路径规划算法是指在有障碍物的工作环境中寻找一条从起点到终点、无碰撞地绕过所有障碍物的运动路径。路径规划算法较多&#xff0c;大体上可分为全局路径规划算法和局部路径规划算法两大类。其…

Neo4j 桌面版打不开踩坑贴

真的踩坑。。。没有人告诉我为啥桌面版和社区版不能一起下啊&#xff01;&#xff01; 我是先下载了社区版之后再下载的桌面版&#xff0c;结果桌面版界面一直打不开。 尝试了网上多种办法都没效果&#xff0c;好多都是说jdk不兼容导致无法打开&#xff0c;让我从JDK 17 ->…

跨域、JSONP、CORS、Spring、Spring Security解决方案

概述 JavaScript出于安全方面的考虑&#xff0c;不允许跨域调用其他页面的对象。跨域是浏览器&#xff08;如Chrome浏览器基于JS V8引擎&#xff0c;可以简单理解为JS解释器&#xff09;的一种同源安全策略&#xff0c;是浏览器单方面限制脚本的跨域访问。因此&#xff0c;仅有…

python使用wkhtmltopdf将html字符串保存pdf,解决出现方框的问题

出现的问题: 解决办法: <html> <head><meta charset="UTF-8"/> </head> <style> * {font-family: Arial,SimSun !important; } </style> </html>在html字符串前面加上上面代码,意思是设置字体编码和样式 html示例:…

足球实况分析系统YOLO

① 足球运动员、裁判和球检测&#xff1b; ② 球员球队预测&#xff1b; ③ 足球地图上球员和球位置的估计&#xff1b; ④ 足球跟踪&#xff1b; 当你启动应用程序时&#xff0c;会自动加载两个演示视频以及推荐的设置和超参数. 1. 使用侧栏菜单“浏览文件”按钮上传视频…

【Linux系统编程】进程终止

目录 strerror函数 errno错误码 退出码 正常终止&#xff08;可以通过 echo $? 查看进程退出码&#xff09;&#xff1a; 1. 从main返回&#xff08;return&#xff09; 2. 调用exit 3. _exit&#xff08;一般尽量不要用&#xff09; 异常退出&#xff1a; ctrl c&am…

瓦片边界可视化工具

本文涉及的核心内容 瓦片边界可视化-VisibleTileBoundariesmeethigher/visible-tile-boundaries: visible tiles boundaries demo 一、瓦片边界可视化 1.1 背景 日常GIS开发中&#xff0c;需要了解瓦片是什么&#xff0c;瓦片展示的效果是什么样的。这种口头上抽象的东西&a…

惊艳的短视频:成都科成博通文化传媒公司

惊艳的短视频&#xff1a;瞬间之美&#xff0c;震撼心灵 在数字化时代&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;迅速占领了我们的屏幕和时间。而在这个浩如烟海的视频海洋中&#xff0c;总有一些短视频能够脱颖而出&#xff0c;以其惊艳的视觉效果、深刻的…

您对薪资待遇是否满意?没证据怎么办?这样做很可能会补上来!

您对薪资待遇是否满意&#xff1f;没证据怎么办&#xff1f; 这样做很可能会补上来&#xff01; 您有时可能对自己的工资或福利待遇感到不满意&#xff1a;感到为何我付出的不比别人少&#xff0c;但是工资待遇总是比别人低&#xff0c;是不是觉得很不服气&#xff1f;那么不服…

【技巧】让xorg和gnome不要使用GPU

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 默认xorg会使用GPU加速&#xff1a; 现在取消他对GPU的占用&#xff1a; sudo vim /etc/X11/xorg.conf修改或添加以下内容&#xff1a; Section &quo…

迁移学习助力机器学习实践应用

大家好&#xff0c;迁移学习是一种技术&#xff0c;能使机器利用从以前任务中获得的知识来提高对新任务的泛化能力。作为ChatGPT和Google Gemini等模型的核心原理&#xff0c;迁移学习在长文档总结、复杂文章撰写、旅行规划以及诗歌和歌曲创作等重要任务中发挥着关键作用。 本…

ArcGIS+SWAT+CENTURY:流域生态系统水-碳-氮耦合过程模拟

目录 章节一 流域水碳氮建模-概述 章节二 数据准备 章节三 流域水模拟 章节四 流域氮模拟 章节五 流域碳模拟 章节六 模型结果分析及地图制作 章节七 案例分析 更多应用 流域是一个相对独立的自然地理单元&#xff0c;它是以水系为纽带&#xff0c;将系统内各自然地理要…