程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python之mysql查詢

編輯:Python

前置信息:

數據庫地址='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)

先自我介紹一下,小編13年上師交大畢業,曾經在小公司待過,去過華為OPPO等大廠,18年進入阿裡,直到現在。深知大多數初中級java工程師,想要升技能,往往是需要自己摸索成長或是報班學習,但對於培訓機構動則近萬元的學費,著實壓力不小。自己不成體系的自學效率很低又漫長,而且容易碰到天花板技術停止不前。因此我收集了一份《java開發全套學習資料》送給大家,初衷也很簡單,就是希望幫助到想自學又不知道該從何學起的朋友,同時減輕大家的負擔。添加下方名片,即可獲取全套學習資料哦


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved