You are currently viewing Как скопировать таблицу в MySQL с помощью Python?

Как скопировать таблицу в MySQL с помощью Python?

В этой статье мы создадим таблицу в MySQL и создадим копию этой таблицы с помощью Python. Мы скопируем всю таблицу, включая все столбцы и определение столбцов, а также все строки данных в таблице.

Чтобы подключиться к базе данных MySQL с помощью python, нам нужен модуль PyMySql. Класс cursor позволяет python выполнять команды SQL. Курсоры создаются методом connection_name.cursor (), где connection_name-это ссылка на базу данных SQL. Как только соединение установлено, cursor.execute() используется для выполнения инструкций SQL.

Давайте разберемся в вышесказанном на примере. Предположим, в MySQL мы создаем тест базы данных, и он содержит таблицу с именем geeksfoegeeks и имеет приведенную ниже схему и следующие данные:

Чтобы скопировать таблицу в MySQL, мы используем приведенный ниже запрос:
 

CREATE TABLE table-name SELECT * FROM table-name;

Теперь ниже приведена программа для копирования всей таблицы с помощью python:

  • Python3
# import required modules
import pymysql


# establish connection to SQL database
connection = pymysql.connect(
	
	# specify hostname
	host="localhost",
	
	# specify user of mysql database
	user="root",
	
	# specify password for above user
	password="1234",
	
	# default port number for mysql is 3306
	port=3306,
	
	# specify database name on which you want to work
	db="test"
)


# make a cursor
mycursor = connection.cursor()

# create a new table geeksforgeekscopy and copy all
# records from geeksfoegeeks into the newly created table
mycursor.execute("create table geeksforgeekscopy select * from geeksfoegeeks")

# list all the tables
mycursor.execute("Show tables")

# fetchall() will store all the names
# of tables into query1
query1 = mycursor.fetchall()

# print name of tables
for i in query1:
	print(i)

# read all records from copy table
mycursor.execute("Select * from geeksforgeekscopy")

# fetchall() will store all the records
# of copy table into query2
query2 = mycursor.fetchall()

# print all records
for i in query2:
	print(i)

Вывод:

Вывод на Python

На приведенном выше рисунке мы могли видеть список таблиц, за которыми следуют все записи из таблицы geeksforgeekscopy. Вышеуказанный вывод также был подтвержден предоставлением вывода базы данных MySQL.

Вывод MySQL

Вот еще один пример, в котором показано, как создать новую таблицу из данных и схемы предыдущей таблицы. Ниже приведена ранее существовавшая таблица:

Теперь, используя приведенный ниже сценарий, создайте копию приведенной выше таблицы в базе данных:

  • Python3
# import required modules
import pymysql

# connect python with mysql with your hostname,
# username, password and database
connection= pymysql.connect("localhost", "root", "", "geek")

# make a cursor
mycursor = connection.cursor()

# create a new table and copy all records from
# previous table into the newly created table
mycursor.execute("create table geeksdemocopy select * from geeksdemo")

# list all the tables
mycursor.execute("Show tables")

# fetchall() will store all the names of tables into query1
query1 = mycursor.fetchall()

# print name of tables
for i in query1:
	print(i)

# read all records from copy table
mycursor.execute("Select * from geeksdemocopy")

# fetchall() will store all the records of copy table into query2
query2 = mycursor.fetchall()

# print all records
for i in query2:
	print(i)

Выход:

Ниже приведена новая таблица, данные и схема которой скопированы из предыдущей таблицы: