Python MySQL如何使用join联接查询?

2021年3月23日15:17:03 发表评论 799 次浏览

当我们必须将mysql与其他编程语言一起使用时, 将使用连接器。 mysql-connector的工作是提供对使用所需语言的MySQL驱动程序的访问。因此, 它在编程语言和MySQL Server之间生成了连接。

Python-MySQL-连接器

这是一个MySQL连接器, 它允许Python访问MySQL驱动程序并在其编程工具中实现SQL查询。在这里, 我们将尝试实施加入数据库中的"条款", 并将研究生成的输出。

SQL的JOIN子句

通过联接, 你可以基于两个表之间的相关列来组合两个或多个SQL表。基于联接的这种应用, 共有三种类型的联接:

Python MySQL join

内部联接

给出由匹配列产生的记录。 JOIN和INNER JOIN都工作相同。

语法如下:

SELECT column1, column2...
FROM tablename
JOIN tablename ON condition;
SELECT column1, column2...
FROM tablename
INNER JOIN tablename ON condition;

左联接

给出表1中的记录, 除去表2中的独占内容

语法如下:

SELECT column1, column2...
FROM tablename
LEFT JOIN tablename ON condition;

正确加入

除去表1的排它记录后, 给出表2中的所有记录。

语法如下:

SELECT column1, column2...
FROM tablename
RIGHT JOIN tablename ON condition;

以下程序将帮助你更好地理解这一点。

正在使用的数据库:

python-join-db1
python-join-db21

计划1:使用内部联接

import mysql.connector
   
# Conencting to the database
mydb = mysql.connector.connect(
   host = 'localhost' , database = 'College' , user = 'root' , )
   
cs = mydb.cursor()
  
# STUDENT and STudent are
# two different database
statement = "SELECT S.NAME from Student S JOIN \
Student on S.Roll_no = Student.Roll_no"
  
cs.execute(statement)
result_set = cs.fetchall()
  
for x in result_set:
     print (x)

输出如下:

python-join-1

计划2:使用LEFT JOIN

import mysql.connector
   
# Conencting to the database
mydb = mysql.connector.connect(
   host = 'localhost' , database = 'College' , user = 'root' , )
   
cs = mydb.cursor()
  
# STUDENT and STudent are
# two different database
statement = "SELECT S.Name from STUDENT S\
  LEFT JOIN Student s ON S.Roll_no = s.Roll_no"
  
cs.execute(statement)
result_set = cs.fetchall()
  
for x in result_set:
     print (x)

输出如下:

python-join-2

计划3:使用RIGHT JOIN

import mysql.connector
   
# Conencting to the database
mydb = mysql.connector.connect(
   host = 'localhost' , database = 'College' , user = 'root' , )
   
cs = mydb.cursor()
  
# STUDENT and STudent are
# two different database
statement = "SELECT S.Name from STUDENT S RIGHT \
JOIN Student s ON S.Roll_no = s.Roll_no"
  
cs.execute(statement)
result_set = cs.fetchall()
  
for x in result_set:
     print (x)

输出如下:

python-join-3

注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: