不管是做运维的同事,还是做开发的小伙伴,我们经常需要和数据库打交道。
在处理少量的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