简单干货,在python中 PyMySQL 的各种小白用法!
2020-06-10 04:14
686 查看
mysql的入门使用:
mysql笔记, 记录一些常用的东西, 学习ing
简单的教学:
基本使用:
-
开启mysql服务 net start mysql
-
关闭mysql服务 net stop mysql
-
进入mysql服务 mysql -u root -p root是用户名称 这个时候输入数据库密码:
然后进入mysq workbeach 中 进行操作 ,或者使用命令行实现,这里使用第三方库,pymysql。
重要的SQL命令语法
SQL命令 | 描述 |
---|---|
select | 从数据库中提取数据 |
updata | 更新数据库中的数据 |
delect | 从数据库中删除数据 |
insert into | 从数据库中插入新数据 |
create database | 创建新数据库 |
alter database | 修改数据库 |
create table | 创建新表 |
alter table | 修改数据库表 |
drop table | 删除表 |
create index | 创建索引, (搜索键) |
drop index | 删除索引 |
基础函数作用:
# 创建数据库连接 self.db = pymysql.connect(host=self.host, user=self.user, password=self.password, database=self.databases, cursorclass=self.cursorclass) # 创建游标 便于执行sql语气 self.cursor = self.db.cursor() # 使用游标来执行sql语气 sql ='select * from students' self.cursor.execute(sql) # 得到数据表的行数 self.cursor.rowcount() # 得到所有条数据,也就得到了版本号 self.cursor.fetchall() # 得到第一条数据,也就得到了版本号 self.cursor.fetchone() # 注意的是,如果是对数据库做了修改、删除、增加的操作,那么一定要commit提交,查询和创建表不需要提交 self.db.commit() # 回滚数据 self.db.rollback() # 关闭游标 self.cursor.close() # 关闭数据库 self.db.close()
SQL基础创建函数:
创建数据库:
# 创建数据库 sql = 'create database [数据库名称] default character set utf8' cursor.execute(sql) # 获得当前mysql版本 sql = 'select version()' cursor.execute(sql)
创建表:
# 创建表 sql = 'create tabel if not exists [表名称][students] ( id varchar(255) not NUll, name varchar(255) not NUll age INT not Null, primary key(id)) ' cursor.execute(sql) # 展示表 sql = 'show tables' cursor.execute(sql)
插入数据:
# 插入数据 name = '白嘉诚' sql = f'insert into student_score(name, gender) values("{name}","男")' # 使用引号括起来 try: cursor.execute(sql) # 执行语气 db.commit() # 如果修改了就要提交一次表单 except: db.rollback() # 如果发生异常 执行数据回滚,重新再来 # 动态插入数据 使用字典 data = { 'id': 1, 'name': '张三炮', 'gender': '男', 'age': 12, 'score': 99 } def fun(): data_len = "'%s', " * len(data) data_len = data_len[:-2] # 去引号 data_len = data_len % tuple(data.values()) # 格式化 return data_len fun() table = 'student_score' keys = ', '.join(data.keys()) sql = f"insert into {table}({keys}) values( {fun()})"
更新数据:
# 更新数据 sql = "update students set age = '[new]' where name = '[old]'" try: cursor.execute(sql) # 执行 db.commit() # 提交表单 except: db.rollback() # 回滚数据 db,close()
删除数据:
# 删除数据 table = 'student' condition = 'name ="张二炮"' sql = f'delete from {table} where {condition}' try: cursor.excute(sql) # 执行 db.commit() # 提交表单 except: db,rollback() db.close()
优质查询数据:
# 查询数据 # 优质单个数据查询 占用资源少 逐行取数据, 每循环一次, 游标就会偏移一次 table = 'students' condition = 'age >= 20' sql = f"select * from {table} where {condition}" try: cursor.execute(sql) # 执行语气 print('Count:', cursor.rowcount) row = cursor.fetchone() while row: print('row', row) row = cursor.fetchone() except: print('ERROR')
功能简单封装:
这个是借鉴了其他博客:当时没记住作者博客ID ,搞得忘记了,知道的可以联系我, 我后续加上去
# -*- coding : utf-8 -*- # @Time : 2020/6/8 22:09 # @author : 沙漏在下雨 # @Software : PyCharm # @CSDN : https://me.csdn.net/qq_45906219 class MYSQL(): def __init__(self, host, user, password, database, cursorclass=None): # cursorclass将返回结果呈字典显示 ,如果传了就应用,不传就为None self.host = host # ip地址,本机就传localhost就可以 self.user = user # 账户名,如果你没有更改过,那就是root self.password = password # 数据库密码 self.databases = database # 你具体要连接的哪一个数据库 self.cursorclass = cursorclass # 返回结果呈字典形式 {} def connect(self): # 创建连接数据库方法 import pymysql # 创建数据库连接 self.db = pymysql.connect(host=self.host, user=self.user, password=self.password, database=self.databases, cursorclass=self.cursorclass) # 创建游标 便于执行sql语气 self.cursor = self.db.cursor() def get_one(self, sql): # 返回一条符合条件的查询结果 result = 0 try: self.connect() self.cursor.execute(sql) result = self.cursor.fetchone() # 得到第一条数据 self.close() except Exception as e: print('select error', e) return result def get_all(self, sql): # 返回全部符合条件的查询结果 result = 0 try: self.connect() # 声明连接对象, 连接数据库 self.cursor.execute(sql) # 使用游标来执行sql语气 result = self.cursor.fetchall() # 得到所有条数据,也就得到了版本号 self.close() except Exception as e: print("select error", e) return result def __edit(self, sql): # 创建主函数 result = 1 # 设置结果集,用于调用的时候做判断 try: # 这里是使用的try语句来尝试进行操作 self.connect() self.cursor.execute(sql) self.db.commit() # 注意的是,如果是对数据库做了修改、删除、增加的操作,那么一定要commit提交,查询和创建表不需要提交 self.close() except Exception as e: # 如果操作失败,报出操作异常,且游标进行回滚 print('error :', e) result = 0 self.db.rollback() return result def insert(self, sql): # 插入语句 ,以下三个都是一样的,只是调用的时候,我们看起来更加清晰而已 return self.__edit(sql) # 通过主函数的处理,来去执行sql语句 def delete(self, sql): # 删除语句 return self.__edit(sql) def update(self, sql): # 修改语句 return self.__edit(sql) def close(self): # 关闭方法 self.cursor.close() # 关闭游标 self.db.close() # 关闭数据库
相关文章推荐
- python模块pymysql简单用法
- python BeautifulSoup的简单用法
- Python迭代器定义与简单用法分析
- python dict的一些简单用法
- Python装饰器简单用法实例小结
- python中csv模块的一些简单用法
- python3字符串格式化format()函数的简单用法
- Python网络编程之TCP套接字简单用法示例
- 举例简单讲解Python中的数据存储模块shelve的用法
- Python中的错误和异常处理简单操作示例【try-except用法】
- python的argv最简单的用法
- Python中MySQLdb的各种常见用法
- python基础教程之分支、循环简单用法
- 小白入门python之在命令框中实现简单的python代码
- python写个简单的文件上传是有多难,要么那么复杂,要么各种,,,老子来写个简单的
- Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
- Python3中内置类型bytes和str用法及byte和string之间各种编码转换
- 小白IT:操作系统是什么,之间交互关系?——Python额外篇简单介绍一下计算机发展历史-对于专学Python又没计算机基础戳这里~!
- Python装饰器的各种用法
- python小白必看的文件指针用法