不管是做運維的同事,還是做開發的小伙伴,我們經常需要和數據庫打交道。
在處理少量的sql,我們還能自己寫寫,但是,如果需要執行大量的sql,並對查詢的數據做分析,這時候怎么辦呢?
當!當!當!當!當!我們的程序語言就上場啦,本文就介紹了用python對數據庫進行簡單的操作。
初始化數據庫,得到一個可以執行SQL語句的光標對象
conn = pymysql.connect(host='host', port='port', user='user', password='password',database='database', charset='charset')
curs = conn.cursor()
創建數據表SQL語句
curs.execute("DROP TABLE IF EXISTS EMPLOYEE") #如果數據表已經存在使用 execute() 方法刪除表。
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
curs.execute(sql)
sql的增刪改查
增
sql = "INSERT INTO 表名 (屬性) VALUES (值);"
curs.execute(sql)
res = conn.commit()
while res is not None: # 如果提交不成功,總再次提交,知道成功為止
conn.rollback() # 發生錯誤時回滾
curs.execute(sql)
res = conn.commit()
刪
sql = "DELETE FROM 表名 WHERE 屬性 = 值"
try:
curs.execute(sql)
conn.commit()
except:
conn.rollback() # 發生錯誤時回滾
改
sql = "UPDATE 表名 SET 屬性 = 值 WHERE 屬性 = 值"
try:
curs.execute(sql)
conn.commit()
except:
conn.rollback() # 發生錯誤時回滾
查
sql = "select * from 表名"
try:
curs.execute(sql) # 執行sql語句
res = curs.fetchall() # 獲取查詢的所有記錄
for row in res:
print(row)
except Exception as e:
raise e
關閉數據庫
conn.close