共计 3027 个字符,预计需要花费 8 分钟才能阅读完成。
驱动 MySQL
是最风行的关系型数据库管理系统,如果你不相熟 MySQL,能够浏览咱们的 MySQL 教程。本章节咱们为大家介绍应用 mysql-connector 来连贯应用 MySQL,mysql-connector 是 MySQL 官网提供的驱动器。咱们能够应用 pip 命令来装置 mysql-connector:python -m pip install mysql-connector 应用以下代码测试 mysql-connector 是否装置胜利:demo_mysql_test.py:import mysql.connector 执行以上代码,如果没有产生谬误,表明装置胜利。留神:如果你的 MySQL 是 8.0 版本,明码插件验证形式产生了变动,晚期版本为 mysql_native_password,8.0 版本为 caching_sha2_password,所以须要做些扭转:先批改 my.ini 配置:[mysqld]
default_authentication_plugin=mysql_native_password 而后在 mysql 下执行以下命令来批改明码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; 更多内容能够参考:Python MySQL8.0 链接问题。创立数据库连贯能够应用以下代码来连贯数据库:demo_mysql_test.py:import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="yourusername", # 数据库用户名
passwd="yourpassword" # 数据库明码
)
print(mydb) 创立数据库创立数据库应用 “CREATE DATABASE” 语句,以下创立一个名为 runoob_db 的数据库:demo_mysql_test.py:import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456"
)
mycursor = mydb.cursor()
mycursor.execute(“CREATE DATABASE runoob_db”) 创立数据库前咱们也能够应用 “SHOW DATABASES” 语句来查看数据库是否存在:demo_mysql_test.py: 输入所有数据库列表:import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456"
)
mycursor = mydb.cursor()
mycursor.execute("SHOW DATABASES")
for x in mycursor:
print(x) 或者咱们能够间接连贯数据库,如果数据库不存在,会输入错误信息:demo_mysql_test.py:import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
创立数据表创立数据表应用 “CREATE TABLE” 语句,创立数据表前,须要确保数据库已存在,以下创立一个名为 sites 的数据表:demo_mysql_test.py:import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
mycursor = mydb.cursor()
mycursor.execute(“CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))”) 执行胜利后,咱们能够看到数据库创立的数据表 sites,字段为 name 和 url。
咱们也能够应用 "SHOW TABLES" 语句来查看数据表是否已存在:demo_mysql_test.py:import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")
for x in mycursor:
print(x) 主键设置创立表的时候咱们个别都会设置一个主键(PRIMARY KEY),咱们能够应用 “INT AUTO_INCREMENT PRIMARY KEY” 语句来创立一个主键,主键起始值为 1,逐渐递增。如果咱们的表曾经创立,咱们须要应用 ALTER TABLE 来给表增加主键:demo_mysql_test.py: 给 sites 表增加主键。import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
mycursor = mydb.cursor()
mycursor.execute(“ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY”) 如果你还未创立 sites 表,能够间接应用以下代码创立。demo_mysql_test.py: 给表创立主键。import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
mycursor = mydb.cursor()
mycursor.execute(“CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))”) 插入数据插入数据应用 “INSERT INTO” 语句:demo_mysql_test.py: 向 sites 表插入一条记录。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="123456",
database="runoob_db"
)
mycursor = mydb.cursor()
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = ("RUNOOB", "https://www.runoob.com")
mycursor.execute(sql, val)
mydb.commit() # 数据表内容有更新,必须应用到该语句
print(mycursor.rowcount, "记录插入胜利。") 执行代码,输入后果为:1 记录插入胜利