import pymysql
import datetime

#安装 pip install pymysql
"""
1、连接本地数据库
2、建立游标
3、创建表
4、插入表数据、查询表数据、更新表数据、删除表数据
"""
#连接本地数据库
db = pymysql.connect(
host = "localhost", #数据库的主机地址
user = "root", #数据库登录的用户名
passwd = "123456", #数据库登录的密码
database = "test" #数据库名字
)

#创建游标
cursor = db.cursor()

def create_table():
#如果存在student表,则删除
cursor.execute("DROP TABLE IF EXISTS student")

#创建student表 --元组
sql = """
create table student(
id int not null,
name char(10),
age int,
address char(20),
create_time datetime)
"""

try:
# 执行SQL语句
cursor.execute(sql)
print("创建数据库成功")
except Exception as e:
print("创建数据库失败:case%s"%e)
finally:
pass
#关闭游标连接
# cursor.close()
# 关闭数据库连接
# db.close()

def insert_into():
#批量插入数据
sql = "INSERT INTO student VALUES(%s,%s,%s,%s,%s)"
params = [
(1,"小王",23,"深圳",datetime.datetime.now()),
(2,"小刘",24,"深圳",datetime.datetime.now()),
(3,"小宋",25,"深圳",datetime.datetime.now())
]

try:
# 执行SQL语句 批量插入用executemany
cursor.executemany(sql,params)
# 提交到数据库执行
db.commit()
print("有",cursor.rowcount,"插入数据成功")
except Exception as e:
print("插入数据失败:case%s"%e)
# 如果发生错误则回滚
db.rollback()
finally:
pass
# 关闭游标连接
# cursor.close()
# 关闭数据库连接
# db.close()

def update_Set():
#SQL语句更新数据
sql = """UPDATE student SET address = '东莞' WHERE ID = %s"""%(2)

try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("有",cursor.rowcount,"更新数据成功")

except Exception as e:
print("数据更新出错:case%s"%e)
#发生错误是回滚
db.rollback()

finally:
pass
# 关闭游标连接
# cursor.close()
# 关闭数据库连接
# db.close()

def select_form():
# SQL 查询语句 --条件查询
sql = "SELECT * FROM student WHERE ID = %s"%(2)

try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表 fetchall
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
address = row[3]
create_time = row[4]
print("id=%s,name=%s,age=%s,address=%s,create_time=%s"%\
(id,name,age,address,create_time))

except Exception as e:
print("查询出错:case%s"%e)

finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()

def exit():
"""退出系统"""
import sys
sys.exit()
print("退出系统")

def main():
while True:
choice = int(input("请选择下面的数字:\n"
"1.创建表\n"
"2.插入数据\n"
"3.更新数据\n"
"4.查询数据\n"
"5.退出系统\n"
))
if choice == 1:
create_table()
elif choice == 2:
insert_into()
elif choice == 3:
update_Set()
elif choice == 4:
select_form()
else:
exit()

if __name__ == "__main__":
main()

python基础之操作数据库(pymysql)操作的更多相关文章

  1. JavaScript操作数据库JS操作Access数据库

    avaScript操作数据库JS操作Access数据库,跟其他语言操作差不多,总结了一下习惯代码,仅供参考学习.现在在F盘有文件abc.mdf,表名为Student,一共2个字段,Id数字类型主键,s ...

  2. python基础学习24----使用pymysql连接mysql

    使用pymysql连接mysql 安装pymysql pymysql安装可以通过两种方式 使用pip安装 首先简单说一下pip的使用方法 获取帮助 pip --help 升级 pip pip inst ...

  3. Python 操作数据库pymysql

    import pymysql #添加数据 conn , user='root', passwd='', db='yyy') #更改获取数据结果的数据类型,默认是元组,可以改为字典等:#cursor=c ...

  4. python 基础 9.3 mysql 数据操作

    #/usr/bin/python #coding=utf-8 #@Time   :2017/11/21 0:20 #@Auther :liuzhenchuan #@File   :mysql 数据操作 ...

  5. python基础之元组、文件操作、编码、函数、变量

    1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...

  6. 使用Python来对MySQL数据库进行操作

    使用Python对Mysql进行操作,前提是安装了python-Mysql的安装包,安装的方法有多种,可以使用easy_install或者pip  或者是源码进行安装. 下面介绍下如何使用Python ...

  7. Python之路:Python 基础(三)-文件操作

    操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 文件句柄 = file('文件路径', '模式') # 还有一种方法open 例1.创建文件  f = file('myfile. ...

  8. Python基础(七)-文件操作

    一.文件处理流程 1.打开文件,得到文件句柄赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 二.基本操作 f = open('zhuoge.txt') #打开文件 first_line = ...

  9. Python基础之文件和目录操作

    1 .文件操作 1.1 文件打开和关闭 在python, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件. # 打开文件 f = open('test.txt', 'w') ...

随机推荐

  1. spring——自动装配【非常详细】

    什么是自动装配? 自动装配就是让应用程序上下文为你找出依赖项的过程.说的通俗一点,就是Spring会在上下文中自动查找,并自动给bean装配与其关联的属性! spring中实现自动装配的方式有两种,一 ...

  2. 【UG二次开发】 UF_OBJ_ask_name 获取对象名字

    代码 char name[256]; UF_OBJ_ask_name(objTag, name);

  3. 面试总被问到HTTP缓存机制及原理?看完你就彻底明白了

    前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能. 但是对于很多前端 ...

  4. oracle 11g查看alert日志方法

    一.第一种方法 1.切换到oracle用户 su - oracle 2.进入sqlplus窗口 sqlplus / as sysdba 3.执行sql命令,查看trace文件位置:background ...

  5. Java进阶 | Proxy动态代理机制详解

    一.Jvm加载对象 在说Java动态代理之前,还是要说一下Jvm加载对象的过程,这个依旧是理解动态代理的基础性原理: Java类即源代码程序.java类型文件,经过编译器编译之后就被转换成字节代码.c ...

  6. Spring Boot 2.x基础教程:使用Redis的发布订阅功能

    通过前面一篇集中式缓存的使用教程,我们已经了解了Redis的核心功能:作为K.V存储的高性能缓存. 接下来我们会分几篇来继续讲讲Redis的一些其他强大用法!如果你对此感兴趣,一定要关注收藏我哦! 发 ...

  7. Lin语法(Linq对数据库操作)

    一.Linq语句的应用: var queryAllCustomers = from cust in customers   group cust by cust.City into custGroup ...

  8. 自动按需引入组件用不了(Vant)

    按照官网的自动按需引入之后,这样写是报错的,直接在vue页面中这样引用也是报错的. 正确的使用方法是这样的

  9. Docker笔记--ubuntu安装docker

    Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...

  10. VRRP简介以及配置案例

    一.背景 二.VRRP 概念介绍 三.实验操作 一.背景 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来 ...