1. xlwt库只能写.xls文件!而xlsxwriter库只能写.xlsx,不能写.xls!
2. navicat 新建表,小数类型的数据可用 decimal 类型存储,decimal类型是将小数位分开存储,避免因运算造成的精度损失
3. navicat导入excel是出现中文变成问号的情况:因为新建表创立字段是,建表的时候数据字符集和排序方式都是latin1 ;j解决办法:手动修改为utf-8
4. navicat 清空表后,让表的id自增从1开始:右键表的名称,选择截断表即可 注意:截断表会清空所有数据,所有要在清空表后,先截断,再重新导入excel
5. 使用python操作mysql数据库:
1)问题:Python3 pymysql模块连接数据库报错:TypeError: __init__() takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given
原因分析:新版本pymysql模块问题导致的错误;
解决办法:方法一:可安装旧版本解决报错;先卸载当前版本:pip3 uninstall pymysql;然后安装指定0.10.1版本:pip3 install pymysql==0.10.1
方法二:把连接语句做如下修改,键值匹配:
db = pymysql.connect(host="192.168.10.10", user="root", passwd="password", db="db_name", port=3306 )
2)操作代码:
import pymysql
# 1.连接数据库 pymysql.connect("数据库地址","用户名","密码","数据库名",charset="utf8")
database = pymysql.connect(host="127.0.0.1",user="test",passwd="test",db="test",charset="utf8",port=3306)
#初始化指针 对数据库进行操作
cursor = database.cursor()
#Sql语句
#增
#格式:“INSERT INTO 表名 (字段1,字段2,字段3) VALUES (内容1,内容2,内容3)
# sql = "INSERT INTO data (date,company,province,price,weight) VALUES ('2021-1-27','河北粮食','河北','2200','45.1');"
# cursor.execute(sql) # 执行sql语句
# database.commit() # 对存储的数据修改后,需要commit
# database.close() # 关闭数据库
#改
#格式:"UPDATE 表名 SET 字段1=内容1,字段2=内容2 WHERE 条件;" "条件的写法:字段=内容"
# sql = "UPDATE data SET date='2018-10-10' WHERE date='2021-1-27';"
# cursor.execute(sql)
# database.commit()
# database.close()
#查
#基础语法:"SELECT 字段1,字段2(或者用*表示输出所有字段) FROM 表名 WHERE 条件"
# sql = "SELECT company,price FROM data WHERE date='2018-07-21';"
# sql = "SELECT * FROM data WHERE date='2018-07-21';"
# sql = "SELECT company,price*weight FROM data WHERE date='2018-07-21';"
# sql = "SELECT company,sum(weight) FROM data WHERE date='2018-07-21' GROUP BY company;" # 以公司名分组
#
# cursor.execute(sql)
# result = cursor.fetchall()
# print(result)
#删
#格式: "DELETE FROM 表名 WHERE 条件"
sql = "DELETE FROM data WHERE date='2018-10-10';"
cursor.execute(sql)
database.commit()
database.close()
SQL-----数据库三种删除方式详解
1. 第一种,使用delete语句
特点:
delete 属于数据库操纵语言DML,表示删除表中的数据,
删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存
可以配合事件(transaction)和 回滚(rollback)找回数据,且自增不会被重置
delete 既可以对table也可以对view
可以全部删除,也可以按条件删除
语法:
-- 删除表中全部数据
delete from 表名
-- 按条件删除
delete from 表名 where 条件
2. 第二种 ,使用truncate语句
特点:
truncate 属于数据库定义语言DDL,表示删除表中所有数据,DDL操作是隐性提交的!不能rollback
truncate一次性的从表中删除所有数据,不会保存到日志中,相当于直接删除整个表,再重新创建一个一模一样的表
使用truncate 删除的数据不能恢复
truncate 只能对table,执行速度快
语法:
-- 删除表中所有数据且不可恢复
truncate from 表名
3. 第三种,使用drop语句
特点:
drop 属于数据库定义语言DDL,表示删除表, 也可以用来删除数据库
语法:
-- 删除 表
drop table 表名
-- 删除数据库
drop database 数据库名