16-Python MySQL

1.准备 PyMySQL (Mac)

    ①、终端执行 pip/pip3 install PyMySQL

    注:pip 是一个安装和管理 Python 包的工具,是 easy_install 的一个替换品

    ②、安装MySQL及工作台

        MySQL Server下载:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-macos10.12-x86_64.dmg
        安装MySQL工作台(Workbench、Navicat)
        安装Navicat:http://m5.pc6.com/xuh5/NavicatPremium15.zip

        安装WorkBENCH:https://www.mysql.com/products/workbench

    注: SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
           MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率

2.安装完成配置

    ①、MySQL Server安装完成后弹出一个框,会出现一个密码有如下字样(冒号后面的即初始密码)

        "[Note] A temporary password is generated for root@localhost: +6rh)N?NBCyc"

        根据需要可以需改此初始密码。

    ②、开启MySQL Server、连接数据库

    165245_l1l6_3035521.png

    165259_OZ3V_3035521.png

3、使用 PyMySQL

import pymysql

# 打开数据库连接
myDb = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='apple', db='TESTDB', charset='utf8')
# 创建游标对象
# 游标:游标(cursor)就是游动的标识,啥意思呢,通俗的这么说,一条sql取出对应n条结果资源的接口/句柄,就是游标,沿着游标可以一次取出一行
cursor = myDb.cursor()
# 创建表
personTableSql = """CREATE TABLE IF NOT EXISTS PERSON(
                FIRST_NAME CHAR(20) NOT NULL,
                LAST_NAME CHAR(20),
                AGE INT,
                HEIGHT FLOAT,
                SEX CHAR(1)
)"""

try:
   # 使用 execute() 方法执行 SQL,如果表存在则删除
   cursor.execute("DROP TABLE IF EXISTS PERSON")
   # 执行SQL语句
   cursor.execute(personTableSql)
   # 向数据库提交修改
   myDb.commit()
   print('表创建成功')
except:
   # 发生错误时回滚
   myDb.rollback()
   print('表创建失败')

# 使用 execute()方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("MySQL版本: %s " % data)

# 插入数据
insertSql = r"""INSERT INTO PERSON(FIRST_NAME,LAST_NAME,AGE,HEIGHT,SEX) VALUES 
             ('Cai','Bird',22,1.80,'m'),
             ('Coder','LW',23,1.90,'w'),
             ('HHH','AAA',12,1.0,'k')"""

insertList = [('Cai','Bird',22,1.80,'m'),
               ('Coder','LW',23,1.90,'w'),
               ('HHH','AAA',22,1.0,'k')]

try:
   # insertRows = cursor.execute(insertSql)
   # Sql里面对应的格式表达符都是 %s ,且不需要引号 (切记)
   insertRows = cursor.executemany("INSERT INTO PERSON(FIRST_NAME,LAST_NAME,AGE,HEIGHT,SEX) VALUES(%s,%s,%s,%s,%s)",insertList)
   myDb.commit()
   print('插入了多少行:',insertRows)
except Exception as e:
   print('数据插入失败!',e)

# 数据库更新操作
updateSql = "UPDATE PERSON SET SEX = 'w' WHERE FIRST_NAME = 'HHH'"
try:
   cursor.execute(updateSql)
   print('数据库数据修改成功')
except Exception as e:
   print('数据库数据修改失败',e)

# 数据库查询操作
selectRows = cursor.execute("select * from PERSON")
print('PERSON表数据:',selectRows)

selectSql = "SELECT * FROM PERSON WHERE AGE > 20"
try:
   cursor.execute(selectSql)
   results = cursor.fetchall()
   for item in results:
      print('查询到的数据',item)
except:
   print('数据查询失败')

# 关闭数据库
cursor.close()
myDb.close()

 

转载于:https://my.oschina.net/CoderW/blog/1031389

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值