数据库连接和查询
1.首先在Navicat中创建一个名为taobao的数据库
2.Navicat导入txt文本数据
用Navicat导入导向把sale_data.txt导入数据库taobao中
-
注意:txt文本的编码格式默认为ANSI编码,而我们要修改成UTF-8编码,不然在导入数后,会出现乱码现象
-
打开txt文件,点击txt文件左上角的文件,选择“另存为”
-
此时在“保存”时,选择UTF-8编码,进行保存
-
接着打开Navicat,选择数据库导入向导txt文本 -
接着选择要导入的文件的格式,这里我就选择了文本文件(*.txt)格式,然后点击“下一步”。
-
如图,点击浏览按钮来查找要导入的txt文件,编码格式选择UTF-8(之前txt文本默认编码格式为ANSI,所以我们要修改txt文本的编码格式为UTF-8,保持编码一制) -
接着选择记录分隔符以及字段分隔符,本例选择CRLF-Carriage-Return Line-Feed回车换行来分隔每一行数据(CR—Carriage-Return回车,LF—Line–Feed换行)
本例采用的是逗号分隔每个字段,所以这里选择逗号(,)字段分隔符 如果是用空格分隔每个字段,则选择空格字段分隔符
8.接着输入数值,字段名行表示字段在txt文本中所对应的行数,我的是第一行,第一个数据行表示数据在txt文本中最开始的行数,我的数据最开始是在第二行的
9.接着可以看到要导入的表
10.
11.
12.
13.
(1)连接数据库
import pymysql
db = pymysql.Connect(
host="localhost",
port=3306,
user="root",
password="root",
db="taobao",
charset="utf8"
)
(2)查询位置在江浙沪的商品销量
#获取游标
cur = db.cursor()
#执行SQL语句,进行查询
sql = "SELECT * FROM sale_data WHERE 位置 IN (%s,%s,%s)"
cur.execute(sql, ("江苏","浙江","上海"))
#获取查询结果
result = cur.fetchall()
for item in result:
print(result)
(3)删除价格低于100元的商品记录
# 执行SQL语句,进行删除
sql = 'DELETE RFOM sale_data WHERE 价格 < 100'
cur.execute(sql)
# 没有设置默认自动提交,需要主动提交,以保存所执行的语句
db.commit()
(4)把位置“江苏” “浙江” “上海” 统一改为“江浙沪”
#执行sql语句,进行修改
sql = "UPDATE sale_data SET 位置 = %s WHERE 位置 IN (%s,%s,%s)"
cur.execute(sql, ("江浙沪","江苏","浙江","上海"))
#没有设置默认自动提交,需要主动提交,以保存所执行的语句
db.commit()
(5)