整理了一下前面3期学的内容后,现在练习使用python去操作数据库

#!python3
# coding:utf-8
import pymysql
class mysql_option():
def __init__(self, host, port, username, pwd, **kwargs):
'''
如果直接连接到具体的数据库,只需要传kwargs,即db = dbname
:param host:
:param port:
:param username:
:param pwd:
:param kwargs:
:return:
'''
self.conn = self.mysql_connect(host, port, username, pwd, **kwargs)
self.cursor = self.conn.cursor() @staticmethod
def mysql_connect(host, port, username, pwd, **kwargs):
try:
connect = pymysql.connect(host = host, port = int(port), user = username, passwd = pwd, charset = 'utf8', **kwargs)
print("Mysql数据库连接成功")
return connect
except Exception as ex:
print("Mysql连接异常,具体报错如下:\n%s"%(ex))
return False def create_database(self, dbname):
'''
创建数据库
:param dbname: 数据库名称
:return:
'''
try:
create_db_sql = "create database if not exists %s default character set utf8 collate utf_8_general_ci;"%(dbname)
self.cursor.execute(create_db_sql)
result = self.cursor.fetcall()
print("创建%s数据库成功%s"%(dbname, result))
except Exception as ex:
print("创建%s数据库失败,具体原因如下:\n%s"%(dbname, ex))
self.cursor.close()
return False def select_db(self, db_name):
try:
self.conn.select_db(db_name)
print("连接数据库%s成功"%(db_name))
except Exception as ex:
print("连接数据库%s失败,具体原因如下:\n%s"%(db_name, ex))
self.cursor.close()
return False def create_table(self, table_name):
create_table_sql = "create table if not exists %s"%(table_name)
try:
self.cursor.execute(create_table_sql)
result = self.cursor.fetcall()
print("创建%s数据表成功%s"%(table_name, result))
return True
except Exception as ex:
print("创建%s数据表失败,具体原因如下:\n%s"%(table_name, ex))
self.cursor.close()
return False def sql_option(self, option):
try:
self.cursor.execute(option)
except Exception as ex:
print("操作语句执行失败,具体原因如下:\n%s"%(ex))
self.conn.rollback() #事务回滚
return False
else:
self.conn.commit()
print("SQL事物提交成功,提交结果:%s"%(self.cursor.rowcount))
return True
finally:
self.cursor.close() #关闭连接 def show_db(self):
self.cursor.execute("show databases;")
result = self.cursor.fetchall()
return result def show_table(self):
self.cursor.execute("show tables;")
result = self.cursor.fetchall()
return result def show_desc(self, table_name):
sql_op = "desc %s"%(table_name)
self.cursor.execute(sql_op)
result = self.cursor.fetchall()
return result def drop_db(self, db_name):
sql_op = "drop database %s"%(db_name)
print("警告:您将删除数据库%s,请再次确认删除!(Y)确认 (N)取消"%(db_name))
confirm = input("请选择:")
if confirm == "Y" or confirm == "y":
try:
print("开始删除……")
self.cursor.execute(sql_op)
print("删除数据库%s成功"%(db_name))
return True
except Exception as ex:
print("删除数据库%s失败,具体原因:%s"%(db_name, ex))
return False
finally:
self.cursor.close()
else:
print("本次操作已取消!")
return False def drop_table(self, table_name):
sql_op = "drop table %s"%(table_name)
print("警告:您将删除数据表%s,请再次确认删除!(Y)确认 (N)取消"%(table_name))
confirm = input("请选择:")
if confirm == "Y" or confirm == "y":
print("开始删除……")
try:
self.cursor.execute(sql_op)
print("删除数据表%s成功%s"%(table_name))
return True
except Exception as ex:
print("删除数据表%s失败,具体原因:%s"%(table_name, ex))
return False
finally:
self.cursor.close() #关闭连接 else:
print("本次操作已取消!") def close_mysql(self):
self.cursor.close() if __name__ == '__main__':
mysql_option = mysql_option("192.168.183.128", "3306", "root", "Abc123!", db = 'testdb')
# mysql_option = mysql_option("192.168.183.128", "3306", "root", "Abc123!")
# print(mysql_option.show_db()[4][0])
# db = mysql_option.show_db()[4][0]
# mysql_option.select_db(db)
# # mysql_option.show_table()
# # mysql_option.close_mysql()
# print(mysql_option.show_desc("test_tables"))
# mysql_option.drop_db("testdb02")
SQL = "select *from user where id=1"
mysql_option.sql_option(SQL)

mysql学习(4)python操作数据库的更多相关文章

  1. MySQL学习02(操作数据库)

    操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据库定义语言) 定义和管理数据对象,例如数据库和数据表 create.drop.alter DML(数据操作语言) 用于操作数据库对象中所包 ...

  2. mysql 之 用python操作数据库

  3. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

  4. Python学习笔记 - day11 - Python操作数据库

    MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...

  5. Python接口测试实战3(上)- Python操作数据库

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  6. 孤荷凌寒自学python第四十四天Python操作 数据库之准备工作

     孤荷凌寒自学python第四十四天Python操作数据库之准备工作 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天非常激动地开始接触Python的数据库操作的学习了,数据库是系统化设计 ...

  7. python 操作数据库的常用SQL命令

    这俩天在学习PYTHON操作数据库的知识.其实基本SQL命令是与以前学习的MYSQL命令一致,只是增加了一些PYTHON语句. 1,安装pymysql,并导入. import pymysql 2,因为 ...

  8. python操作数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  9. 零基础学Python--------第11章 使用Python操作数据库

    第11章 使用Python操作数据库 11.1 数据库编程接口 在项目开发中,数据库应用必不可少.虽然数据库的种类有很多,如SQLite.MySQL.Oracle等,但是它们的功能基本都是一样的,为了 ...

  10. python操作数据库PostgreSQL

    1.简述 python可以操作多种数据库,诸如SQLite.MySql.PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括 ...

随机推荐

  1. Oracle 导出用户下的所有索引创建语句

    SELECT dbms_lob.substr(dbms_metadata.get_ddl('INDEX', INDEX_NAME))||';'  from dba_indexes where owne ...

  2. 团队作业——Alpha冲刺 8/12

    团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:将编辑界面与其中字体设置的弹窗合并,学习Android控件交互. 明日任务:希望完成编辑界面所有接口交互的功能. 郭剑南 今日任务:使用P ...

  3. JFreeChart绘制XY折线图(工具类设计)

    准备用Java写通信的仿真平台作为毕业设计,相比matlab绘图,Java绘图需要自己去写很多工具类,博主在这采用了JFreeChart的开源解决方案,摸索着自己写了一个XY折线图工具类,话不多说贴源 ...

  4. Windows2008 Server r2 64位显示桌面图标的方法

    点击桌面左下方的开始菜单,在搜索框中输入“icon”,如下图所示: 点击:显示或隐藏桌面上的通用图标,然后弹出如下图: 应用并确定即可!

  5. toFixed四舍五入精度校正

    var a = 2.255; var b = a.toFixed(2); console.log(b); 以上代码,按预期正常四舍五入得到结果应该是2.26,但实际返回值为2.25 js浮点数精度作为 ...

  6. 图解:图形下控制台中weblogic9.2多池配置为oracle集群RAC

    update: 这个东西如果配置不顺利的话:应用请求数据库的时候,会打印类似这样的错误: :open connection err Pool connect failed : weblogic.com ...

  7. css盒子模型(box-sizing)

    盒子模型 关于CSS重要的一个概念就是CSS盒子模型.它控制着页面这些元素的高度和宽度.盒子模型多少会让人产生一些困惑,尤其当涉及到高度和宽度计算的时候.真正盒子的宽度(在页面呈现出来的宽度)和高度, ...

  8. lwip Packet buffers (PBUF) API 操作 集合

    struct pbuf *  pbuf_alloc (pbuf_layer layer, u16_t length, pbuf_type type)   struct pbuf *  pbuf_all ...

  9. 开关电源五种PWM反馈控制模式

    开关电源五种PWM反馈控制模式 来源:--作者:--浏览:178时间:2016-08-10 14:18 关键词: 1 引言 PWM开关稳压或稳流电源基本工作原理就是在输入电压变化.内部参数变化.外接负 ...

  10. 解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题(转载)

    有时候我们要为EF中的Model加一个新属性,这个属性不是数据库中的字段,而是从其它表中关联出来的.EF中要标示一个列不是对应表中字段只需要加上NotMapped特性.要使用NotMapped,保证你 ...