创建表名为product:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 默认用主机名
user="root", # 默认用户名
password="123456", # mysql密码
charset='utf8', # 编码方式
database="chuan" # 数据库名称
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE product (id VARCHAR(255), name VARCHAR(255),fav VARCHAR(255))")
再创建users表:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 默认用主机名
user="root", # 默认用户名
password="123456", # mysql密码
charset='utf8', # 编码方式
database="chuan" # 数据库名称
)
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE users (id VARCHAR(255), name VARCHAR(255) ,fav VARCHAR(255))")
无报错则创建成功。
product表中添加:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 默认用主机名
user="root", # 默认用户名
password="123456", # mysql密码
charset='utf8', # 编码方式
database="chuan" # 数据库名称
)
mycursor = mydb.cursor()
sql = "INSERT INTO product (id, name,fav) VALUES (%s, %s,%s)"
val = [
{ 4, 'John', 154},
{ 6, 'Amy', 155},
{ 7, 'Hannah',156},
{ 8, 'Michael' ,157}
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "全部添加成功.")
custorm表中添加:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 默认用主机名
user="root", # 默认用户名
password="123456", # mysql密码
charset='utf8', # 编码方式
database="chuan" # 数据库名称
)
mycursor = mydb.cursor()
sql = "INSERT INTO product (id, name) VALUES (%s, %s)"
val = [
{ 1, '菜鸟一号'},
{ 2, '菜鸟二号'},
{3, '菜鸟三号'},
{ 4, '菜鸟四号'},
{ 5, '菜鸟五号'}
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "全部添加成功.")
运行:
您可以使用 JOIN 语句根据两个或多个表之间的相关列组合来自两个或多个表的行。
例如加入users和product,查看用户最喜欢的产品名称:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ INNER JOIN products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
运行:
注意:您可以使用 JOIN 代替 INNER JOIN。他们都会给你同样的结果。
在上面的示例中,Hannah 和 Michael 被排除在结果之外,这是因为 INNER JOIN 仅显示存在匹配的记录。如果要显示所有用户,即使他们没有最喜欢的产品,也可以使用 LEFT JOIN 语句。
例如选择所有用户和他们最喜欢的产品:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="myusername",
password="mypassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ LEFT JOIN products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
运行:
如果您想返回所有产品,以及收藏它们的用户,即使没有用户收藏它们,也可以使用 RIGHT JOIN 语句。例如选择所有产品,以及收藏这些产品的用户:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="myusername",
password="mypassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ RIGHT JOIN products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
print(x)
运行:
至此已经讲完全部python mysql教程。你似乎会在困惑:sql语句到底该怎么用呢?可是我不会sql啊,对的,如果你不会,请看SQL教程如下:
SQL三万字超全教程
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_46211269/article/details/120298261
内容来源于网络,如有侵权,请联系作者删除!