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 ...
随机推荐
- Microsoft.Maui.Graphics.Skia 使用 DrawString 绘制文本的坐标问题
本文记录使用 Microsoft.Maui.Graphics.Skia 的 DrawString 进行绘制文本,不同的重载方法绘制的文本的坐标不同的问题 本文开始之前,预期已经准备好了环境和基础项目, ...
- MindSpore强化学习:使用PPO配合环境HalfCheetah-v2进行训练
本文分享自华为云社区<MindSpore强化学习:使用PPO配合环境HalfCheetah-v2进行训练>,作者: irrational. 半猎豹(Half Cheetah)是一个基于Mu ...
- Codeforces Round 932 (Div. 2) ABCD
A. Entertainment in MAC 题意:给定字符串 \(S\),有两种操作,每次操作其中之一: 把 \(S\) 变为 \(S\) 的翻转 \(T\). 把 \(S\) 变为 \(S + ...
- Solution Set - 组合计数
CF40E Number Table Link&Submission. 显然 \(n,m\) 奇偶性不同时无解.奇偶性相同时,假设有一行全为空,剩下每行至少一个有空,则除这些位置外没有限制的位 ...
- 三、Doris数据模型
DorisDB根据摄入数据和实际存储数据之间的映射关系, 将数据表的明细表, 聚合表和更新表, 分别对应有明细模型, 聚合模型和更新模型. Aggregate (聚合模型) : 将表中的列分为了Key ...
- 详解GaussDB(DWS)中的行执行引擎
本文分享自华为云社区<GaussDB(DWS)行执行引擎详解>,作者:yd_227398895. 1.前言 GaussDB(DWS)包含三大引擎,一是SQL执行引擎,用来解析用户输入的SQ ...
- 鸿蒙HarmonyOS实战-Stage模型(ExtensionAbility组件)
一.ExtensionAbility组件 1.概念 HarmonyOS中的ExtensionAbility组件是一种能够扩展系统功能的能力组件.它可以通过扩展系统能力接口,为应用程序提供一些特定的功能 ...
- Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?
@Autowired和@Resource都是Java Spring框架中的注解,用于实现依赖注入(DI)和控制反转(IoC).它们的区别主要在以下三个方面: 源头不同 @Autowired是Spri ...
- JavaScript的数学计算库:decimal.js
An arbitrary-precision Decimal type for JavaScript. 功能 整数和浮点数 简单但功能齐全的 API 复制 JavaScript 和对象的许多方法Num ...
- Vue——安装
Vue.js 设计的初衷就包括可以被渐进式地采用.这意味着它可以根据需求以多种方式集成到一个项目中. 将 Vue.js 添加到项目中主要有四种方式: 1.在页面上以 CDN 包的形式导入. <s ...