mysql是当下最流行的关系型数据库之一,今天用python连接操作下mysql
mysql-connector是MySQL提供的驱动器,是用来连接mysql的
在 MySQL 8.0 中验证插件和密码加密方式发生了变化,要让它使用“mysql_native_password”插件认证方式,所以需要在mysql的配置文件my.ini中[mysqld]下添加一下内容,并重启mysql
[mysqld]
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
代码如下:需要准确的输入数据库的主机地址,用户名,密码
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", #数据库主机地址
user="root", #数据库用户名
passwd="Aa123", #数据库密码
auth_plugin='mysql_native_password' #使用插件验证
)
print(mydb)
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", #数据库主机地址
user="root", #数据库用户名
passwd="Aa123", #数据库密码
auth_plugin='mysql_native_password' #使用插件验证
)
mycursor = mydb.cursor()
#使用CREATE DATABASE 创建student_db库
mycursor.execute("CREATE DATABASE student_db")
执行上面语句,就可以看到navicate中多了一个student_db库
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", #数据库主机地址
user="root", #数据库用户名
passwd="Aa123", #数据库密码
auth_plugin='mysql_native_password', #使用插件验证
database="student_db" #指定连接student_db库
)
mycursor = mydb.cursor()
#使用CREATE TABLE 创建student表
mycursor.execute("CREATE TABLE student (name VARCHAR(255), score int(10))")
执行语句,效果如下
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("SHOW TABLES")
for x in mycursor:
print(x)
结果如下
('student',)
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", #数据库主机地址
user="root", #数据库用户名
passwd="Aa123", #数据库密码
auth_plugin='mysql_native_password', #使用插件验证
database="student_db" #指定连接student_db库
)
mycursor = mydb.cursor()
sql = "INSERT INTO student (name, score) VALUES (%s, %s)"
val = ("唐三", 33)
mycursor.execute(sql, val)
mydb.commit() # 数据表内容有更新,必须使用到该语句
print(mycursor.rowcount, "记录插入成功。")
执行代码
1
记录插入成功。
数据库如下:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "INSERT INTO student (name, score) VALUES (%s, %s)"
val = [
('小舞', 55),
('马六', 46),
('赵四', 24)
]
mycursor.executemany(sql, val)
mydb.commit() # 数据表内容有更新,必须使用到该语句
print(mycursor.rowcount, "记录插入成功。")
执行语句:
3 记录插入成功。
数据库
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM student")
myresult = mycursor.fetchall() # fetchall() 获取所有记录
for x in myresult:
print(x)
执行效果如下
('唐三', 33)
('小舞', 55)
('马六', 46)
('赵四', 24)
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", #数据库主机地址
user="root", #数据库用户名
passwd="Aa123", #数据库密码
auth_plugin='mysql_native_password', #使用插件验证
database="student_db" #指定连接student_db库
)
mycursor = mydb.cursor()
mycursor.execute("ALTER TABLE student ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
执行效果:
按照分数score升序
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "SELECT * FROM student WHERE name LIKE '%三%'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
执行效果:
('唐三', 33, 1)
查询结果排序可以使用ORDER BY语句,默认的排序方式为升序,关键字为ASC,如果要设置降序排序,可以设置关键字DESC
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "SELECT * FROM student ORDER BY score"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
执行效果:
('赵四', 24, 4)
('唐三', 33, 1)
('马六', 46, 3)
('小舞', 55, 2)
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "DELETE FROM student WHERE name = '赵四'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, " 条记录删除")
执行结果:
1 条记录删除
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="Aa123", # 数据库密码
auth_plugin='mysql_native_password', # 使用插件验证
database="student_db" # 指定连接student_db库
)
mycursor = mydb.cursor()
sql = "UPDATE student SET name ='小五' WHERE name = '小舞'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, " 条记录被修改")
执行效果:
1 条记录被修改
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。