可视化工具Navicat的使用/pymysql模块的使用
一.可视化工具Navicat的使用
1.官网下载:http://www.navicat.com/en/products/navicat-for-mysql
2.网盘下载:http://pan.baidu.com/s/1bpo5maj
3.需要掌握的基本操作:
PS:在生产环境中操作MySQL数据库还是推荐使用命令工具mysql,但我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库
二.pymysql模块的使用
1.pymysql的下载和使用
之前我们都是通过MySQL自带的命令行客户端mysql来操作数据库,那如何在python程序中操作数据库呐?这就用到了pymysql模块,该模块的本质就是一个套接字客户端软件,使用前需要事先安装
(1).pymysql模块的下载
pip3 install pymysql
(2).pymysql的使用(数据库和数据都已存在)

2.execute()之sql注入
#最后那一个空格,在一条sql语句中如果select * from userinfor where username = "wahaha" -- asadsadf" and pwd = "" 则--之后的条件被注释掉了(注意--后面还有一个空格) #1.sql注入之:用户存在,绕过密码
wahaha" -- 任意字符
#2.sql注入之:用户不存在,绕过用户与密码
xxx" or 1=1 -- 任意字符


(1).解决方法:
#原来是我们自己对sql字符串进行拼接
#sql = "select * from userinfo where username='%s' and pwd='%s'" %(user, pwd)
#print(sql)
#result = cursor.execute(sql) #该写为(execute帮我们做好的字符串拼接,我们无需且一定不要再为%s加引号了)
sql = "select * from userinfor where name = %s and password = %s" #注意%s需要去掉引号,因为pymysql会自动帮我们加上
result = cursor.execute(sql,[user,pwd]) #pymysql模块自动帮我们解决sql注入的问题,只要我们按照pymysql的规矩来
3.增,删,改: conn.commit()
commit()方法: 在数据库里增,删,改的时候,必须要进行提交,否则插入的数据不生效
import pymysql
#连接
conn = pymysql.connect(host = "localhost", port = 3306, user = "root", password = "", db = "db8", charset = "utf8") #创建游标
cursor = conn.cursor() # #增:
# sql = "insert into userinfor(name,pwd) values (%s,%s)"
# ope_data = cursor.execute(sql,(user,pwd))
#
# #同时插入多条数据
# # cursor.executemany(sql,[("乳娃娃","111"),("爽歪歪","222")])
# print(ope_data) # #删
# sql = "delete from userinfor where id = 2"
# ope_data = cursor.execute(sql)
# print(ope_data) # #改
# user = input("输入新的用户名:")
# sql = "update userinfor set name = %s where id = 4"
# ope_data = cursor.execute(sql,user)
# print(ope_data) #一定要记得commit
conn.commit() #关闭游标
cursor.close()
#关闭连接
conn.close()
4.查:fetchone,fetchmany,fetchall
fetchone():获取下一行数据,第一次为首行
fetchall():获取所有行数据源
fetchmany(4):获取4行数据
(1).表中内容

(2).使用fetchone():
(3).使用fetchall():
默认情况下,我们获取到的返回值是一个元组,只能看到每行的数据,却不知道没列代表的是什么,这个时候可以使用以下方式来返回字典,每行的数据都会生成一个字典:
#返回字典
#在实例化的时候,将属性cursor设置为pymysql.cursors.DictCursor
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
在fetchone示例中,在获取行数据的时候,可以理解开始的时候,有一个行指针指着第一行的上方,获取一行,它就向下移动一行,所以当行指针到最后一行的时候,就不能再获取到行的内容,所以我们可以使用如下方法来移动行指针:
cursor.scroll(1,mode='relative') # 相对当前位置移动
cursor.scroll(2,mode='absolute') # 相对绝对位置移动
第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
(4).使用fetchmany():
import pymysql conn = pymysql.connect(host = "localhost", port = 3306, user = "root", password = "", db = "db8", charset = "utf8")
cursor = conn.cursor(cursor = pymysql.cursors.DictCursor) sql = "select * from userinfor"
cursor.execute(sql) #获取两条数据
rows = cursor.fetchmany(2)
print(rows) #关闭游标
cursor.close()
#关闭连接
conn.close() # 结果:
[{'id': 1, 'name': 'wahaha', 'pwd': '123'}, {'id': 2, 'name': '冰红茶', 'pwd': '111'}]
给大家推荐一位博主,他写的很认真:https://www.cnblogs.com/rixian/
可视化工具Navicat的使用/pymysql模块的使用的更多相关文章
- python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)
昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...
- 数据库——可视化工具Navicat、pymysql模块、sql注入问题
数据库--可视化工具Navicat.pymysql模块.sql注入问题 Navicat可视化工具 Navicat是数据库的一个可视化工具,可直接在百度搜索下载安装,它可以通过鼠标"点点点&q ...
- 可视化工具Navicat的使用
可视化工具Navicat的使用 掌握Navicat的基本使用 # PS:在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图 ...
- mysql更新(八) 可视化工具Navicat的使用 索引
17-索引 一.索引的介绍 数据库中专门用于帮助用户快速查找数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置吗,然后直接获取. 二 .索引的作用 约束和加速查 ...
- MySQL数据库(4)- 多表查询、可视化工具Navicat的使用、设计模式MVC
一.多表查询 准备工作:创建两张表,部门表(department).员工表(employee),代码和表格如下: # 创建表 create table department( id int, name ...
- mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)
单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...
- 15 可视化工具 Navicat的简单使用
本节重点: 掌握Navicat的基本使用 # PS:在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作My ...
- day43——多表查询、Navicat工具的使用、pymysql模块
day43 多表查询 笛卡尔积--不经常用 将两表所有的数据一一对应,生成一张大表 select * from dep,emp; # 两个表拼一起 select * from dep,emp wher ...
- mysql数据库可视化工具—Navicat Premium—安装与激活
一.Navicat premium简介 Navicat premium是一款数据库管理工具.将此工具连接数据库,你可以从中看到各种数据库的详细信息.包括报错,等等.当然,你也可以通过他,登陆数据库,进 ...
随机推荐
- Python学习——输入和输出
(转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316434841 ...
- Spring入门第六课
XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean.需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式 ByType(根据类型自动装配):若I ...
- 连接mysql时报:message from server: "Host '192.168.76.89' is not allowed to connect to this MySQL server 处理方案
1.先用localhost方式连接到MySQL数据库,然后使用MySQL自带的数据库mysql; use mysql: 2.执行:select host from user where user = ...
- 缓存处理类(MemoryCache结合文件缓存)
想提升站点的性能,于是增加了缓存,但是站点不会太大,于是不会到分布式memcached的缓存和redis这个nosql库,于是自己封装了.NET内置的缓存组件 原先使用System.Web.Cachi ...
- 开发一个android项目后的总结
首先是自己在OneNote上面记录了一些流水: 个人感觉这一路开发下来,学到了一些知识,也碰到了许许多多的问题,也解决了一些问题.总体来看,有几点(个人观点,不支持任何讨论): 1.Java是很优秀的 ...
- Asp.Net 遍历 循环 显示所有COOKIS,SESSION,Applocation
在C#中循环显示SESSIOn: Response.Write("<br>Session的所有值:<br>"); foreach (string obj i ...
- Note: Secure Deduplication with Efficient and Reliable Convergent Key Management (Dekey)
原文献:Secure Deduplication with Efficient and Reliable Convergent Key Management Dekey包含三个实体:用户(Users) ...
- neutron负载均衡高可用测试
对工作中,实验环境的一个小总结 1.创建高可用负载均衡器------创建高可用的时候,添加上ha-mode参数即可 neutron lb-pool-create --lb-method ROUND_R ...
- webpack@3.6.0(1) -- 快速开始
本篇内容 前言 配置入口和输出 热更新 loader配置 js代码压缩 html的打包与发布 前言 //全局安装 npm install -g webpack(3.6.0) npm init //安装 ...
- Yaf + Smarty 整合笔记
Yaf真的是太简单了,简单到使用mvc的时候在view里面需要手写php脚本.因此考虑整合一下smarty模板引擎.随心所欲也正是yaf的魅力 Yaf 安装 这里简单说一下yaf的安装,已经是非常无脑 ...