Python PostgreSQL - вставка данных
Вы можете вставить запись в существующую таблицу в PostgreSQL, используя INSERT INTOзаявление. Выполняя это, вам необходимо указать имя таблицы и значения для столбцов в ней.
Синтаксис
Ниже приведен рекомендуемый синтаксис оператора INSERT:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Где, column1, column2, column3, .. - это имена столбцов таблицы, а value1, value2, value3, ... - значения, которые вам нужно вставить в таблицу.
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя оператор CREATE TABLE, как показано ниже -
postgres=# CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age INT,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
CREATE TABLE
postgres=#
Следующий оператор PostgreSQL вставляет строку в созданную выше таблицу -
postgres=# insert into CRICKETERS
(First_Name, Last_Name, Age, Place_Of_Birth, Country) values
('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=#
Если при вставке записей с помощью оператора INSERT INTO вы пропустите имена столбцов, запись будет вставлена, оставляя пустые места в столбцах, которые вы пропустили.
postgres=# insert into CRICKETERS
(First_Name, Last_Name, Country) values('Jonathan', 'Trott', 'SouthAfrica');
INSERT 0 1
Вы также можете вставлять записи в таблицу без указания имен столбцов, если порядок передаваемых значений совпадает с их соответствующими именами столбцов в таблице.
postgres=# insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
INSERT 0 1
postgres=# insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
INSERT 0 1
postgres=#
После вставки записей в таблицу вы можете проверить ее содержимое с помощью оператора SELECT, как показано ниже -
postgres=# SELECT * from CRICKETERS;
first_name | last_name | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Shikhar | Dhawan | 33 | Delhi | India
Jonathan | Trott | | | SouthAfrica
Kumara | Sangakkara | 41 | Matale | Srilanka
Virat | Kohli | 30 | Delhi | India
Rohit | Sharma | 32 | Nagpur | India
(5 rows)
Вставка данных с помощью Python
Класс курсора psycopg2 предоставляет метод с именем execute () method. Этот метод принимает запрос в качестве параметра и выполняет его.
Поэтому для вставки данных в таблицу в PostgreSQL с помощью python -
импорт psycopg2 пакет.
Создайте объект подключения с помощью connect() , передав ему имя пользователя, пароль, хост (необязательно по умолчанию: localhost) и базу данных (необязательно) в качестве параметров.
Отключите режим автоматической фиксации, установив false в качестве значения атрибута autocommit.
В cursor() метод ConnectionКласс библиотеки psycopg2 возвращает объект курсора. Создайте объект курсора с помощью этого метода ..
Затем выполните оператор INSERT, передав его / их в качестве параметра методу execute ().
пример
Следующая программа Python создает таблицу с именем EMPLOYEE в базе данных PostgreSQL и вставляет в нее записи с помощью метода execute () -
import psycopg2
#Establishing the connection
conn = psycopg2.connect(
database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432'
)
#Setting auto commit false
conn.autocommit = True
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL queries to INSERT a record into the database.
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Ramya', 'Rama priya', 27, 'F', 9000)''')
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Vinay', 'Battacharya', 20, 'M', 6000)''')
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Sharukh', 'Sheik', 25, 'M', 8300)''')
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Sarmista', 'Sharma', 26, 'F', 10000)''')
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Tripthi', 'Mishra', 24, 'F', 6000)''')
# Commit your changes in the database
conn.commit()
print("Records inserted........")
# Closing the connection
conn.close()
Вывод
Records inserted........