前置信息:
- 数据库地址='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)