不管是做运维的同事, 还是做开发的小伙伴, 我们经常需要和数据库打交道.
在处理少量的 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
来源: http://www.bubuko.com/infodetail-3357574.html