Python MySQL合并

Python MySQL合并,第1张

Python MySQL合并

目录

创建新表

表中添加数据

连接两个或多个表

连接

右连接


创建新表

创建表名为product

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
mycursor.execute("CREATE TABLE product (id VARCHAr(255), product VARCHAr(255),fav VARCHAr(255))")

再创建users表:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
mycursor.execute("CREATE TABLE users (id VARCHAr(255), name VARCHAr(255),fav VARCHAr(255))")

无报错则创建成功。

表中添加数据

product表中添加:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
sql = "INSERT INTO product (id, product,fav) VALUES (%s, %s,%s)"
val = [
    (1, '巧克力', 154),
    (2,  '草',  155),
    (3,  '棉花糖',156),
    (4,  '肉' ,157)
]

mycursor.executemany(sql, val)
#提交
mydb.commit()
#打印
print(mycursor.rowcount, "全部添加成功.")

users表中添加:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
sql = "INSERT INTO users (id, name) VALUES (%s, %s)"
val = [
    (1,'笨小孩'),
    (2,'喜洋洋'),
    (3,'美羊羊'),
    (4,'懒洋洋')
]

mycursor.executemany(sql, val)
#提交
mydb.commit()
#打印
print(mycursor.rowcount, "全部添加成功.")

运行:

连接两个或多个表

您可以使用 JOIN 语句根据两个或多个表之间的相关列组合来自两个或多个表的行。
例如加入users和product,查看用户最喜欢的产品名称:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
sql = "SELECt 
  users.name AS user, 
  product.product AS favorite 
  FROM users 
  INNER JOIN product ON users.id = product.id"

mycursor.execute(sql)
#打印
myresult = mycursor.fetchall()

for x in myresult:
    print(x)

运行:

注意:您可以使用 JOIN 代替 INNER JOIN。他们都会给你同样的结果。

左连接

在上面的示例中, INNER JOIN 仅显示存在匹配的记录。如果要显示所有用户,即使他们没有最喜欢的产品,也可以使用 LEFT JOIN 语句。
例如选择所有用户和他们最喜欢的产品:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
sql = "SELECt 
  users.name AS user, 
  product.product AS favorite 
  FROM users 
  LEFT JOIN product ON users.id = product.id"

mycursor.execute(sql)
#打印
myresult = mycursor.fetchall()

for x in myresult:
    print(x)

运行:

右连接

如果您想返回所有产品,以及收藏它们的用户,即使没有用户收藏它们,也可以使用 RIGHT JOIN 语句。例如选择所有产品,以及收藏这些产品的用户:

# coding=gbk
#连接
import pymysql

mydb = pymysql.connect(
    
    host="localhost", #默认用主机名
    port=3306,
    user="root",  #默认用户名
    password="123456",   #mysql密码
    database='student', #库名
    charset='utf8'   #编码方式
)

print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()

#执行sql语句
sql = "SELECt 
  users.name AS user, 
  product.product AS favorite 
  FROM users 
  RIGHT JOIN product ON users.id = product.id"

mycursor.execute(sql)
#打印
myresult = mycursor.fetchall()

for x in myresult:
    print(x)

运行:​​​​​​​

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5721248.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存