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)

你可能感兴趣的:(MySQL,mysql,python,数据库)