psycopg2.
cursor
Объект курсор
Поддерживает интерфейс контекстного менеджера
with psycopg2.connection() as connection:
with connection.cursor() as cursor:
pass
cur.execute("SELECT * FROM test;")
for record in cur:
print(record)
# (1, 100, "abc'def")
# (2, None, 'dada')
# (3, 42, 'bar')
arraysize
closed
connection
psycopg2.connection()
ссылка на объект соединения с БД,
к которому этот курсор относится
descriptions
psycopg2.extensions.Column()
описание одного поля результата
itersize
lastrowid
name
Имя курсора, если он был задан во время создания
query
Строка последнего выполненого запроса
cursor.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
cursor.query
# "INSERT INTO test (num, data) VALUES (42, E'bar')"
rowcount
rownumber
scrollable
statusmessage
cursor.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
cursor.statusmessage
# 'INSERT 0 1'
tzinfo_factory
withhold
callproc
(procname, parameters)cast
(oid, s)Преобразует значение из базы в питон объект
close
()Закрывает курсор
copy_expert
(sql, file, size=8192)cur.copy_expert("COPY test TO STDOUT WITH CSV HEADER", sys.stdout)
"""
id,num,data
1,100,abc'def
2,,dada
...
"""
copy_from
(file, table, sep='t', null='\N', size=8192, colums=None)Загружает данные из файлового объекта в таблицу
f = StringIO("42\tfoo\n74\tbar\n")
cur.copy_from(f, 'test', columns=('num', 'data'))
cur.execute("select * from test where id > 5;")
cur.fetchall()
# [(6, 42, 'foo'), (7, 74, 'bar')]
copy_to
(file, table, sep='t', null='\N', columns=None)Выгружает данные из таблицы в файловый объект
cursor.copy_to(sys.stdout, 'test', sep="|")
"""
1|100|abc'def
2|\N|dada
...
"""
execute
(query, vars=None)Выполняет указанный запрос
cursor.execute( 'SELECT * FROM airport WHERE city_code = %s', ('ALA', ) ) cursor.execute( 'SELECT * FROM engine_airport WHERE city_code = %(city_code)s', {'city_code': 'ALA'} )
from psycopg2 import sql
cur.execute(
sql.SQL("insert into {} values (%s, %s)").format(sql.Identifier('my_table')),
[10, 20]
)
.. code-block:: py
with conn.cursor() as cursor:
columns = ('country_name', 'airport_name')
stmt = (
sql.SQL('SELECT {} FROM {} LIMIT 5')
.format(
sql.SQL(',').join(map(sql.Identifier, columns)),
sql.Identifier('airport'))
)
cursor.execute(stmt)
for row in cursor:
print(row)
('Россия', 'Аэропорт')
...
executemany
(query, vars=None)fetchall
()Возвращает все оставшиеся записи
cursor.execute("SELECT * FROM test;")
cursor.fetchall()
# [(1, 100, "abc'def"), (2, None, 'dada'), (3, 42, 'bar')]
fetchmany
(size=cursor.size)Возвращает указанное количесвто записей, по умолчанию - все
cur.execute("SELECT * FROM test;")
cur.fetchmany(2)
# [(1, 100, "abc'def"), (2, None, 'dada')]
cur.fetchmany(2)
# [(3, 42, 'bar')]
cur.fetchmany(2)
# []
fetchone
()Возвращает одну запись
cursor.execute("SELECT * FROM test WHERE id = %s", (3,))
cursor.fetchone()
# (3, 42, 'bar')
mogrify
(operation, params)cursor.mogrify("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
# "INSERT INTO test (num, data) VALUES (42, E'bar')"
scroll
(value, mode='relative')Переместить курсор на указанную позицию
setinputsizes
(sizes)setoutputsizes
(sizes, column)