В этой статье мы создадим таблицу в MySQL и создадим копию этой таблицы с помощью Python. Мы скопируем всю таблицу, включая все столбцы и определение столбцов, а также все строки данных в таблице.
Чтобы подключиться к базе данных MySQL с помощью python, нам нужен модуль PyMySql. Класс cursor позволяет python выполнять команды SQL. Курсоры создаются методом connection_name.cursor (), где connection_name-это ссылка на базу данных SQL. Как только соединение установлено, cursor.execute() используется для выполнения инструкций SQL.
Давайте разберемся в вышесказанном на примере. Предположим, в MySQL мы создаем тест базы данных, и он содержит таблицу с именем geeksfoegeeks и имеет приведенную ниже схему и следующие данные:
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot1-1.png)
Чтобы скопировать таблицу в 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)
Вывод:
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot3.png)
Вывод на Python
На приведенном выше рисунке мы могли видеть список таблиц, за которыми следуют все записи из таблицы geeksforgeekscopy. Вышеуказанный вывод также был подтвержден предоставлением вывода базы данных MySQL.
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot5.png)
Вывод MySQL
Вот еще один пример, в котором показано, как создать новую таблицу из данных и схемы предыдущей таблицы. Ниже приведена ранее существовавшая таблица:
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot627.png)
Теперь, используя приведенный ниже сценарий, создайте копию приведенной выше таблицы в базе данных:
- 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)
Выход:
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot629.png)
Ниже приведена новая таблица, данные и схема которой скопированы из предыдущей таблицы:
![](https://programbox.ru/wp-content/uploads/2021/11/Screenshot630.png)