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)	#无论用户名密码对不对,都能查询

posted @ 2020-07-13 22:28  NetRookieX  阅读(11)  评论(0编辑  收藏  举报