驱动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 记录插入胜利