def
test
(
)
:
print
(
'开始'
)
conn
=
pymysql
.
connect
(
host
=
'127.0.0.1'
,
port
=
3306
,
user
=
'root'
,
password
=
'root'
)
cursor
=
conn
.
cursor
(
)
try
:
cursor
.
execute
(
'drop database if exists mydb'
)
cursor
.
execute
(
'create database if not exists mydb'
)
cursor
.
execute
(
'use mydb'
)
except
:
print
(
"建库失败"
)
return
0
try
:
table
=
'mytable'
sql_create_table
=
'create table %s(cmx varchar(12), clover int)'
cursor
.
execute
(
sql_create_table
,
table
)
except
:
print
(
'建表失败1'
)
try
:
table
=
'mytable'
sql_create_table
=
'create table `%s`(cmx varchar(12), clover int)'
cursor
.
execute
(
sql_create_table
,
table
)
except
:
print
(
'建表失败2'
)
try
:
table
=
'mytable'
sql_select_table
=
'select * from %s;'
cursor
.
execute
(
sql_select_table
,
table
)
except
:
print
(
'查表失败1'
)
cursor
.
execute
(
'show tables'
)
print
(
cursor
.
fetchall
(
)
,
"\n#################################\n"
)
try
:
table
=
'mytable1'
sql_creat_table
=
'create table `%s`(cmx varchar(12), clover int);'
%
table
cursor
.
execute
(
sql_creat_table
)
except
:
print
(
'建表失败3'
)
try
:
table
=
'mytable1'
sql_select_table
=
'select * from `%s`;'
cursor
.
execute
(
sql_select_table
,
table
)
except
:
print
(
'查表失败3'
)
try
:
table
=
'mytable1'
sql_select_table
=
'select * from `%s`;'
%
table
cursor
.
execute
(
sql_select_table
)
except
:
print
(
'查表失败4'
)
cursor
.
execute
(
'show tables'
)
print
(
cursor
.
fetchall
(
)
)
cursor
.
close
(
)
conn
.
close
(
)
print
(
'结束'
)
if
__name__
==
'__main__'
:
test
(
)
开始
建表失败1
查表失败1
(("‘mytable’",),)
#################################
查表失败3
(("‘mytable’",), (‘mytable1’,))
结束
以下是mysql cmd下结果
mysql> show tables;
±---------------+
| Tables_in_mydb |
±---------------+
| ‘mytable’ |
| mytable |
±---------------+
2 rows in set (0.00 sec)
进程已结束,退出代码0
这里总结一下:
因为mysql中飘点(上倒引号) 里面的内容表示特殊字符,所以用飘点可以直接用%s占位后传参,如果不用飘点会导致因为table带引号致错,即使用了飘点如果用cursor.execute()传表名也会导致表名有引号,我们可以通过
cursor.execute("create table
%s
" %‘tablename’ + “(id int)”) 这样建出来的表就不会有引号了(注意:这里的cursor.execute("create table
%s
" %‘tablename’ + “(id int)”) 的%s外面是有飘点(上倒引号)的,但是CSDN好像没有显示出来)
SELECT column_name FROM information_schema.columns WHERE table_schema='your_db_name' AND table_name='your_tb_name'
和
mysql
交互的时候经常要先获取该表的表项
名
,因为数据库有可能根据不同的情况根据改
名
或者增加。
上面一句代码搞定,记录一下。
client = pymongo.MongoClient(MongoSetting)
db = client.dbname
data_base_num = generate_database_num(docid)
collection_name = ‘judicial_documents_’ + str(data_base_num)
str = ‘db.{}’.format(collection_...
在往数据库更新数据时,想要对多个字段进行批量更新。
我们知道,
pymysql
批量更新是使用executemany(sql,data)。 当想对多个字段进行批量更新,自然而然想到用这样的形式。
data = [['字段1',123,'admin'],['字段2',234,'admin']]
sql = 'update user_table set %s=%s where username =%s'
cur.executemany(sql,data)
这样写报错。
使用
python
操作
mysql
数据库的时候,被一个问题困扰了好久,原因是数据库里面有个表按日期分的。也就是每天一个新表,数据在入库的时候,表
名
在
python
程序里面是一个变量,同时表里面字段有很多,本以为轻松愉快的就能解决,比如这样。
cur.execute("INSERT INTO table_%s (c1, c2, c3, c4) VALUES(%s, %s, %s, %s, %s)
2021-09-17 Flask-Mail UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 51-53
2021-09-17 Flask-Mail UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 51-53
SellyGoGoGo:
2021-09-17 Flask-Mail UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 51-53
Chenghh1:
2021-02-16阿杰学python,时间模块
Tisfy:
2021-02-11-阿杰学python,os常用命令整理
兴趣使然的程序猿:
2021-09-17 Flask-Mail UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 51-53
2021-08-21-阿杰学python flask实现一个虚拟环境下多个flask项目
2021-05-26-阿杰学pyqt5输入内容并检索历史输入