python之mysql查询
Posted 异想实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之mysql查询相关的知识,希望对你有一定的参考价值。
前置信息:
数据库地址='localhost'
数据库用户名='root'
数据库密码='root'
数据库名称='test'
数据库中数据信息
id name gongzi
1 张三 100
2 李四 200
3 王二麻子 300
4 李晓天 400
从user表中获取一条信息
从test数据库user表中获取第一个数据:
import pymysql.cursors
#数据库链接信息
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句,查询user表
sql = 'select * from user '
#执行sql语句查询
cursor.execute(sql)
#这是获取表中第一个数据
rest=cursor.fetchone()
print(rest)
# 关闭数据库连接
db.close()
返回结果:
(1, '张三', '100')
获取表中的全部数据:
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句,查询user表
sql = 'select * from user '
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(1, '张三', '100')
(2, '李四', '200')
(3, '王二麻子', '300')
(4, '李晓天', '400')
获取某字段全部信息:
例如获取user表中name字段下的所有姓名:
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句,查询user表中name字段中的数据
sql = 'select name from user '
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
('张三',)
('李四',)
('王二麻子',)
('李晓天',)
条件查询-返回全部信息:
例如获取工资大于100的数据信息:
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#查询工资大于100的数据
#格式: selet * form 表名字 where 条件
sql = 'select * from user WHERE gongzi>100'
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(2, '李四', '200')
(3, '王二麻子', '300')
(4, '李晓天', '400')
条件查询B-只返回符合条件的名字
例如,查询test数据库user表中,工资大于100的名字都是有哪些;
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#查询工资大于100的数据
#格式: selet * form 表名字 where 条件
sql = 'select name from user WHERE gongzi>100'
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
('李四',)
('王二麻子',)
('李晓天',)
数据库条件筛选:
例如,查询test数据库user表中,工资大于等于100,且小于等于400的用户信息,也就是某条件范围筛选;
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#条件条范围筛选
# sql="select * from user where name = '李四'"
sql="select * from user where gongzi>=200 and gongzi<=400"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(2, '李四', '200')
(3, '王二麻子', '300')
(4, '李晓天', '400')
模糊查询
例如查询,name字段下的数据,哪些用户的名字包含[李]姓,并且返回全部信息;
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#模糊查询,查询名字中包含姓李的用户信息;
sql="select * from user where name like '%李%'"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
返回信息:
(2, '李四', '200')
(4, '李晓天', '400')
精确查询
查询名称为:李四的用户信息
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#条件精确查询
# sql="select * from user where name = '李四'"
sql="select * from user where name = '李四'"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(2, '李四', '200')
查询多个用户信息
当然也可以同时查询多个用户的信息:
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#条件精确查询
# sql="select * from user where name = '李四'"
sql="select * from user where name = '李四' or name = '李晓天'"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(2, '李四', '200')
(4, '李晓天', '400')
如果想查询李四和李晓天的信息,但是只返回名字和工资信息,并不返回id信息,则可以执行下面的python代码;
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#条件精确查询
# sql="select * from user where name = '李四'"
sql="select name,gongzi from user where name = '李四' or name = '李晓天'"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
('李四', '200')
('李晓天', '400')
查询没有奖金的用户
此时数据库信息为下方信息;
(1, '张三', '100', )
(2, '李四', '200', '1000')
(3, '王二麻子', '300', '2000')
(4, '李晓天', '400', )
查询没有奖金的用户代码
import pymysql.cursors
db = pymysql.connect(host='localhost',
user='root',
password='root',
database='test')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#条件查询
sql="select * from user where jiangjin<=>NULL"
cursor.execute(sql)
#这是查询表中所有的数据
rest=cursor.fetchall()
for i in rest:
print(i)
# 关闭数据库连接
db.close()
执行结果:
(1, '张三', '100', None)
(4, '李晓天', '400', None)
以上是关于python之mysql查询的主要内容,如果未能解决你的问题,请参考以下文章