Интерфейс Python с базой данных SQL
Python — это простой в освоении язык, и возможность подключения Python к любой базе данных SQL — очень желанный вариант, позволяющий иметь функцию сохранения. Python — это объектно-ориентированный язык программирования с открытым исходным кодом. Новички в индустрии программного обеспечения, в том числе школьники, могут легко выучить Python. Python можно легко загрузить в соответствии с операционной системой, и все начинающие пользователи также могут легко это сделать.
SQL Server — это база данных, полезная для постоянных данных. Всякий раз, когда мы хотим хранить много информации, мы зависим от базы данных. Это может быть любая база данных, такая как MySQL, SQL Server и даже база данных NoSQL, такая как MongoDB. Информация хранится в нескольких таблицах в базе данных, такой как MySQL или SQLServer. В базе данных может быть создано несколько таблиц. Каждая таблица может иметь несколько столбцов. Таблица может иметь множество строк, где каждая строка представляет информацию о студенте/сотруднике/экзамене и т. д. Это означает, что каждая строка должна быть однозначно идентифицирована с помощью первичного ключа. Кроме того, у нас есть разные ключи, такие как уникальный ключ, внешний ключ и т. д. для доступа к данным.
Необходимость взаимодействия Python с базой данных SQL
Вся база данных (RDBMS) требуется для хранения данных и управления данными (путем вставки/удаления/обновления) данных. Способ обработки этих наборов операций называется операциями CRUD (CREATE/READ/UPDATE/DELETE). Python — это удобный язык, и он может легко подключаться к любой базе данных с помощью вышеуказанных способов. После правильной установки Python и эта база данных могут быть подключены. Любые операции CRUD могут быть легко обработаны.
- В Python мы будем получать входные данные из разных источников.
- Python будет работать с входными данными и производить желаемый результат после определенных вычислений.
- Конечный результат можно сохранить в базе данных, если мы взаимодействуем с базами данных Python и SQL.
Для взаимодействия Python и базы данных нам необходимо установить нужные установки. Для каждой базы данных SQL (RDBMS) нам нужно установить ее по-разному. Это также отличается от операционной системы
Для модуля sqlite3:
pip install pysqlite3
В более ранних версиях Python это будет
pip install pysqlite
Для среды анаконды
conda install sqlite3
Аналогично для MySQL это будет
pip install mysqlclient --older versions (1.2.x versions (legacy Python only)) pip install MySQL-python
SQL-сервер:
pip install pymssql
Подключение MySQL к Python
Следующая программа покажет, как соединить MySQL с Python.
Python3
# Python3 Program to connect MySQL to Python # As we are connecting mysql, this is needed import mysql.connector db_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) # Database is in scope now my_database = db_connection.cursor() |
Как только мы получим соединение, нам нужно увидеть, как вставлять данные. Предположим, что в MySQL есть таблица с именем «GEEKPORTALLOGIN». Предоставление скриптов для создания таблицы в MySQL, а также
drop table GEEKSFORGEEKS.GEEKPORTALLOGIN; # If we want to drop the table if already exists
— Create the table GEEKPORTALLOGIN
CREATE TABLE GEEKSFORGEEKS.GEEKPORTALLOGIN (id INT NOT NULL,
loginName VARCHAR(20) default NULL,
password VARCHAR(45) default NULL,
PRIMARY KEY (id)
);
Вставка данных с помощью Python
Мы можем вставлять данные в базу данных с помощью Python. Для вставки данных используются следующие методы:
1. execute(): эта функция используется для подготовки операции с базой данных и ее запуска. Он принимает параметры в виде ряда или отображения.
Синтаксис:
execute(operation[, parameters])
2. executemany(): эта функция используется для создания действия базы данных и запуска его для всех кортежей параметров в ряду параметров. Он особенно используется для инструкций по обновлению базы данных.
Синтаксис:
executemany(operation, sequence_of_parameters)
В следующих примерах показано, как вставлять данные в базу данных с помощью Python.
Пример 1:
Python3
# Python Program to insert data into database import mysql.connector db_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) my_database = db_connection.cursor() # Get the inputs. Usually from frontend we may # get inputs and they will be passed to Python # Here let us get from Python itself loginName = input ( "Enter a login Name : " ); # For sample only password is getting shown here password = input ( "Enter a password : " ); idx = "1" sql_statement = "INSERT INTO geekportallogin (id,loginName,password) values(%s,%s,%s)" values = (idx,loginName,password) # Execute will help to insert a single row of data my_database.execute(sql_statement,values) # To save the data into the database under the particular table db_connection.commit() |
Выход:
Пример 2:
Точно так же мы можем вставить несколько строк данных вместе. Это будет идеальным сценарием, когда мы делаем объемные вставки.
Python3
# Python3 program to insert multiple rows import mysql.connector sample_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) sample_database = sample_connection.cursor() # Inserting data values = [ ( "2" , "geekb" , "geekb" ), ( "3" , "geekc" , "geekc" ), ( "4" , "geekd" , "geekd" ) ] sql_statement = "INSERT INTO geekportallogin (id,loginName,password) values(%s,%s,%s)" # As we are going to insert multiple values, we need to use executemany sample_database.executemany(sql_statement,values) # To save the data into the database under the particular table sample_connection.commit() |
Выход:
Получение данных с помощью Python
Мы также можем получать данные с помощью Python из базы данных MySql. Чтобы получить данные из базы данных MySql, мы можем использовать следующие методы:
1. fetchall(): эта функция извлечет из таблицы все кортежи из последнего выполненного оператора. Если больше нет доступных строк, он вернет пустой список.
Синтаксис:
data = cursor.fetchall()
2. fetchone(): эта функция используется для выборки одной строки из указанной таблицы.
Синтаксис:
data = cursor.fetchone()
2. fetchmany(): эта функция используется для извлечения следующего набора строк из результата запроса, и если доступных строк больше нет, она возвращает пустой список. Размер функции fetchmany() по умолчанию равен только одному. Он принимает только один аргумент, который представляет количество строк для выборки.
Синтаксис:
data = cursor.fetchmant([size = cursor.arraySize])
Следующие примеры покажут, как получить данные MySQL из Python.
Пример 1:
Python3
# Python program to fetch data from MySql database import mysql.connector sample_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) sample_database = sample_connection.cursor() # Specify your correct table name here sql_statement = "SELECT * FROM GEEKPORTALLOGIN" sample_database.execute(sql_statement) # This step is used to get all the records as a list of tuples sample_output = sample_database.fetchall() # Iterate over the output for value in sample_output: print (value) |
Выход:
Пример 2:
Python3
# Python program to fetch data from MySql database import mysql.connector sample_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) sample_database = sample_connection.cursor() # Specify your correct table name here sql_statement = "SELECT * FROM GEEKPORTALLOGIN" sample_database.execute(sql_statement) # fetchmany(size=n) will tell n records where # n can be more than 1 # This step is used to get only 2 records sample_output = sample_database.fetchmany(size = 2 ) # Iterate over the output # Hence we can see only first 2 rows of data # as we have given size = 2 for value in sample_output: print (value) |
Выход:
Обновление данных MySQL с помощью Python
Мы также можем обновить данные, хранящиеся в базе данных MySql, с помощью python. В следующем примере показано, как обновить данные новыми данными.
Пример:
Python3
# Python program to update data in database import mysql.connector sample_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) sample_database = sample_connection.cursor() # Specify the update statement sql_statement = "UPDATE GEEKPORTALLOGIN SET loginName = %s WHERE id = %s" # Provide the values now for loginName and id # First one will indicate for loginName and second one for id values = ( "geeka123" , "1" ) # This will take care of updating values sample_database.execute(sql_statement,values) sample_connection.commit() |
Выход:
Удаление данных MySQL с помощью Python
Мы также можем удалить определенную строку из базы данных MySql, используя python. В следующем примере показано, как удалить указанную строку из записи.
Пример:
Python3
# Python program to delete the row import mysql.connector sample_connection = mysql.connector.connect( host = "localhost" , # Change your username here user = "root" , # Change your password here passwd = "admin" , # Need to point for the correct db database = "geeksforgeeks" ) sample_database = sample_connection.cursor() # Specify the delete statement sql_statement = "DELETE FROM GEEKPORTALLOGIN WHERE id = %s" # Provide the values now for id # We are going to delete for id = 1. # This is the syntax we have to follow values = ( "1" ,) # This will take care of deleting values sample_database.execute(sql_statement,values) sample_connection.commit() |
Выход: