该题涉及到mysql中一些指令,先熟悉一下

MySQL指令

参考:https://www.cnblogs.com/zhuyongzhe/p/7686105.html

 mysql -u root -p                     以root权限登录,默认密码为空
show databases;       列出所有数据库
drop table if exists hst;    如果存在表hst则先删除
create database hst; 创建数据库
use hst;       进入数据库
create table student(
id int auto_increment primary key,
name varchar(50),
sex varchar(20),
date varchar(50),
content varchar(100)
)default charset=utf8;     创建表
drop table student;     删除表
describe student;        查看表结构(desc student;) insert into student values(null,'aa','男','1988-10-12','.....'); 插入数据
select * from student;
select id,name from student;     查询id,name列 update student set sex='男' where id=4; 修改id为4的行性别为男 delete from student where id=5;   删除id为5的行 select * from student where date>'1988-1-2' and date<'1988-12-1'; and、or select * from student where date between '1988-1-2' and '1988-12-1'; between

python中使用MySQL指令

安装了mysql,python3.0先装好pymysql,在IDLE中测试下import pymysql是否报错,没有报错,完美。

 import pymysql
db = pymysql.connect("localhost", "root", "", "test") 连接test数据库
cursor=db.cursor()
cursor.execute(sql语句)
db.commit()
db.close()

完整代码

 #!/user/bin/python
#-*-coding:UTF-8 *-* import pymysql
import random,string,uuid def generateN(len, count, cursor, db, database):
getChars = lambda: string.ascii_letters+string.digits
generate = lambda len: "".join(random.sample(getChars(), len))
for i in range(count):
sql = "insert into {0} (id,value) values ({1},'{2}')".format(database,"null", generate(len))
cursor.execute(sql)
db.commit() #generateN(10, 20)
db = pymysql.connect("localhost", "root", "", "hst")
cursor = db.cursor()
cursor.execute("drop table if exists generateCodes")
sql = "create table generateCodes(id int auto_increment primary key, value varchar(50))"
cursor.execute(sql)
cursor.execute("show tables");
generateN(10, 20, cursor, db, "generateCodes")
db.close()

期间出了2个问题

问题1:pymysql.err.InternalError: (1054, "Unknown column '***' in 'field list'")

参考:https://blog.csdn.net/fk103/article/details/80139284,原因是字符串占位符那里没有写'',将(values ({1},{2})修改为(values ({1},'{2}'))

问题2:插入第2个数据的时候Duplicate entry for key 'PRIMARY'

参考:https://blog.csdn.net/m0_37664906/article/details/79612006,主键重复了,将(database,i,**)修改为(database,"null",**)

执行脚本后,在控制台中查看表内容

 select * from generateCodes;

好,结束。

【python练习册】1.3 将1.2题生成的n个激活码保存到mysql关系型数据库中的更多相关文章

  1. Python scrapy爬虫数据保存到MySQL数据库

    除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 ...

  2. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  3. 如何使用Python生成200个优惠券(激活码)

    解析: 常见的优惠券(激活码)是由数字.字母(大小写)组成: string.ascii_letters   26个大小写字母: string.digits 0-9数字: 随机组合 使用random.s ...

  4. python之scrapy爬取数据保存到mysql数据库

    1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...

  5. python读取excel保存到mysql

    首先安装xlrd模块:pip install xlrd ,核心代码网上有很多,这里主要是关于一些个人实际碰到问题细节的处理 1.excel数据不规范导致读取的数据存在空白行和列: 2.参数化执行sql ...

  6. 吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB

    本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...

  7. Python练习册--PIL处理图片之加水印

    背景 最近在看到了Python 练习册,每天一个小程序 这个项目,非常有趣,也比较实用. 晚上看了这第000题,关于Python图片处理: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似 ...

  8. Python 练习册--生成唯一激活码(邀请码)

    题目是这样子的: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 分析 其实要生成 ...

  9. python练习册 每天一个小程序 第0001题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生 ...

随机推荐

  1. 用python爬取B站在线用户人数

    最近在自学Python爬虫,所以想练一下手,用python来爬取B站在线人数,应该可以拿来小小分析一下 设计思路 首先查看网页源代码,找到相应的html,然后利用各种工具(BeautifulSoup或 ...

  2. 日记——递归or搜索?

    好久没发博了,今天发一篇. 这两天学校功课比较紧,编程稍微放了放做题量. 抽空学了学深搜,感谢zah同学给我讲解dfs,浅显易懂,我很快就适应了. 做了几个基础题,没有想象中那么难(菜鸡BB,因为题简 ...

  3. Redis设计与实现——数据结构与对象

    SDS 简单动态字符串 在redis数据库里面,包含字符串值得键值对在底层都是由SDS实现的. redis >  set msg "hello world" 1)键值对的键是 ...

  4. GUAVA-ListenableFuture实现回调

    随着软件开发的不断进步,在实际的开发应用中,可能一次请求需要查询若干次数据库或者调用若干次第三方,按照传统的串行执行的话,会大大增加响应时间,无法满足业务需求,更无法满足用户迫切需要响应迅速的愿望.对 ...

  5. peer_manager_handler: Connection security failed: role: Peripheral, conn_handle: 0x0, procedure: Bonding, error: 133

    调试nordic 52840 hids_keyboard 例程时,和手机配对,配对失败,提示:peer_manager_handler: Connection security failed: rol ...

  6. Git仓库由HTTPS切换成ssh秘钥连接

    Git关联远程仓库可以使用https协议或者ssh协议. [特点/优缺点] ssh: 一般使用22端口: 通过先在本地生成SSH密钥对再把公钥上传到服务器: 速度较慢点 https: 一般使用443端 ...

  7. CodeQL CLI入门

    一.CodeQL CLI 安装和配置 1.下载CodeQL CLI 压缩包 https://github.com/github/codeql-cli-binaries/releases 2.创建Cod ...

  8. 牛客网PAT练兵场-科学计数法

    题目地址:https://www.nowcoder.com/pat/6/problem/4050 题解:模拟题 /** * Copyright(c) * All rights reserved. * ...

  9. antdv时间选择a-date-picker设置日期可选范围(近一周、近半月、近一月等) - moment.js

    Vue->Template: <a-date-picker v-model="value" :disabled-date="disabledDate" ...

  10. 23种设计模式 - 状态变化(Memento备忘录 - State)

    其他设计模式 23种设计模式(C++) 每一种都有对应理解的相关代码示例 → Git原码 ⌨ 状态变化 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的 ...