mysql学习(4)python操作数据库
整理了一下前面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操作数据库的更多相关文章
- MySQL学习02(操作数据库)
操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据库定义语言) 定义和管理数据对象,例如数据库和数据表 create.drop.alter DML(数据操作语言) 用于操作数据库对象中所包 ...
- mysql 之 用python操作数据库
- Python操作数据库之 MySQL
Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...
- Python学习笔记 - day11 - Python操作数据库
MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...
- Python接口测试实战3(上)- Python操作数据库
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 孤荷凌寒自学python第四十四天Python操作 数据库之准备工作
孤荷凌寒自学python第四十四天Python操作数据库之准备工作 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天非常激动地开始接触Python的数据库操作的学习了,数据库是系统化设计 ...
- python 操作数据库的常用SQL命令
这俩天在学习PYTHON操作数据库的知识.其实基本SQL命令是与以前学习的MYSQL命令一致,只是增加了一些PYTHON语句. 1,安装pymysql,并导入. import pymysql 2,因为 ...
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- 零基础学Python--------第11章 使用Python操作数据库
第11章 使用Python操作数据库 11.1 数据库编程接口 在项目开发中,数据库应用必不可少.虽然数据库的种类有很多,如SQLite.MySQL.Oracle等,但是它们的功能基本都是一样的,为了 ...
- python操作数据库PostgreSQL
1.简述 python可以操作多种数据库,诸如SQLite.MySql.PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括 ...
随机推荐
- 树莓派踩坑备忘录 -- 使用 Linux
目录 一,工欲善其事,必先利其器 二,开机必备 三,更新 apt-get 源与软件搜索 四,安装 .NET Core 五,文件传输 六,搜索与安装软件 七,常见缺少的 xxx.so 八,小技巧与工具 ...
- NOIP2018考前抱佛脚——搜索复习
目录 搜索 DFS 例1 P1101 单词方阵 题目描述 输入输出格式 输入输出样例 标程 例2 P1605 迷宫 题目背景 输入输出格式 输入输出样例 标程 例3 P1019 单词接龙 题目描述 输 ...
- SDN 第四次作业
阅读 了解SDN控制器的发展 http://www.sdnlab.com/13306.html http://www.docin.com/p-1536626509.html 了解ryu控制器 http ...
- [BUG]自己的bug自己解,记一次在变量使用过程引发的bug
[实现的功能要求]在短信编辑界面,将所有的emoji表情全部插入到编辑区域,其中表情共有5页,每遍历完一页时需要自动翻页重新获取表情并插入,在第5页中只有10个表情 下面先看看这段代码,大家能否看出有 ...
- 【转】开篇python--明白python文件如何组织,理解建立源文件
在Python 中引用是非常简单的事情,这里需要清楚三个概念就可以了包.模块.类.类这个就不用说了. 模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,p ...
- ES6标准入门之正则表达式的拓展
所谓正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规 ...
- 如何为已有的类没有生成toString的方法增强生成toString方法
1:只要提到增强,我的第一思路就是代理,动态代理.但是仅仅是一个toString其实没必要使用代理模式了,有点大材小用了(动态代理其实也是最后通过反射生成toString的方法). 2:简单粗暴,可以 ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-3-Command-line completion命令补全
Command-line completion https://docs.docker.com/machine/completion/ Installing Command Completion——实 ...
- day3-课堂笔记
函数有2种: 1种是有返回值的,不改变对象本身 1种是没有返回值的,改变对象本身 eval函数就是实现list.dict.tuple与str之间的转化(只能把类似格式的字符串进行相应转换)str函 ...
- OpenCV——直方图均衡化(用于图像增强)
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...