Python下的链接mysql数据库

Python下的链接mysql数据库

准备工作:首先使用pip下载mysql-connector包
pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple
这里我们使用镜像下载会快一点
如果你的mysql是8.0以上版本,请以文本方式打开my.ini配置文件然后加入

[mysqld]
default_authentication_plugin=mysql_native_password

然后修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

原因是因为8.0版本是使用另外的密码加密,所以出现了上述问题

  1. 首先是连接mysql,和C++类似,
import mysql.connector
mydb = mysql.connector.connect(
    host = "localhost",
    user = "root",
    passwd = "密码"
    database = "xiaohu"#可以直接连接数据库,不存在会报错
)
  1. 创建数据库
mycursor = mydb.cursor()
#mysql指令执行
mycursor.execute("CREATE DATABASE xiaohu")
  1. 查看数据库
mycursor.execite("SHOW DATABASES")
for i in mycursor:
	print(i)
  1. 创建数据表
mycursor.execute("CREATE TABLE IF NOT EXEISTS 'xiaohu' (name VARCHAR(255), url VARCHAR(255))")
  1. 查看数据表
mycursor.execute("SHOW TABLES")
for i in mycursor:
	print(i)
  1. 创建主键
#已经有的表添加
mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
#新表加主键
mycursor.execute("CREATE TABLE xiaohu (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")

其他插入操作类似且作用不大,不再赘述。可以用数据库可视化工具
7. 查询数据

mycursor.execute("SELECT * FROM xiaohu")
 
myresult = mycursor.fetchall()     # fetchall() 获取所有记录
myresult = mycursor.fetchone()     #获取一条记录
for x in myresult:
  print(x)
  1. 转义查询条件
sql = "SELECT * FROM sites WHERE name = %s"
na = ("RUNOOB", )
mycursor.execute(sql, na)
  1. 删除数据
sql = "DELETE FROM sites WHERE name = %s"
na = ("stackoverflow", )
 
mycursor.execute(sql, na)
 
mydb.commit() # 数据表内容有更新,必须使用到该语句
 
print(mycursor.rowcount, " 条记录删除")
  1. 更新数据库
sql = "UPDATE xiaohu SET name = 'ZH' WHERE name = 'Zhihu'"
 
mycursor.execute(sql)
 
mydb.commit()
 
print(mycursor.rowcount, " 条记录被修改")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值