12-Python数据库访问
在CentOS7上安装Mariadb
https://blog.csdn.net/NetRookieX/article/details/104734181
常用的增删改查
show databases; #查看数据库
create database test; #创建一个数据库,名字为test
use test; #进入数据库test
show tables; #查看当前数据库中的表
create table Student(name char(10),age int); #创建表,表名为Student,表中的字段有name和age
select * from Student; #查看表Student中的所有数据
insert Student value('Tom',18); #插入数据
delete from Student where age=18; #删除所有age为18的数据
安装模块pymysql
pip3 install PyMySQL
如果出现"ImportError: No module named setuptools"的错误提示,则:
下载
https://bootstrap.pypa.io/ez_setup.py
运行命令python3 ez_setup.py
PyCharm上安装,则参考:https://blog.csdn.net/NetRookieX/article/details/86259454
连接数据库
# -*- coding:utf-8 -*-
import pymysql
con = pymysql.connect(host="192.168.191.128",user="root",passwd="123456",db="test",charset="utf8")#打开数据库连接
#port=3306 #指定端口
#charset="utf8" #指定字符集(如果数据库操作含有中文)
cursor = con.cursor() #创建游标对象
try:
name='Bob'
age=20
r=cursor.execute('insert into Student values(%s,%s);',(name,age)) #执行命令
#r为受影响的行数
con.commit() #提交执行(查询不需要commit)
except:
print("出现错误")
con.rollback() #如果发生错误则回滚
cursor.close()
con.close()
查询数据库
# -*- coding:utf-8 -*-
import pymysql
con = pymysql.connect(host="192.168.191.128",user="root",passwd="123456",db="test",charset="utf8")#打开数据库连接
cursor = con.cursor() #创建游标对象
try:
r = cursor.execute('select * from Student;') # 执行命令
#r为受影响的行数
except:
print("查询错误")
#data = cursor.fetchone() #取一条结果(从内存中取)
data = cursor.fetchall() #取全部结果
#fetchmany(3) #取三条结果
#rowcount #只读属性,返回执行execute()后影响的行数
print (data) #打印数据
cursor.close()
con.close()
执行多条语句
r=cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)]) #执行多条语句
SQL注入
sql='select username,password from userinfo where username="%s" and password="%s"'
sql=sql %('root" or 1=1 -- ',123456) #无论用户名密码对不对,都能查询
12-Python数据库访问的更多相关文章
- Python数据库访问之SQLite3、Mysql
Python数据库访问之SQLite3.Mysql 现有的数据库管理系统有很多种,本文选择介绍两种DBMS:SQLite 3 和 Mysql. SQLite 3 SQLite 3是Python 3预装 ...
- Python数据库访问公共组件及模拟Http请求
前言 最近一段时间除了忙于工作之外,在业余时,迷上了python,对它的跨平台深深的吸引.经过一段时间的自我学习,了解了其基本的语法,便开始自己着手摆弄起来.主要想把以前对接的接口再实现一次,以便于在 ...
- python数据库访问
取得rs,使用,报错 sqlite3.Cursor' object has no attribute '__getitem__' 原因:使用时conn已经关闭了. 解决:用fetchall取出传递回来 ...
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...
- 我也来写:数据库访问类DBHelper(转)
一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
- 通过Oracle数据库访问控制功能的方法(Database access control)
修改sqlnet.ora文件中的IP列表后都需要重启监听才能生效.(原文是: Any changes to the values requires the TNS listener to be sto ...
- python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...
- python-整理--sqlite数据库访问
python 自带sqlite3数据库访问模块. sqlite3 以下写一个数据库访问类 ''' 2016年2月5日 描述: 操作sqlite数据库的封装 主要功能: 将sqlite数据库数据转为py ...
- python/数据库操作补充—模板—Session
python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...
- [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:
[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...
随机推荐
- Steam中将XBox手柄默认布局改为任天堂手柄布局的方法
1. 在Steam菜单栏找到"查看",选择大屏幕模式. 2. 进入大屏幕模式后,在菜单界面找到"设置". 3. 在设置界面找到"控制器",选 ...
- vue03 01.vite创建项目
目录 01.创建项目 打包工具 vite介绍 安装命令 安装项目依赖 启动项目 浏览效果 代码目录 打包 预览运行 插件使用 编辑器 01.创建项目 打包工具 vite官网 vite创建项目 vite ...
- LocalDateTime 时间偏移量的处理
一.代码处理块 // 当前系统时间两年后的时间 LocalDateTime expirationTime = LocalDateTimeUtil.offset(LocalDateTime.now(), ...
- 🔥fastposter v2.19.0 一款很哇塞的海报生成器
fastposter v2.19.0 一款很哇塞的海报生成器 fastposter 是一款快速开发海报的工具,已经服务众多电商.分销系统.电商海报.电商主图.行业海报等海报生成和制作场景. 什么是 f ...
- three.js案例-web3d三维地图大屏炫酷3D地图下钻地图-附源码
炫酷3D地图效果如下: 代码注释非常详细: create() { // 添加雾,随着距离线性增大,只能看到一个小是视野范围内的场景,地图缩小很多东西就会看不清 //this.scene.fog = n ...
- SQL Server实战七:自定义数据类型、标量值、内嵌表值、多语句表值函数的操作
本文介绍基于Microsoft SQL Server软件,实现数据库用户自定义数据类型的创建.使用与删除,以及标量值.内嵌表值.多语句表值函数等用户定义函数的创建.使用.删除方法. 目录 1 用S ...
- .NET C#导出解决方案的NuGet依赖关系
前言 公司项目需要写DS设计文档,文档需要标识出来你的解决方案文件下的所有项目都使用了NuGet哪些第三方依赖,我们都知道sln下面的所有.csproj文件中的节点下会标识出对应的依赖,但一个一个对比 ...
- AIRIOT智慧变电站管理解决方案
随着社会电气化进程的加速,电力需求与日俱增,变电站作为电网的关键节点,其稳定性和智能化管理水平直接关系到整个电力系统的高效运作.传统变电站管理平台难以适应现代电力系统复杂管理需求,存在如下痛点: 数据 ...
- .net core DataTable.Load()方法,返回的行缺少,少于reader读出的行
我分析的原因是,datatable模式的schema默认是根据查询的sql来的.起因是我写的sql中带有主键的列,查出来有很多重复值, 然后dt.load会默认把主键重复的行给合并掉,所以最终查询出来 ...
- Django——启动项目时报错mysqlclient
报错内容如下: Watching for file changes with StatReloader Exception in thread django-main-thread: Tracebac ...