- 远程连接,创建列表,存储数据
import MySQLdb
#打开数据库连接。localhost为主机地址,root是mysql登陆名,123是登陆密码,pythondb是数据库名
conn = MySQLdb.connect("192.168.2.11","dong","123456","pythondb",charset='utf8')
#使用cursor()方法获取操作游标,利用游标来进行相关的数据操作
cursor = conn.cursor()
###########创建列表##########
#创建行为列表 ####设置id自动增加auto_increment,还得指出主键
create_sql = "create table behavior(id int(5) NOT NULL auto_increment,behavior_name varchar(20) NOT NULL,PRIMARY KEY (`id`))"
cursor.execute(create_sql)
#写入行为表
sql1 = """INSERT INTO behavior(behavior_name) VALUES ("回答"),("举手"),("写字"),("睡觉"),("听讲"),("打电话")"""
try:
# 执行sql语句
cursor.execute(sql1)
# 提交到数据库执行
conn.commit()
except:
# Rollback in case there is any error
print("Error: unable to insert data")
conn.rollback()
###
#创建用户列表
create_sql1 = "create table user(id int(5) NOT NULL auto_increment,student_name varchar(20) NOT NULL,user_number varchar(20) NOT NULL,sex varchar(20) NOT NULL, PRIMARY KEY (`id`))"
cursor.execute(create_sql1)
#写入用户表
sql2 = """INSERT INTO user(student_name,user_number,sex) VALUES ("小明","2010","男"),('小白','2011','女'),('小花','2012','女'),('小李','2013','男'),('小华','2014','男'),('大白','2015','女')"""
try:
# 执行sql语句
cursor.execute(sql2)
# 提交到数据库执行
conn.commit()
except:
# Rollback in case there is any error
print("Error: unable to insert data")
conn.rollback()
#关闭数据连接
conn.close()
在数据库端查询:
批量写入,使用cursor.executemany()
import MySQLdb
#import time
#打开数据库连接。localhost为主机地址,root是mysql登陆名,123是登陆密码,pythondb是数据库名
conn = MySQLdb.connect("192.168.2.11","dong","123456","pythondb",charset='utf8')
#使用cursor()方法获取操作游标,利用游标来进行相关的数据操作
cursor = conn.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)
##批量写入列表
sql="INSERT INTO user(student_name,user_number,sex) VALUES (%s,%s,%s)"
tmp=(("小明","2010","男"),('小白','2011','女'),('小花','2012','女'),('小李','2013','男'),('小华','2014','男'),('大白','2015','女'))
try:
cursor.executemany(sql,tmp)
conn.commit()
except:
print("error:unable to insert data")
conn.rollback
#关闭数据连接
conn.close()
删除列表(在终端):
DROP TABLE 列表名(或drop table 列表名)
其余修改(列,列表名字,约束)可参见:http://www.imooc.com/article/259848
中文存储,编码格式,可参考:https://blog.youkuaiyun.com/lisonglisonglisong/article/details/25315965
- 创建列表,在终端
时间格式,类型timestamp,设置为非空,自动更新
CREATE TABLE behavior_recognition(
id int(5) NOT NULL auto_increment,
image_path varchar(20) NOT NULL,
behavior_id int(5) NOT NULL,
record_time timestamp NOT NULL,
PRIMARY KEY (`id`)
);
远程连接写入数据:
import MySQLdb
#打开数据库连接。localhost为主机地址,root是mysql登陆名,123是登陆密码,pythondb是数据库名
conn = MySQLdb.connect("192.168.2.11","dong","123456","pythondb",charset='utf8')
#使用cursor()方法获取操作游标,利用游标来进行相关的数据操作
cursor = conn.cursor()
'''
##也可以远程连接创建行为识别列表
creat_table1="CREATE TABLE behavior_recognition(id int(5) NOT NULL auto_increment,image_path varchar(20) NOT NULL,behavior_id int(5) NOT NULL,record_time timestamp NOT NULL,PRIMARY KEY (`id`))"
cursor.execute(creat_table1)
'''
##写入行为识别列表中
image_path = ['1123abc','2.jpg','3.jpg','4.jpg','5.jpg','6.jpg','7.jpg','8.jpg','9.jpg','数学']
behavior_id = [4,3,2,1,5,6,1,2,3,4]
for a in range(10):
image_=str(image_path[a])#转化为字符串
act_id=str(behavior_id[a])
sql3 = """INSERT INTO behavior_recognition(image_path,behavior_id) VALUES ('%s','%s')"""%(image_,act_id)#写入字符串
try:
# 执行sql语句
cursor.execute(sql3)
# 提交到数据库执行
conn.commit()
except:
# Rollback in case there is any error
print("Error: unable to insert data")
conn.rollback()
#关闭数据连接
conn.close()
在终端查询:
- 使用cursor()方法获取操作游标,利用游标来进行相关的数据操作(利用cursor()可以进行在数据库终端的操作)
import MySQLdb
#import time
#打开数据库连接。localhost为主机地址,root是mysql登陆名,123是登陆密码,pythondb是数据库名
conn = MySQLdb.connect("192.168.2.11","dong","123456","pythondb",charset='utf8')
#使用cursor()方法获取操作游标,利用游标来进行相关的数据操作
cursor = conn.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)
#获取所有数据库种类
cursor.execute("show databases")
# 使用 fetchone() 方法获取所有数据
databases=cursor.fetchall()
print(databases)
#获取pythondb数据库中所有表
#连接时已指明是pythondb数据库了所以不用执行cursor.execute('use pythondb')
cursor.execute('show tables')
print(cursor.fetchall())
#删除列表
cursor.execute('drop table behavior_recognition')
'''
# SQL 删除语句,可以把列表内容清空,但是列表还在
sql = "DELETE FROM behavior_recognition "
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
conn.commit()
print("delete OK")
except:
# 发生错误时回滚
conn.rollback()
'''
#关闭数据连接
conn.close()
- 创建同类型的表,like
create table 新的列表名 like 已有的列表名;
例如:
import MySQLdb
#import time
#打开数据库连接。localhost为主机地址,root是mysql登陆名,123是登陆密码,pythondb是数据库名
conn = MySQLdb.connect("192.168.2.11","dong","123456","pythondb",charset='utf8')
#使用cursor()方法获取操作游标,利用游标来进行相关的数据操作
cursor = conn.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)
num=10
for i in range(num):
behavior_recognition_num='behavior_recognition_%s'%i
creat_table2 = "CREATE TABLE %s"%behavior_recognition_num + " LIKE behavior_recognition"
print(creat_table2)
try:
cursor.execute(creat_table2)
# 提交修改
conn.commit()
print("增加同类型列表成功")
except:
# 发生错误时回滚
conn.rollback()
print("增加列表不成功")
#关闭数据连接
conn.close()
结果: