Python PostgreSQL - Wstaw dane
Możesz wstawić rekord do istniejącej tabeli w PostgreSQL za pomocą rozszerzenia INSERT INTOkomunikat. Wykonując to, musisz określić nazwę tabeli i wartości dla znajdujących się w niej kolumn.
Składnia
Poniżej znajduje się zalecana składnia instrukcji INSERT -
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Gdzie kolumna1, kolumna2, kolumna3, .. to nazwy kolumn tabeli, a wartość1, wartość2, wartość3, ... to wartości, które należy wstawić do tabeli.
Przykład
Załóżmy, że utworzyliśmy tabelę o nazwie CRICKETERS przy użyciu instrukcji CREATE TABLE, jak pokazano poniżej -
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=#
Następująca instrukcja PostgreSQL wstawia wiersz do powyższej utworzonej tabeli -
postgres=# insert into CRICKETERS (
First_Name, Last_Name, Age, Place_Of_Birth, Country)
values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=#
Podczas wstawiania rekordów za pomocą instrukcji INSERT INTO , jeśli pominiesz nazwy kolumn Rekord zostanie wstawiony z pozostawieniem pustych spacji w kolumnach, które zostały pominięte.
postgres=# insert into CRICKETERS (First_Name, Last_Name, Country)
values('Jonathan', 'Trott', 'SouthAfrica');
INSERT 0 1
Możesz także wstawiać rekordy do tabeli bez określania nazw kolumn, jeśli kolejność przekazywanych wartości jest taka sama, jak ich nazwy kolumn w tabeli.
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=#
Po wstawieniu rekordów do tabeli możesz zweryfikować jej zawartość za pomocą instrukcji SELECT, jak pokazano poniżej -
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)
Wstawianie danych za pomocą Pythona
Klasa kursora psycopg2 dostarcza metodę o nazwie metoda execute (). Ta metoda akceptuje zapytanie jako parametr i wykonuje je.
Dlatego, aby wstawić dane do tabeli w PostgreSQL za pomocą Pythona -
Import psycopg2 pakiet.
Utwórz obiekt połączenia przy użyciu connect() metody, przekazując jako parametry nazwę użytkownika, hasło, host (opcjonalnie domyślnie: localhost) i bazę danych (opcjonalnie).
Wyłącz tryb automatycznego zatwierdzania, ustawiając false jako wartość atrybutu autocommit.
Plik cursor() metoda Connectionklasa biblioteki psycopg2 zwraca obiekt kursora. Utwórz obiekt kursora za pomocą tej metody.
Następnie wykonaj instrukcje INSERT, przekazując je / je jako parametr do metody execute ().
Przykład
Poniższy program w Pythonie tworzy tabelę o nazwie PRACOWNIK w bazie danych PostgreSQL i wstawia do niej rekordy za pomocą metody 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()
Wynik
Records inserted........