Python PostgreSQL - Panduan Cepat

PostgreSQL adalah sistem database relasional objek open source yang kuat. Ini memiliki lebih dari 15 tahun fase pengembangan aktif dan arsitektur yang telah terbukti yang membuatnya mendapatkan reputasi yang kuat untuk keandalan, integritas data, dan kebenaran.

Untuk berkomunikasi dengan PostgreSQL menggunakan Python Anda perlu menginstal psycopg, adaptor yang disediakan untuk pemrograman python, versi saat ini adalah psycog2.

psycopg2 ditulis dengan tujuan menjadi sangat kecil dan cepat, serta stabil seperti batu. Ini tersedia di bawah PIP (manajer paket python)

Menginstal Psycog2 menggunakan PIP

Pertama-tama, pastikan python dan PIP terinstal di sistem Anda dengan benar dan, PIP up-to-date.

Untuk memutakhirkan PIP, buka command prompt dan jalankan perintah berikut -

C:\Users\Tutorialspoint>python -m pip install --upgrade pip
Collecting pip
   Using cached 
https://files.pythonhosted.org/packages/8d/07/f7d7ced2f97ca3098c16565efbe6b15fafcba53e8d9bdb431e09140514b0/pip-19.2.2-py2.py3-none-any.whl
Installing collected packages: pip
   Found existing installation: pip 19.0.3
      Uninstalling pip-19.0.3:
         Successfully uninstalled pip-19.0.3
Successfully installed pip-19.2.2

Kemudian, buka command prompt dalam mode admin dan jalankan file pip install psycopg2-binary perintah seperti yang ditunjukkan di bawah ini -

C:\WINDOWS\system32>pip install psycopg2-binary
Collecting psycopg2-binary
   Using cached 
https://files.pythonhosted.org/packages/80/79/d0d13ce4c2f1addf4786f4a2ded802c2df66ddf3c1b1a982ed8d4cb9fc6d/psycopg2_binary-2.8.3-cp37-cp37m-win32.whl
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.8.3

Verifikasi

Untuk memverifikasi instalasi, buat contoh skrip python dengan baris berikut di dalamnya.

import mysql.connector

Jika penginstalan berhasil, saat Anda menjalankannya, Anda tidak akan mendapatkan error -

D:\Python_PostgreSQL>import psycopg2
D:\Python_PostgreSQL>

PostgreSQL menyediakan cangkangnya sendiri untuk mengeksekusi kueri. Untuk membuat koneksi dengan database PostgreSQL, pastikan Anda telah menginstalnya dengan benar di sistem Anda. Buka prompt shell PostgreSQL dan berikan detail seperti Server, Database, nama pengguna, dan kata sandi. Jika semua detail yang Anda berikan sudah sesuai, koneksi dibuat dengan database PostgreSQL.

Saat meneruskan detail, Anda dapat menggunakan server default, database, port, dan nama pengguna yang disarankan oleh shell.

Membangun Koneksi Menggunakan Python

Kelas koneksi file psycopg2mewakili / menangani instance koneksi. Anda dapat membuat koneksi baru menggunakanconnect()fungsi. Ini menerima parameter koneksi dasar seperti dbname, pengguna, kata sandi, host, port dan mengembalikan objek koneksi. Dengan menggunakan fungsi ini, Anda dapat membuat koneksi dengan PostgreSQL.

Contoh

Kode Python berikut menunjukkan bagaimana menghubungkan ke database yang sudah ada. Jika database tidak ada, maka akan dibuat dan akhirnya objek database akan dikembalikan. Nama database default PostgreSQL adalah postrgre. Oleh karena itu, kami menyediakannya sebagai nama database.

import psycopg2
#establishing the connection
conn = psycopg2.connect(
   database="postgres", user='postgres', password='password', 
   host='127.0.0.1', port= '5432'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Executing an MYSQL function using the execute() method
cursor.execute("select version()")

#Fetch a single row using fetchone() method.
data = cursor.fetchone()
print("Connection established to: ",data)

#Closing the connection
conn.close()
Connection established to: (
   'PostgreSQL 11.5, compiled by Visual C++ build 1914, 64-bit',
)

Keluaran

Connection established to: (
   'PostgreSQL 11.5, compiled by Visual C++ build 1914, 64-bit',
)

Anda dapat membuat database di PostgreSQL menggunakan pernyataan CREATE DATABASE. Anda dapat menjalankan pernyataan ini di prompt shell PostgreSQL dengan menentukan nama database yang akan dibuat setelah perintah.

Sintaksis

Berikut ini adalah sintaks dari pernyataan CREATE DATABASE.

CREATE DATABASE dbname;

Contoh

Pernyataan berikut membuat database bernama testdb di PostgreSQL.

postgres=# CREATE DATABASE testdb;
CREATE DATABASE

Anda dapat membuat daftar database di PostgreSQL menggunakan perintah \ l. Jika Anda memverifikasi daftar database, Anda dapat menemukan database yang baru dibuat sebagai berikut -

postgres=# \l
                                                List of databases
   Name    | Owner    | Encoding |        Collate             |     Ctype   |
-----------+----------+----------+----------------------------+-------------+
mydb       | postgres | UTF8     | English_United States.1252 | ........... |
postgres   | postgres | UTF8     | English_United States.1252 | ........... |
template0  | postgres | UTF8     | English_United States.1252 | ........... |
template1  | postgres | UTF8     | English_United States.1252 | ........... |
testdb     | postgres | UTF8     | English_United States.1252 | ........... |
(5 rows)

Anda juga dapat membuat database di PostgreSQL dari command prompt menggunakan perintah createb , pembungkus di sekitar pernyataan SQL CREATE DATABASE.

C:\Program Files\PostgreSQL\11\bin> createdb -h localhost -p 5432 -U postgres sampledb
Password:

Membuat Database Menggunakan Python

Kelas kursor psycopg2 menyediakan berbagai metode untuk menjalankan berbagai perintah PostgreSQL, mengambil catatan, dan menyalin data. Anda bisa membuat objek kursor menggunakan metode cursor () dari kelas Connection.

Metode execution () dari kelas ini menerima kueri PostgreSQL sebagai parameter dan menjalankannya.

Oleh karena itu, untuk membuat database di PostgreSQL, jalankan kueri CREATE DATABASE menggunakan metode ini.

Contoh

Contoh python berikut membuat database bernama mydb di database PostgreSQL.

import psycopg2

#establishing the connection

conn = psycopg2.connect(
   database="postgres", user='postgres', password='password', 
   host='127.0.0.1', port= '5432'
)
conn.autocommit = True

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Preparing query to create a database
sql = '''CREATE database mydb''';

#Creating a database
cursor.execute(sql)
print("Database created successfully........")

#Closing the connection
conn.close()

Keluaran

Database created successfully........

Anda dapat membuat tabel baru dalam database di PostgreSQL menggunakan pernyataan CREATE TABLE. Saat menjalankan ini, Anda perlu menentukan nama tabel, nama kolom dan tipe datanya.

Sintaksis

Berikut ini adalah sintaks dari pernyataan CREATE TABLE di PostgreSQL.

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

Contoh

Contoh berikut membuat tabel dengan nama CRICKETERS di PostgreSQL.

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=#

Anda bisa mendapatkan daftar tabel dalam database di PostgreSQL menggunakan perintah \ dt. Setelah membuat tabel, jika Anda dapat memverifikasi daftar tabel, Anda dapat mengamati tabel yang baru dibuat di dalamnya sebagai berikut -

postgres=# \dt
         List of relations
Schema  | Name       | Type  | Owner
--------+------------+-------+----------
public  | cricketers | table | postgres
(1 row)
postgres=#

Dengan cara yang sama, Anda bisa mendapatkan deskripsi tabel yang dibuat menggunakan \ d seperti yang ditunjukkan di bawah ini -

postgres=# \d cricketers
                        Table "public.cricketers"
Column          | Type                   | Collation | Nullable | Default
----------------+------------------------+-----------+----------+---------
first_name      | character varying(255) |           |          |
last_name       | character varying(255) |           |          |
age             | integer                |           |          |
place_of_birth  | character varying(255) |           |          |
country         | character varying(255) |           |          |

postgres=#

Membuat Tabel Menggunakan Python

Untuk membuat tabel menggunakan python, Anda perlu menjalankan pernyataan CREATE TABLE menggunakan metode execute () dari Cursor pyscopg2 .

Contoh

Contoh Python berikut membuat tabel dengan nama karyawan.

import psycopg2

#Establishing the connection

conn = psycopg2.connect(
   database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

#Creating table as per requirement
sql ='''CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT)'''
cursor.execute(sql)
print("Table created successfully........")

#Closing the connection
conn.close()

Keluaran

Table created successfully........

Anda dapat memasukkan record ke dalam tabel yang ada di PostgreSQL menggunakan INSERT INTOpernyataan. Saat menjalankan ini, Anda perlu menentukan nama tabel, dan nilai untuk kolom di dalamnya.

Sintaksis

Berikut ini adalah sintaks yang direkomendasikan dari pernyataan INSERT -

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);

Di mana, kolom1, kolom2, kolom3, .. adalah nama-nama kolom dari tabel, dan nilai1, nilai2, nilai3, ... adalah nilai yang perlu Anda masukkan ke dalam tabel.

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan pernyataan CREATE TABLE seperti yang ditunjukkan di bawah ini -

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=#

Mengikuti pernyataan PostgreSQL menyisipkan baris di tabel yang dibuat di atas -

postgres=# insert into CRICKETERS 
   (First_Name, Last_Name, Age, Place_Of_Birth, Country) values
   ('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=#

Saat memasukkan record menggunakan pernyataan INSERT INTO, jika Anda melewatkan nama kolom Record akan disisipkan meninggalkan ruang kosong di kolom yang telah Anda lewati.

postgres=# insert into CRICKETERS 
   (First_Name, Last_Name, Country) values('Jonathan', 'Trott', 'SouthAfrica');
INSERT 0 1

Anda juga dapat menyisipkan rekaman ke dalam tabel tanpa menentukan nama kolom, jika urutan nilai yang Anda teruskan sama dengan masing-masing nama kolom dalam tabel.

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=#

Setelah memasukkan record ke dalam tabel, Anda dapat memverifikasi isinya menggunakan pernyataan SELECT seperti yang ditunjukkan di bawah ini -

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)

Memasukkan Data Menggunakan Python

Kelas kursor psycopg2 menyediakan metode dengan metode nama execute (). Metode ini menerima kueri sebagai parameter dan menjalankannya.

Oleh karena itu, untuk memasukkan data ke dalam tabel di PostgreSQL menggunakan python -

  • Impor psycopg2 paket.

  • Buat objek koneksi menggunakan connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.

  • Matikan mode komit otomatis dengan menyetel false sebagai nilai ke atribut autocommit.

  • Itu cursor() metode dari Connectionkelas pustaka psycopg2 mengembalikan objek kursor. Buat objek kursor menggunakan metode ini ..

  • Kemudian, jalankan pernyataan INSERT dengan meneruskannya sebagai parameter ke metode execute ().

Contoh

Mengikuti program Python membuat tabel dengan nama EMPLOYEE di database PostgreSQL dan memasukkan catatan ke dalamnya menggunakan metode 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()

Keluaran

Records inserted........

Anda dapat mengambil konten dari tabel yang ada di PostgreSQL menggunakan pernyataan SELECT. Pada pernyataan ini, Anda perlu menentukan nama tabel dan mengembalikan isinya dalam format tabel yang dikenal sebagai kumpulan hasil.

Sintaksis

Berikut ini adalah sintaks dari pernyataan SELECT di PostgreSQL -

SELECT column1, column2, columnN FROM table_name;

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', '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

Setelah kueri SELECT mengambil nilai kolom FIRST_NAME, LAST_NAME dan, COUNTRY dari tabel CRICKETERS.

postgres=# SELECT FIRST_NAME, LAST_NAME, COUNTRY FROM CRICKETERS;
 first_name | last_name  | country
------------+------------+-------------
Shikhar     | Dhawan     | India
Jonathan    | Trott      | SouthAfrica
Kumara      | Sangakkara | Srilanka
Virat       | Kohli      | India
Rohit       | Sharma     | India
(5 rows)

Jika Anda ingin mengambil semua kolom dari setiap record, Anda perlu mengganti nama kolom dengan "⚹" seperti yang ditunjukkan di bawah ini -

postgres=# SELECT * FROM CRICKETERS;
first_name  | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Shikhar     | Dhawan     | 33  | Delhi          | India
Jonathan    | Trott      | 38  | CapeTown       | SouthAfrica
Kumara      | Sangakkara | 41  | Matale         | Srilanka
Virat       | Kohli      | 30  | Delhi          | India
Rohit       | Sharma     | 32  | Nagpur         | India
(5 rows)

postgres=#

Mengambil Data Menggunakan Python

Operasi BACA pada database apa pun berarti mengambil beberapa informasi berguna dari database. Anda dapat mengambil data dari PostgreSQL menggunakan metode fetch () yang disediakan oleh psycopg2.

Kelas Cursor menyediakan tiga metode yaitu fetchall (), fetchmany () dan, fetchone () di mana,

  • Metode fetchall () mengambil semua baris dalam kumpulan hasil kueri dan mengembalikannya sebagai daftar tupel. (Jika kita menjalankan ini setelah mengambil beberapa baris, ini mengembalikan yang tersisa).

  • Metode fetchone () mengambil baris berikutnya dalam hasil kueri dan mengembalikannya sebagai tupel.

Note - Kumpulan hasil adalah objek yang dikembalikan saat objek kursor digunakan untuk membuat kueri tabel.

Contoh

Program Python berikut terhubung ke database bernama mydb dari PostgreSQL dan mengambil semua catatan dari tabel bernama EMPLOYEE.

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()

#Retrieving data
cursor.execute('''SELECT * from EMPLOYEE''')

#Fetching 1st row from the table
result = cursor.fetchone();
print(result)

#Fetching 1st row from the table
result = cursor.fetchall();
print(result)

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

('Ramya', 'Rama priya', 27, 'F', 9000.0)
[
   ('Vinay', 'Battacharya', 20, 'M', 6000.0),
   ('Sharukh', 'Sheik', 25, 'M', 8300.0),
   ('Sarmista', 'Sharma', 26, 'F', 10000.0),
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]

Saat melakukan operasi SELECT, UPDATE atau, DELETE, Anda dapat menentukan kondisi untuk memfilter record menggunakan klausa WHERE. Operasi akan dilakukan pada catatan yang memenuhi kondisi yang diberikan.

Sintaksis

Berikut ini adalah sintaks klausa WHERE di PostgreSQL -

SELECT column1, column2, columnN
FROM table_name
WHERE [search_condition]

Anda dapat menentukan kondisi_penelusuran menggunakan perbandingan atau operator logika. like>, <, =, LIKE, NOT, dll. Contoh berikut akan membuat konsep ini menjadi jelas.

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', '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

Mengikuti pernyataan SELECT mengambil catatan yang usianya lebih dari 35 -

postgres=# SELECT * FROM CRICKETERS WHERE AGE > 35;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Jonathan    | Trott      | 38  | CapeTown       | SouthAfrica
Kumara      | Sangakkara | 41  | Matale         | Srilanka
(2 rows)

postgres=#

Dimana Klausul Menggunakan Python

Untuk mengambil record tertentu dari tabel menggunakan program python, jalankan pernyataan SELECT dengan klausa WHERE , dengan meneruskannya sebagai parameter keexecute() metode.

Contoh

Contoh python berikut menunjukkan penggunaan perintah WHERE menggunakan python.

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()

#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT)'''
cursor.execute(sql)

#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE 
   (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
data = [('Krishna', 'Sharma', 19, 'M', 2000), ('Raj', 'Kandukuri', 20, 'M', 7000),
   ('Ramya', 'Ramapriya', 25, 'M', 5000),('Mac', 'Mohan', 26, 'M', 2000)]
cursor.executemany(insert_stmt, data)

#Retrieving specific records using the where clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]

Biasanya jika Anda mencoba mengambil data dari tabel, Anda akan mendapatkan catatan dalam urutan yang sama dengan yang Anda masukkan.

Menggunakan ORDER BY klausa, saat mengambil rekaman tabel Anda bisa mengurutkan rekaman yang dihasilkan dalam urutan naik atau turun berdasarkan kolom yang diinginkan.

Sintaksis

Berikut ini adalah sintaks klausa ORDER BY di PostgreSQL.

SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', '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

Mengikuti pernyataan SELECT mengambil baris dari tabel CRICKETERS dalam urutan menaik dari usianya -

postgres=# SELECT * FROM CRICKETERS ORDER BY AGE;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Virat       | Kohli      | 30  | Delhi          | India
Rohit       | Sharma     | 32  | Nagpur         | India
Shikhar     | Dhawan     | 33  | Delhi          | India
Jonathan    | Trott      | 38  | CapeTown       | SouthAfrica
Kumara      | Sangakkara | 41  | Matale         | Srilanka
(5 rows)es:

Anda bisa menggunakan lebih dari satu kolom untuk mengurutkan rekaman tabel. Pernyataan SELECT berikut mengurutkan catatan tabel CRICKETERS berdasarkan usia kolom dan FIRST_NAME.

postgres=# SELECT * FROM CRICKETERS ORDER BY AGE, FIRST_NAME;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Virat       | Kohli      | 30  | Delhi          | India
Rohit       | Sharma     | 32  | Nagpur         | India
Shikhar     | Dhawan     | 33  | Delhi          | India
Jonathan    | Trott      | 38  | CapeTown       | SouthAfrica
Kumara      | Sangakkara | 41  | Matale         | Srilanka
(5 rows)

Secara default, file ORDER BYklausa mengurutkan catatan tabel dalam urutan menaik. Anda dapat mengatur hasil dalam urutan menurun menggunakan DESC sebagai -

postgres=# SELECT * FROM CRICKETERS ORDER BY AGE DESC;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Kumara      | Sangakkara | 41  | Matale         | Srilanka
Jonathan    | Trott      | 38  | CapeTown       | SouthAfrica
Shikhar     | Dhawan     | 33  | Delhi          | India
Rohit       | Sharma     | 32  | Nagpur         | India
Virat       | Kohli      | 30  | Delhi          | India
(5 rows)

ORDER BY Clause Menggunakan Python

Untuk mengambil konten tabel dalam urutan tertentu, panggil metode execute () pada objek kursor dan, teruskan pernyataan SELECT bersama dengan klausa ORDER BY, sebagai parameter untuknya.

Contoh

Dalam contoh berikut, kami membuat tabel dengan nama dan Karyawan, mengisinya, dan mengambil kembali rekamannya dalam urutan (menaik) sesuai usianya, menggunakan klausa ORDER BY.

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()

#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

#Creating a table
sql = '''CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT, SEX CHAR(1),
   INCOME INT,
   CONTACT INT)'''
cursor.execute(sql)

#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE 
   (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME, CONTACT) VALUES (%s, %s, %s, %s, %s, %s)"

data = [('Krishna', 'Sharma', 26, 'M', 2000, 101), 
   ('Raj', 'Kandukuri', 20, 'M', 7000, 102),
   ('Ramya', 'Ramapriya', 29, 'F', 5000, 103),
   ('Mac', 'Mohan', 26, 'M', 2000, 104)]
cursor.executemany(insert_stmt, data)
conn.commit()

#Retrieving specific records using the ORDER BY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY AGE")
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]

Anda dapat mengubah konten catatan tabel yang ada di PostgreSQL menggunakan pernyataan UPDATE. Untuk memperbarui baris tertentu, Anda perlu menggunakan klausa WHERE bersamanya.

Sintaksis

Berikut ini adalah sintaks dari pernyataan UPDATE di PostgreSQL -

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', '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

Pernyataan berikut mengubah usia pemain kriket, yang nama depannya adalah Shikhar -

postgres=# UPDATE CRICKETERS SET AGE = 45 WHERE FIRST_NAME = 'Shikhar' ;
UPDATE 1
postgres=#

Jika Anda mengambil rekaman yang FIRST_NAME-nya adalah Shikhar, Anda mengamati bahwa nilai usia telah diubah menjadi 45 -

postgres=# SELECT * FROM CRICKETERS WHERE FIRST_NAME = 'Shikhar';
 first_name | last_name | age | place_of_birth | country
------------+-----------+-----+----------------+---------
Shikhar     | Dhawan    | 45  | Delhi          | India
(1 row)

postgres=#

Jika Anda belum pernah menggunakan klausa WHERE, nilai dari semua record akan diperbarui. Mengikuti pernyataan UPDATE meningkatkan usia semua catatan di tabel CRICKETERS sebesar 1 -

postgres=# UPDATE CRICKETERS SET AGE = AGE+1;
UPDATE 5

Jika Anda mengambil konten tabel menggunakan perintah SELECT, Anda dapat melihat nilai yang diperbarui sebagai -

postgres=# SELECT * FROM CRICKETERS;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Jonathan    | Trott      | 39  | CapeTown       | SouthAfrica
Kumara      | Sangakkara | 42  | Matale         | Srilanka
Virat       | Kohli      | 31  | Delhi          | India
Rohit       | Sharma     | 33  | Nagpur         | India
Shikhar     | Dhawan     | 46  | Delhi          | India
(5 rows)

Memperbarui Rekaman Menggunakan Python

Kelas kursor psycopg2 menyediakan metode dengan metode nama execute (). Metode ini menerima kueri sebagai parameter dan menjalankannya.

Oleh karena itu, untuk memasukkan data ke dalam tabel di PostgreSQL menggunakan python -

  • Impor psycopg2 paket.

  • Buat objek koneksi menggunakan connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.

  • Matikan mode komit otomatis dengan menyetel false sebagai nilai ke atribut autocommit.

  • Itu cursor() metode dari Connectionkelas pustaka psycopg2 mengembalikan objek kursor. Buat objek kursor menggunakan metode ini.

  • Kemudian, jalankan pernyataan UPDATE dengan meneruskannya sebagai parameter ke metode execute ().

Contoh

Mengikuti kode Python memperbarui konten tabel Karyawan dan mengambil hasilnya -

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()

#Fetching all the rows before the update
print("Contents of the Employee table: ")
sql = '''SELECT * from EMPLOYEE'''
cursor.execute(sql)
print(cursor.fetchall())

#Updating the records
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = 'M'"
cursor.execute(sql)
print("Table updated...... ")

#Fetching all the rows after the update
print("Contents of the Employee table after the update operation: ")
sql = '''SELECT * from EMPLOYEE'''
cursor.execute(sql)
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

Contents of the Employee table:
[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Vinay', 'Battacharya', 20, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 25, 'M', 8300.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]
Table updated......
Contents of the Employee table after the update operation:
[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 26, 'M', 8300.0)
]

Anda dapat menghapus rekaman dalam tabel yang sudah ada menggunakan DELETE FROMpernyataan database PostgreSQL. Untuk menghapus catatan tertentu, Anda perlu menggunakan klausa WHERE bersamanya.

Sintaksis

Berikut ini adalah sintaks dari query DELETE di PostgreSQL -

DELETE FROM table_name [WHERE Clause]

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values ('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values ('Jonathan', 'Trott', 38, 'CapeTown', '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

Pernyataan berikut menghapus rekor pemain kriket yang memiliki nama belakang 'Sangakkara'.

postgres=# DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
DELETE 1

Jika Anda mengambil isi tabel menggunakan pernyataan SELECT, Anda hanya dapat melihat 4 record karena kami telah menghapus satu record.

postgres=# SELECT * FROM CRICKETERS;
 first_name | last_name | age | place_of_birth | country
------------+-----------+-----+----------------+-------------
Jonathan    |     Trott |  39 | CapeTown       | SouthAfrica
Virat       |     Kohli |  31 | Delhi          | India
Rohit       |    Sharma |  33 | Nagpur         | India
Shikhar     |    Dhawan |  46 | Delhi          | India

(4 rows)

Jika Anda menjalankan pernyataan DELETE FROM tanpa klausa WHERE, semua record dari tabel yang ditentukan akan dihapus.

postgres=# DELETE FROM CRICKETERS;
DELETE 4

Karena Anda telah menghapus semua record, jika Anda mencoba untuk mengambil isi dari tabel CRICKETERS, dengan menggunakan pernyataan SELECT Anda akan mendapatkan hasil yang kosong seperti yang ditunjukkan di bawah ini -

postgres=# SELECT * FROM CRICKETERS;
 first_name | last_name | age | place_of_birth | country
------------+-----------+-----+----------------+---------
(0 rows)

Menghapus Data Menggunakan Python

Kelas kursor psycopg2 menyediakan metode dengan metode nama execute (). Metode ini menerima kueri sebagai parameter dan menjalankannya.

Oleh karena itu, untuk memasukkan data ke dalam tabel di PostgreSQL menggunakan python -

  • Impor psycopg2 paket.

  • Buat objek koneksi menggunakan connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.

  • Matikan mode komit otomatis dengan menyetel false sebagai nilai ke atribut autocommit.

  • Itu cursor() metode dari Connectionkelas pustaka psycopg2 mengembalikan objek kursor. Buat objek kursor menggunakan metode ini.

  • Kemudian, jalankan pernyataan DELETE dengan meneruskannya sebagai parameter ke metode execute ().

Contoh

Mengikuti kode Python menghapus catatan tabel EMPLOYEE dengan nilai usia lebih dari 25 -

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()

#Retrieving contents of the table
print("Contents of the table: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())

#Deleting records
cursor.execute('''DELETE FROM EMPLOYEE WHERE AGE > 25''')

#Retrieving data after delete
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

Contents of the table:
[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 26, 'M', 8300.0)
]
Contents of the table after delete operation:
[  
   ('Tripthi', 'Mishra', 24, 'F', 6000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0)
]

Anda dapat meletakkan tabel dari database PostgreSQL menggunakan pernyataan DROP TABLE.

Sintaksis

Berikut ini adalah sintaks dari pernyataan DROP TABLE di PostgreSQL -

DROP TABLE table_name;

Contoh

Asumsikan kita telah membuat dua tabel dengan nama CRICKETERS dan EMPLOYEES menggunakan query berikut -

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=#
postgres=# CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), 
   AGE INT, SEX CHAR(1), INCOME FLOAT
);
CREATE TABLE
postgres=#

Sekarang jika Anda memverifikasi daftar tabel menggunakan perintah “\ dt”, Anda dapat melihat tabel yang dibuat di atas sebagai -

postgres=# \dt;
            List of relations
 Schema | Name       | Type  | Owner
--------+------------+-------+----------
 public | cricketers | table | postgres
 public | employee   | table | postgres
(2 rows)
postgres=#

Pernyataan berikut menghapus tabel bernama Karyawan dari database -

postgres=# DROP table employee;
DROP TABLE

Karena Anda telah menghapus tabel Karyawan, jika Anda mengambil kembali daftar tabel, Anda hanya dapat mengamati satu tabel di dalamnya.

postgres=# \dt;
            List of relations
Schema  | Name       | Type  | Owner
--------+------------+-------+----------
public  | cricketers | table | postgres
(1 row)


postgres=#

Jika Anda mencoba menghapus tabel Karyawan lagi, karena Anda telah menghapusnya, Anda akan mendapatkan pesan kesalahan yang mengatakan "tabel tidak ada" seperti yang ditunjukkan di bawah ini -

postgres=# DROP table employee;
ERROR: table "employee" does not exist
postgres=#

Untuk mengatasi ini, Anda dapat menggunakan klausa IF EXISTS bersama dengan pernyataan DELTE. Ini menghapus tabel jika ada, melewatkan operasi DLETE.

postgres=# DROP table IF EXISTS employee;
NOTICE: table "employee" does not exist, skipping
DROP TABLE
postgres=#

Menghapus Seluruh Tabel Menggunakan Python

Anda dapat menjatuhkan tabel kapan pun Anda mau, menggunakan pernyataan DROP. Tetapi Anda harus sangat berhati-hati saat menghapus tabel yang ada karena data yang hilang tidak akan dipulihkan setelah menghapus tabel.

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()

#Doping EMPLOYEE table if already exists
cursor.execute("DROP TABLE emp")
print("Table dropped... ")

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

#Table dropped...

Saat menjalankan pernyataan PostgreSQL SELECT Anda dapat membatasi jumlah rekaman dalam hasilnya menggunakan klausa LIMIT.

Sintaksis

Berikut ini adalah sintaks klausa LMIT di PostgreSQL -

SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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=#

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

postgres=# insert into CRICKETERS values ('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values ('Jonathan', 'Trott', 38, 'CapeTown', '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

Pernyataan berikut mengambil 3 record pertama dari tabel Cricketers menggunakan klausa LIMIT -

postgres=# SELECT * FROM CRICKETERS LIMIT 3;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+-------------
 Shikhar    | Dhawan     | 33  | Delhi          | India
 Jonathan   | Trott      | 38  | CapeTown       | SouthAfrica
 Kumara     | Sangakkara | 41  | Matale         | Srilanka

   (3 rows)

Jika Anda ingin mendapatkan record mulai dari record tertentu (offset), Anda dapat melakukannya, menggunakan klausa OFFSET bersama dengan LIMIT.

postgres=# SELECT * FROM CRICKETERS LIMIT 3 OFFSET 2;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+----------
 Kumara     | Sangakkara | 41  | Matale         | Srilanka
 Virat      | Kohli      | 30  | Delhi          | India
 Rohit      | Sharma     | 32  | Nagpur         | India

   (3 rows)
postgres=#

Batasi Klausul Menggunakan Python

Contoh python berikut mengambil isi dari tabel bernama EMPLOYEE, membatasi jumlah record dalam hasil menjadi 2 -

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()

#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 2 OFFSET 2'''

#Executing the query
cursor.execute(sql)

#Fetching the data
result = cursor.fetchall();
print(result)

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]

Saat Anda telah membagi data dalam dua tabel, Anda dapat mengambil rekaman gabungan dari dua tabel ini menggunakan Gabungan.

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS dan memasukkan 5 record ke dalamnya seperti yang ditunjukkan di bawah ini -

postgres=# CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255), Last_Name VARCHAR(255), Age int, 
   Place_Of_Birth VARCHAR(255), Country VARCHAR(255)
);
postgres=# insert into CRICKETERS values ('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
postgres=# insert into CRICKETERS values ('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
postgres=# insert into CRICKETERS values ('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
postgres=# insert into CRICKETERS values ('Virat', 'Kohli', 30, 'Delhi', 'India');
postgres=# insert into CRICKETERS values ('Rohit', 'Sharma', 32, 'Nagpur', 'India');

Dan, jika kita telah membuat tabel lain dengan nama OdiStats dan memasukkan 5 record ke dalamnya sebagai -

postgres=# CREATE TABLE ODIStats (
   First_Name VARCHAR(255), Matches INT, Runs INT, AVG FLOAT, 
   Centuries INT, HalfCenturies INT
);
postgres=# insert into OdiStats values ('Shikhar', 133, 5518, 44.5, 17, 27);
postgres=# insert into OdiStats values ('Jonathan', 68, 2819, 51.25, 4, 22);
postgres=# insert into OdiStats values ('Kumara', 404, 14234, 41.99, 25, 93);
postgres=# insert into OdiStats values ('Virat', 239, 11520, 60.31, 43, 54);
postgres=# insert into OdiStats values ('Rohit', 218, 8686, 48.53, 24, 42);

Pernyataan berikut mengambil data yang menggabungkan nilai-nilai dalam dua tabel ini -

postgres=# SELECT
   Cricketers.First_Name, Cricketers.Last_Name, Cricketers.Country,
   OdiStats.matches, OdiStats.runs, OdiStats.centuries, OdiStats.halfcenturies
   from Cricketers INNER JOIN OdiStats ON Cricketers.First_Name = OdiStats.First_Name;
 first_name | last_name  | country     | matches | runs  | centuries | halfcenturies
------------+------------+-------------+---------+-------+-----------+---------------
 Shikhar    | Dhawan     | India       | 133     | 5518  | 17        | 27
 Jonathan   | Trott      | SouthAfrica | 68      | 2819  | 4         | 22
 Kumara     | Sangakkara | Srilanka    | 404     | 14234 | 25        | 93
 Virat      | Kohli      | India       | 239     | 11520 | 43        | 54
 Rohit      | Sharma     | India       | 218     | 8686  | 24        | 42
(5 rows)
   
postgres=#

Bergabung Menggunakan Python

Saat Anda telah membagi data dalam dua tabel, Anda dapat mengambil rekaman gabungan dari dua tabel ini menggunakan Gabungan.

Contoh

Mengikuti program python mendemonstrasikan penggunaan klausa JOIN -

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()

#Retrieving single row
sql = '''SELECT * from EMP INNER JOIN CONTACT ON EMP.CONTACT = CONTACT.ID'''

#Executing the query
cursor.execute(sql)

#Fetching 1st row from the table
result = cursor.fetchall();
print(result)

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0, 101, 101, '[email protected]', 'Hyderabad'), 
   ('Vinay', 'Battacharya', 20, 'M', 6000.0, 102, 102, '[email protected]', 'Vishakhapatnam'), 
   ('Sharukh', 'Sheik', 25, 'M', 8300.0, 103, 103, '[email protected] ', 'Pune'), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0, 104, 104, '[email protected]', 'Mumbai')
]

Kelas Cursor dari pustaka psycopg menyediakan metode untuk menjalankan perintah PostgreSQL dalam database menggunakan kode python.

Dengan menggunakan metodenya, Anda dapat menjalankan pernyataan SQL, mengambil data dari kumpulan hasil, memanggil prosedur.

Anda bisa membuat Cursor objek menggunakan metode cursor () dari objek / kelas Connection.

Contoh

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()

Metode

Berikut adalah berbagai metode yang disediakan oleh kelas / objek Cursor.

Sr.No. Metode & Deskripsi
1

callproc()

Metode ini digunakan untuk memanggil prosedur yang ada database PostgreSQL.

2

close()

Metode ini digunakan untuk menutup objek kursor saat ini.

3

executemany()

Metode ini menerima serangkaian daftar daftar parameter. Menyiapkan kueri MySQL dan menjalankannya dengan semua parameter.

4

execute()

Metode ini menerima kueri MySQL sebagai parameter dan menjalankan kueri yang diberikan.

5

fetchall()

Metode ini mengambil semua baris dalam kumpulan hasil kueri dan mengembalikannya sebagai daftar tupel. (Jika kita menjalankan ini setelah mengambil beberapa baris, ia mengembalikan yang tersisa)

6

fetchone()

Metode ini mengambil baris berikutnya dalam hasil kueri dan mengembalikannya sebagai tupel.

7

fetchmany()

Metode ini mirip dengan fetchone () tetapi, metode ini mengambil kumpulan baris berikutnya dalam kumpulan hasil kueri, bukan satu baris.

Properti

Berikut ini adalah properti dari kelas Cursor -

Sr.No. Deskripsi properti
1

description

Ini adalah properti hanya baca yang mengembalikan daftar yang berisi deskripsi kolom dalam kumpulan hasil.

2

lastrowid

Ini adalah properti hanya baca, jika ada kolom yang bertambah otomatis dalam tabel, ini mengembalikan nilai yang dihasilkan untuk kolom itu di operasi INSERT atau, UPDATE terakhir.

3

rowcount

Ini mengembalikan jumlah baris yang dikembalikan / diperbarui dalam kasus operasi SELECT dan UPDATE.

4

closed

Properti ini menentukan apakah kursor ditutup atau tidak, jika demikian ia mengembalikan benar, jika tidak salah.

5

connection

Ini mengembalikan referensi ke objek koneksi yang menggunakan kursor ini dibuat.

6

name

Properti ini mengembalikan nama kursor.

7

scrollable

Properti ini menentukan apakah kursor tertentu dapat digulir.