安装mysql数据库一定注意
就安装5.版本的
别安装8.
我就是因为安装了8.
才一直安装不上
5.版本的超级好安装
这里参考这篇
非常好!!!
但是成功之后cmd输入mysql
却报错
mysql ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO)
试了好几个解决方法都不行
于是为了跟我的Navicat连接
可以使用以下语句
mysql -u root -p
输入密码即可成功
这样就可以链接我的数据库啦
在navicat里面创建表
导入xlsx时
一直报错
Error Code: 1366. Incorrect string value: '\xE7\x8E\x8B\xE9\xB9\x8F… 数据库编码方式的问题
出现这个问题的原因是你的数据库编码、排序类型不是utf-8的,所以你创建的表的排序规则自然也不是utf-8类型的。
所以在用navicat创建char字符的有中文存在时
一定要设置一下这一栏
这样就可以成功导入
使用python对数据库mysql进行操作
代码如下
import pymysql
#database = pymysql.connect("127.0.0.1", "root", "1234", "db", charset='utf8')
# 格式:pymysql.connect("MySQL服务器地址", "用户名", "密码", "数据库名", charset='utf8')
database=pymysql.connect(host = '127.0.0.1' # 连接名称,默认127.0.0.1
,user = 'root' # 用户名
,passwd='1234' # 密码
,port= 3306 # 端口,默认为3306
,db='mysql' # 数据库名称
,charset='utf8' # 字符编码
)
cursor = database.cursor()
# 初始化指针
sql = "SELECT company,sum(price*weight) FROM data WHERE date='2018-07-21'GROUP BY company;"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
database.close()
'''
# 增
# 格式:"INSERT INTO 表名 (字段1,字段2,字段3) VALUES (内容1,内容2,内容3);"
sql = "INSERT INTO data (date,company,province,price,weight) VALUES ('2019-9-20','河北粮食','河北','2200','45.1')"
cursor.execute(sql)
database.commit() # 对存储的数据修改后,需要commit
database.close()
# 改
# 格式:"UPDATE 表名 SET 字段1=内容1,字段2=内容2 WHERE 条件;"
sql = "UPDATE data SET date='2018-09-21' WHERE DATE='2019-09-20';"
cursor.execute(sql)
database.commit() # 对存储的数据修改后,需要commit
database.close()
# 查
# 基础语法:"SELECT 字段 FROM 表名 WHERE 条件"
sql = "SELECT company FROM data WHERE date='2018-07-21';"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
database.close()
sql = "SELECT company,sum(price*weight) FROM data WHERE date='2018-07-21'group by company;"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
database.close()
# 删
# 格式:"DELETE FROM 表名 WHERE 条件;" 条件的写法 :字段=内容
sql = "DELETE FROM data WHERE date='2018-09-21';"
cursor.execute(sql)
database.commit() # 对存储的数据修改后,需要commit
database.close()
'''
完成了增删查改
# 初始化指针
sql3 ="SELECT SUM(weight) FROM data WHERE date>'2018-07-21' AND date<'2018-07-25' AND company='王五小麦' AND province='河北' "
cursor.execute(sql3)
print(cursor.fetchall()[0][0])
database.close()
datetime库详解
fromordinal(n)
使用日期序数构造对象,使用方法为:datetime.date.fromordinal(n),传入参数为一个整数序数,代表从公元1年1月1日开始的序数,序数每增加1代表增加1天,返回最终计算出的日期
toordinal()
相当于fromordinal(n)的逆过程,返回值即为fromordinal(n)中的日期序数n。
它用于返回日期的多边格里高利度序数,其中1年1月1日具有序数1。如果1年1月1日具有序数1,则1年1月2日将具有序数2,依此类推。 这是一个实例方法,这意味着它可以在类的实例上工作。
time.strftime(format[, t])
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 通过导入 __future__ 包来兼容 Python3.x print
# 如果使用了 Python3.x 可以删除此行引入
from __future__ import print_function
from datetime import datetime
now = datetime.now() # current date and time
year = now.strftime("%Y")
print("year:", year)
month = now.strftime("%m")
print("month:", month)
day = now.strftime("%d")
print("day:", day)
time = now.strftime("%H:%M:%S")
print("time:", time)
date_time = now.strftime("%Y-%m-%d, %H:%M:%S")
print("date and time:",date_time)
excel里读取时间如何转换
import datetime
first_date = datetime.date(1899, 12, 31).toordinal() - 1
print(first_date)
if isinstance(43302.0, float):
date_excel = int(43302.0)
print(date_excel)
date_mysql = datetime.date.fromordinal(first_date + date_excel)
print(date_mysql.strftime("%Y-%m-%d"))
43302.0即为使用table.cell_value(1, 0)从excel表中读取的时间数据2018/7/21