Python学习笔记——如何在Python中使用MySQL

本学习笔记基于 菜鸟教程的 Python教程
链接:https://www.runoob.com/python3/python-mysql-connector.html
菜鸟教程:https://www.runoob.com/mysql/mysql-tutorial.html

      • 在Python中连接MySQL

在Python中连接MySQL

安装 mysql-connector :MySQL官方提供的驱动器:pip install mysql-connector

导入模块:import mysql.connector

SQL语句汇总

创建数据库连接:

import mysql.connector

mydb = mysql.connector.connect(host='主机地址',
user='用户名', password='密码', database='数据库名')

创建数据库

# 创建数据库
mycursor.execute('CREATE DATABASE 数据库名')

输出所有 已创建数据库

# 输出所有 已创建数据库
mycursor.execute("SHOW DATABASES")
for x in mycursor:
    print(x)

切换至 指定数据库

# 切换至 指定数据库
mycursor.execute("USE 数据库名")

创建数据表

# 创建数据表
mycursor.execute("CREATE TABLE sites (列名 VARCHAR(255), 列名 VARCHAR(255))")

输出所有当前数据库中的 数据表

# 输出所有当前数据库中的 数据表
mycursor.execute("SHOW TABLES")
for x in mycursor:
    print(x)

为已存在的表主键设置

# 为已存在的表主键设置:使用 "INT AUTO_INCREMENT PRIMARY KEY" 语句来创建一个主键,主键起始值为 1,逐步递增。
mycursor.execute("ALTER TABLE 表名 ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

创建一个表的同时设置主键

# 创建一个表的同时设置主键
mycursor.execute("CREATE TABLE 表名 (id INT AUTO_INCREMENT PRIMARY KEY, 列名 VARCHAR(255), 列名 VARCHAR(255))")

插入数据

# 插入数据: INSERT INTO
sql = "INSERT INTO 表名 (列名1, 列名2) VALUES (%s, %s)"
val = ("数据", "数据")
mycursor.execute(sql, val)

mydb.commit()  # 数据表内容有更新,必须使用到该语句

批量插入数据

# 批量插入数据:使用 executemany() 方法,该方法的第二个参数是一个元组列表,包含了我们要插入的数据
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = [
    ('Google', 'https://www.google.com'),
    ('Github', 'https://www.github.com'),
    ('Taobao', 'https://www.taobao.com'),
    ('stackoverflow', 'https://www.stackoverflow.com/')
]

mycursor.executemany(sql, val)

mydb.commit()  # 数据表内容有更新,必须使用到该语句

获取 ID

# 如果我们想在数据记录插入后,获取该记录的 ID ,可以使用以下代码
print("1 条记录已插入, ID:", mycursor.lastrowid)

查询数据

# 查询数据 SELECT
mycursor.execute("SELECT * FROM 表名")

myresult = mycursor.fetchall()  # fetchall() 获取所有记录

for x in myresult:
    print(x)

读取指定的字段数据

# 读取指定的字段数据
mycursor.execute("SELECT 列名1, 列名2 FROM 表名")

myresult = mycursor.fetchall()

for x in myresult:
    print(x)

fetchone

# 如果我们只想读取一条数据,可以使用 fetchone() 方法
myresult = mycursor.fetchone()

print(myresult)

WHERE

# 如果我们要读取指定条件的数据,可以使用 where 语句
sql = "SELECT * FROM sites WHERE name ='RUNOOB'"

mycursor.execute(sql)

查询结果排序 ORDER BY

# 排序 查询结果排序可以使用 ORDER BY 语句,默认为升序,关键字为 ASC,降序排序关键字 DESC
sql = "SELECT * FROM sites ORDER BY name"
mycursor.execute(sql)

设置查询量 LIMIT

# 设置查询量:如果我们要设置查询的数据量,可以通过 "LIMIT" 语句来指定
mycursor.execute("SELECT * FROM sites LIMIT 3")

指定起始位置 OFFSET

# 指定起始位置:可以指定起始位置,使用的关键字是 OFFSET
mycursor.execute("SELECT * FROM sites LIMIT 3 OFFSET 1")  # 0 为 第一条,1 为第二条,以此类推

删除记录 DELETE

# 删除记录:使用 "DELETE FROM" 语句
sql = "DELETE FROM 表名 WHERE 列名 = '某一数据'"
mycursor.execute(sql)

mydb.commit()

更新表数据 UPDATE

# 更新表数据:数据表更新使用 "UPDATE" 语句
sql = "UPDATE 表名 SET 列名 = '新数据' WHERE 列名 = '原数据'"
mycursor.execute(sql)

mydb.commit()

删除 表

# 删除表:使用 "DROP TABLE" 语句, IF EXISTS 关键字是用于判断表是否存在,只有在存在的情况才删除
sql = "DROP TABLE IF EXISTS 表名"  # 删除数据表 sites
mycursor.execute(sql)

你可能感兴趣的:(Python,数据库,MySQL,Python,数据库)