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 ...
随机推荐
- 在 VisualStudio 给文件起一个带分号的文件名会怎样
小伙伴都知道在 Windows 下是支持文件名使用分号的,而写过 Roslyn 的小伙伴都知道,在 csproj 项目里面使用分号分割数组.那么在 VS 里面将一个文件名添加分号会如何?下面让咱写写看 ...
- 2019-11-29-如何入门-C++-AMP-教程
title author date CreateTime categories 如何入门 C++ AMP 教程 lindexi 2019-11-29 08:20:37 +0800 2018-2-13 ...
- ES6中Promise方法详解
概要 Promise是个保存异步结果的容器(对象). Promise的状态有:pending(进行中),fulfilled(已成功),rejected(已失败),对应其异步操作的状态. 状态转换: p ...
- vue通过input选取图片,jq的ajax向服务器上传img
<template> <div class=""> <!-- 选择后预览 --> <img v-if="im ...
- centos中普通用户使用sudo报错:centos is not in the sudoers file. This incident will be reported.
centos中普通用户使用sudo报错:centos is not in the sudoers file. This incident will be reported. su - chmod u+ ...
- 【漏洞复现】CVE-2023-27372 RCE漏洞
产品介绍 SPIP是一个互联网发布系统,其中非常重视协作工作,多语言环境和Web作者的易用性.它是自由软件,在GNU/GPL许可证下分发.这意味着它可以用于任何互联网站点,无论是个人的还是机构的,非营 ...
- ubuntu禁止指定的软件升级
禁止软件升级 sudo echo 软件包名 hold | sudo dpkg --set-selections 取消软件禁止升级的限制 sudo echo 软件包名 install | sudo dp ...
- vue 常用类库引用
js 端生成guid 类库一:https://github.com/uuidjs/uuid npm i uuid --save 类库二:https://github.com/LiosK/ ...
- C# EF 使用sqlite 数据库出现表名出现dbo的坑
当ef使用sqlite时,正常情况映射的表名是没有dbo开头的.这个dbo是映射的sa用户,而sqlite是没有用户的.所以映射出的sql语句是查不到数据的. 我在网上找半天解决方案,都不得行.后 ...
- Vue cli构建项目
一.创建项目 vue create hello-world 你会被提示选取一个 preset.你可以选默认的包含了基本的 Babel + ESLint 设置的 preset,也可以选"手动选 ...