Python PostgreSQL - Краткое руководство
PostgreSQL - это мощная объектно-реляционная база данных с открытым исходным кодом. У него более 15 лет активной фазы разработки и проверенная архитектура, которая заработала прочную репутацию за надежность, целостность и корректность данных.
Чтобы общаться с PostgreSQL с помощью Python, вам необходимо установить psycopg, адаптер, предоставляемый для программирования на Python, текущая версия этого psycog2.
psycopg2 был написан с целью сделать его очень маленьким, быстрым и стабильным, как скала. Он доступен в PIP (диспетчер пакетов Python)
Установка Psycog2 с помощью PIP
Прежде всего, убедитесь, что в вашей системе правильно установлены python и PIP, а PIP обновлен.
Чтобы обновить PIP, откройте командную строку и выполните следующую команду -
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
Затем откройте командную строку в режиме администратора и выполните команду pip install psycopg2-binary команда, как показано ниже -
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
Проверка
Чтобы проверить установку, создайте образец сценария Python со следующей строкой в нем.
import mysql.connector
Если установка прошла успешно, при ее выполнении вы не должны получить никаких ошибок -
D:\Python_PostgreSQL>import psycopg2
D:\Python_PostgreSQL>
PostgreSQL предоставляет собственную оболочку для выполнения запросов. Чтобы установить соединение с базой данных PostgreSQL, убедитесь, что вы правильно установили его в своей системе. Откройте приглашение оболочки PostgreSQL и передайте такие сведения, как сервер, база данных, имя пользователя и пароль. Если все данные, которые вы указали, уместны, устанавливается соединение с базой данных PostgreSQL.
При передаче сведений вы можете указать сервер, базу данных, порт и имя пользователя по умолчанию, предложенные оболочкой.
Установление соединения с использованием Python
Класс подключения psycopg2представляет / обрабатывает экземпляр соединения. Вы можете создавать новые подключения, используяconnect()функция. Он принимает основные параметры подключения, такие как имя базы данных, пользователь, пароль, хост, порт, и возвращает объект подключения. Используя эту функцию, вы можете установить соединение с PostgreSQL.
пример
Следующий код Python показывает, как подключиться к существующей базе данных. Если база данных не существует, она будет создана, и, наконец, будет возвращен объект базы данных. Имя базы данных PostgreSQL по умолчанию - postrgre. Поэтому мы указываем его как имя базы данных.
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',
)
Вывод
Connection established to: (
'PostgreSQL 11.5, compiled by Visual C++ build 1914, 64-bit',
)
Вы можете создать базу данных в PostgreSQL с помощью оператора CREATE DATABASE. Вы можете выполнить этот оператор в приглашении оболочки PostgreSQL, указав имя создаваемой базы данных после команды.
Синтаксис
Ниже приводится синтаксис оператора CREATE DATABASE.
CREATE DATABASE dbname;
пример
Следующий оператор создает базу данных с именем testdb в PostgreSQL.
postgres=# CREATE DATABASE testdb;
CREATE DATABASE
Вы можете просмотреть базу данных в PostgreSQL с помощью команды \ l. Если вы проверите список баз данных, вы можете найти вновь созданную базу данных следующим образом:
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)
Вы также можете создать базу данных в PostgreSQL из командной строки, используя команду createdb , оболочку для оператора SQL CREATE DATABASE.
C:\Program Files\PostgreSQL\11\bin> createdb -h localhost -p 5432 -U postgres sampledb
Password:
Создание базы данных с использованием Python
Класс курсора psycopg2 предоставляет различные методы для выполнения различных команд PostgreSQL, выборки записей и копирования данных. Вы можете создать объект курсора, используя метод cursor () класса Connection.
Метод execute () этого класса принимает запрос PostgreSQL в качестве параметра и выполняет его.
Поэтому, чтобы создать базу данных в PostgreSQL, выполните запрос CREATE DATABASE, используя этот метод.
пример
В следующем примере Python создается база данных с именем mydb в базе данных 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()
Вывод
Database created successfully........
Вы можете создать новую таблицу в базе данных PostgreSQL с помощью оператора CREATE TABLE. При выполнении вам необходимо указать имя таблицы, имена столбцов и их типы данных.
Синтаксис
Ниже приведен синтаксис оператора CREATE TABLE в PostgreSQL.
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
пример
В следующем примере создается таблица с именем CRICKETERS в 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=#
Вы можете получить список таблиц в базе данных в PostgreSQL, используя команду \ dt. После создания таблицы, если вы можете проверить список таблиц, вы можете увидеть в нем вновь созданную таблицу следующим образом:
postgres=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
(1 row)
postgres=#
Таким же образом вы можете получить описание созданной таблицы, используя \ d, как показано ниже -
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=#
Создание таблицы с использованием Python
Чтобы создать таблицу с использованием python, вам необходимо выполнить оператор CREATE TABLE, используя метод execute () курсора pyscopg2 .
пример
В следующем примере Python создается таблица с именем employee.
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()
Вывод
Table created successfully........
Вы можете вставить запись в существующую таблицу в 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........
Вы можете получить содержимое существующей таблицы в PostgreSQL с помощью оператора SELECT. В этом операторе вам нужно указать имя таблицы, и она вернет ее содержимое в табличном формате, который известен как набор результатов.
Синтаксис
Ниже приведен синтаксис оператора SELECT в PostgreSQL:
SELECT column1, column2, columnN FROM table_name;
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующий запрос SELECT извлекает значения столбцов FIRST_NAME, LAST_NAME и COUNTRY из таблицы 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)
Если вы хотите получить все столбцы каждой записи, вам необходимо заменить имена столбцов на «⚹», как показано ниже -
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=#
Получение данных с помощью Python
READ Операция с любой базой данных означает получение некоторой полезной информации из базы данных. Вы можете получить данные из PostgreSQL, используя метод fetch (), предоставляемый psycopg2.
Класс Cursor предоставляет три метода, а именно fetchall (), fetchmany () и fetchone (), где:
Метод fetchall () извлекает все строки в наборе результатов запроса и возвращает их в виде списка кортежей. (Если мы выполним это после получения нескольких строк, он вернет оставшиеся).
Метод fetchone () выбирает следующую строку в результате запроса и возвращает ее как кортеж.
Note - Набор результатов - это объект, который возвращается, когда объект курсора используется для запроса таблицы.
пример
Следующая программа Python подключается к базе данных mydb из PostgreSQL и извлекает все записи из таблицы с именем 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()
Вывод
('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)
]
При выполнении операций SELECT, UPDATE или DELETE вы можете указать условие для фильтрации записей с помощью предложения WHERE. Операция будет выполнена с записями, удовлетворяющими данному условию.
Синтаксис
Ниже приведен синтаксис предложения WHERE в PostgreSQL:
SELECT column1, column2, columnN
FROM table_name
WHERE [search_condition]
Вы можете указать условие поиска, используя сравнение или логические операторы. как>, <, =, LIKE, NOT и т. д. Следующие примеры поясняют эту концепцию.
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующий оператор SELECT извлекает записи, возраст которых превышает 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=#
Предложение Where с использованием Python
Чтобы получить определенные записи из таблицы с помощью программы python, выполните оператор SELECT с предложением WHERE , передав его в качестве параметра вexecute() метод.
пример
Следующий пример python демонстрирует использование команды WHERE с использованием 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()
Вывод
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]
Обычно, если вы пытаетесь получить данные из таблицы, вы получаете записи в том же порядке, в котором вы их вставляли.
Используя ORDER BY предложение, при извлечении записей таблицы вы можете сортировать результирующие записи в порядке возрастания или убывания в зависимости от нужного столбца.
Синтаксис
Ниже приводится синтаксис предложения ORDER BY в PostgreSQL.
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующий оператор SELECT извлекает строки таблицы CRICKETERS в порядке возрастания их возраста -
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:
Вы можете использовать более одного столбца для сортировки записей таблицы. Следующие операторы SELECT сортируют записи таблицы CRICKETERS на основе возраста столбцов и 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)
По умолчанию ORDER BYПредложение сортирует записи таблицы в порядке возрастания. Вы можете расположить результаты в порядке убывания, используя DESC как -
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 с использованием Python
Чтобы получить содержимое таблицы в определенном порядке, вызовите метод execute () для объекта курсора и передайте оператор SELECT вместе с предложением ORDER BY в качестве параметра для него.
пример
В следующем примере мы создаем таблицу с именем и сотрудником, заполняем ее и извлекаем записи в порядке возрастания (возрастания) с помощью предложения 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()
Вывод
[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]
Вы можете изменить содержимое существующих записей таблицы в PostgreSQL с помощью оператора UPDATE. Чтобы обновить определенные строки, вам необходимо использовать предложение WHERE вместе с ним.
Синтаксис
Ниже приведен синтаксис оператора UPDATE в PostgreSQL:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующее утверждение изменяет возраст игрока в крикет, имя которого Shikhar -
postgres=# UPDATE CRICKETERS SET AGE = 45 WHERE FIRST_NAME = 'Shikhar' ;
UPDATE 1
postgres=#
Если вы извлечете запись, в которой ПЕРВОЕ ИМЯ - Шихар, вы заметите, что значение возраста было изменено на 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=#
Если вы не использовали предложение WHERE, значения всех записей будут обновлены. После оператора UPDATE возраст всех записей в таблице CRICKETERS увеличивается на 1 -
postgres=# UPDATE CRICKETERS SET AGE = AGE+1;
UPDATE 5
Если вы извлекаете содержимое таблицы с помощью команды SELECT, вы можете увидеть обновленные значения как -
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)
Обновление записей с помощью Python
Класс курсора psycopg2 предоставляет метод с именем execute () method. Этот метод принимает запрос в качестве параметра и выполняет его.
Поэтому для вставки данных в таблицу в PostgreSQL с помощью python -
импорт psycopg2 пакет.
Создайте объект подключения с помощью connect() , передав ему имя пользователя, пароль, хост (необязательно по умолчанию: localhost) и базу данных (необязательно) в качестве параметров.
Отключите режим автоматической фиксации, установив false в качестве значения атрибута autocommit.
В cursor() метод ConnectionКласс библиотеки psycopg2 возвращает объект курсора. Создайте объект курсора, используя этот метод.
Затем выполните оператор UPDATE, передав его в качестве параметра методу execute ().
пример
Следующий код Python обновляет содержимое таблицы 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()
#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()
Вывод
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)
]
Вы можете удалить записи в существующей таблице, используя DELETE FROMвыписка из базы данных PostgreSQL. Чтобы удалить определенные записи, вам необходимо использовать предложение WHERE вместе с ним.
Синтаксис
Ниже приведен синтаксис запроса DELETE в PostgreSQL:
DELETE FROM table_name [WHERE Clause]
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующее утверждение удаляет запись игрока в крикет, фамилия которого «Сангаккара».
postgres=# DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
DELETE 1
Если вы извлечете содержимое таблицы с помощью оператора SELECT, вы увидите только 4 записи, так как мы удалили одну.
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)
Если вы выполните оператор DELETE FROM без предложения WHERE, все записи из указанной таблицы будут удалены.
postgres=# DELETE FROM CRICKETERS;
DELETE 4
Поскольку вы удалили все записи, если вы попытаетесь получить содержимое таблицы CRICKETERS, используя оператор SELECT, вы получите пустой набор результатов, как показано ниже -
postgres=# SELECT * FROM CRICKETERS;
first_name | last_name | age | place_of_birth | country
------------+-----------+-----+----------------+---------
(0 rows)
Удаление данных с помощью Python
Класс курсора psycopg2 предоставляет метод с именем execute () method. Этот метод принимает запрос в качестве параметра и выполняет его.
Поэтому для вставки данных в таблицу в PostgreSQL с помощью python -
импорт psycopg2 пакет.
Создайте объект подключения с помощью connect() , передав ему имя пользователя, пароль, хост (необязательно по умолчанию: localhost) и базу данных (необязательно) в качестве параметров.
Отключите режим автоматической фиксации, установив false в качестве значения атрибута autocommit.
В cursor() метод ConnectionКласс библиотеки psycopg2 возвращает объект курсора. Создайте объект курсора, используя этот метод.
Затем выполните оператор DELETE, передав его в качестве параметра методу execute ().
пример
Следующий код Python удаляет записи таблицы EMPLOYEE со значениями возраста более 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()
Вывод
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)
]
Вы можете удалить таблицу из базы данных PostgreSQL с помощью оператора DROP TABLE.
Синтаксис
Ниже приводится синтаксис оператора DROP TABLE в PostgreSQL:
DROP TABLE table_name;
пример
Предположим, мы создали две таблицы с именами CRICKETERS и EMPLOYEES, используя следующие запросы:
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=#
Теперь, если вы проверите список таблиц с помощью команды «\ dt», вы можете увидеть созданные выше таблицы как -
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
public | employee | table | postgres
(2 rows)
postgres=#
Следующий оператор удаляет таблицу с именем Employee из базы данных -
postgres=# DROP table employee;
DROP TABLE
Поскольку вы удалили таблицу Employee, если вы снова получите список таблиц, вы увидите в нем только одну таблицу.
postgres=# \dt;
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | cricketers | table | postgres
(1 row)
postgres=#
Если вы попытаетесь удалить таблицу сотрудников еще раз, поскольку вы уже удалили ее, вы получите сообщение об ошибке «таблица не существует», как показано ниже -
postgres=# DROP table employee;
ERROR: table "employee" does not exist
postgres=#
Чтобы решить эту проблему, вы можете использовать предложение IF EXISTS вместе с оператором DELTE. Это удаляет таблицу, если она существует, иначе пропускает операцию DLETE.
postgres=# DROP table IF EXISTS employee;
NOTICE: table "employee" does not exist, skipping
DROP TABLE
postgres=#
Удаление всей таблицы с помощью Python
Вы можете удалить таблицу в любое время, используя оператор DROP. Но вам нужно быть очень осторожным при удалении любой существующей таблицы, потому что потерянные данные не будут восстановлены после удаления таблицы.
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()
Вывод
#Table dropped...
При выполнении оператора SELECT PostgreSQL вы можете ограничить количество записей в его результате с помощью предложения LIMIT.
Синтаксис
Ниже приведен синтаксис предложения LMIT в PostgreSQL:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
пример
Предположим, мы создали таблицу с именем CRICKETERS, используя следующий запрос -
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=#
И если мы вставили в него 5 записей, используя инструкции INSERT как -
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
Следующий оператор извлекает первые 3 записи таблицы Cricketers с помощью предложения 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)
Если вы хотите получить записи, начиная с определенной записи (смещения), вы можете сделать это, используя предложение OFFSET вместе с 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=#
Предельное предложение с использованием Python
Следующий пример python извлекает содержимое таблицы с именем EMPLOYEE, ограничивая количество записей в результате до 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()
Вывод
[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]
Когда вы разделили данные на две таблицы, вы можете получить объединенные записи из этих двух таблиц с помощью объединений.
пример
Предположим, мы создали таблицу с именем CRICKETERS и вставили в нее 5 записей, как показано ниже -
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');
И, если мы создали другую таблицу с именем OdiStats и вставили в нее 5 записей как -
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);
Следующий оператор извлекает данные, объединяющие значения в этих двух таблицах -
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=#
Присоединяется с использованием Python
Когда вы разделили данные на две таблицы, вы можете получить объединенные записи из этих двух таблиц с помощью объединений.
пример
Следующая программа python демонстрирует использование предложения 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()
Вывод
[
('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')
]
Класс Cursor библиотеки psycopg предоставляет методы для выполнения команд PostgreSQL в базе данных с использованием кода Python.
Используя его методы, вы можете выполнять операторы SQL, извлекать данные из наборов результатов, вызывать процедуры.
Вы можете создать Cursor объект с помощью метода cursor () объекта / класса Connection.
пример
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()
Методы
Ниже приведены различные методы, предоставляемые классом / объектом Cursor.
Sr.No. | Методы и описание |
---|---|
1 | callproc() Этот метод используется для вызова существующих процедур базы данных PostgreSQL. |
2 | close() Этот метод используется для закрытия текущего объекта курсора. |
3 | executemany() Этот метод принимает серию списков параметров list. Подготавливает запрос MySQL и выполняет его со всеми параметрами. |
4 | execute() Этот метод принимает запрос MySQL в качестве параметра и выполняет данный запрос. |
5 | fetchall() Этот метод извлекает все строки в наборе результатов запроса и возвращает их как список кортежей. (Если мы выполним это после получения нескольких строк, он вернет оставшиеся) |
6 | fetchone() Этот метод выбирает следующую строку в результате запроса и возвращает ее как кортеж. |
7 | fetchmany() Этот метод похож на fetchone (), но он извлекает следующий набор строк в результирующем наборе запроса вместо одной строки. |
Свойства
Ниже приведены свойства класса Cursor -
Sr.No. | Описание недвижимости |
---|---|
1 | description Это свойство только для чтения, которое возвращает список, содержащий описание столбцов в наборе результатов. |
2 | lastrowid Это свойство только для чтения, если в таблице есть какие-либо автоматически увеличивающиеся столбцы, оно возвращает значение, сгенерированное для этого столбца в последней операции INSERT или UPDATE. |
3 | rowcount Это возвращает количество возвращенных / обновленных строк в случае операций SELECT и UPDATE. |
4 | closed Это свойство указывает, закрыт ли курсор или нет, если да, то возвращает true, иначе false. |
5 | connection Это возвращает ссылку на объект соединения, с помощью которого был создан этот курсор. |
6 | name Это свойство возвращает имя курсора. |
7 | scrollable Это свойство указывает, можно ли прокручивать конкретный курсор. |