Выполнение запроса
Назначение
Подготовка и выполнение SQL-запроса.
Синтаксические правила
cursor.execute(<SQL-запрос>[,<параметры>])
<SQL-запрос> ::= символьная строка
<параметры> ::= <окс><python-элемент типа tuple> <зкс>
| <опс> <python-элемент типа list> <зпс>
| <офс> <python-элемент типа dict> <зфс>
<окс>::= (
<зкс>::= )
<опс>::= [
<зпс>::= ]
<офс>::= {
<зфс>::= }
<python-элемент типа tuple> ::=
см. спецификацию языка программирования Python
<python-элемент типа list> ::=
см. спецификацию языка программирования Python
<python-элемент типа dict> ::=
см. спецификацию языка программирования Python
Примечание
Синтаксис SQL-запросов (в том числе параметризованных) описан в документе «Справочник по SQL» (см. также атрибут paramstyle класса Connection).
Описание
Ссылка на SQL-запрос сохраняется курсором. Если объект операции SQL-запроса передается снова на обработку, курсор может оптимизировать свое поведение (не выполнять повторную трансляцию SQL-запроса, а использовать его претранслированный вариант). Это наиболее эффективно для алгоритмов, в которых много раз используется одна и та же операция с привязкой различных параметров.
Привязка значений к неименованным параметрам выполняется в порядке следования значений:
-
в случае передачи параметров в виде python-элемента типа tuple:
cursor.execute("insert into PEOPLE (ID, NAME) values (?, ?)", (1, "BORIS")) -
в случае передачи параметров в виде python-элемента типа list:
cursor.execute("insert into PEOPLE (ID, NAME) values (?, ?)", [1, "BORIS"])В результате в обоих вариантах будет добавлена строка со значением полей:
ID=1, NAME="BORIS", BDAY= значение по умолчанию (если определено или NULL).
-
привязка значений к именованным параметрам выполняется с помощью python-элемента типа dict, например:
cursor.execute("insert into PEOPLE (ID, NAME, BDAY) values (:I, :N, :D)", {"I" : 1, "N" : "BORIS", "D" : LinPy.Date(1980, 5, 27)})В результате будет добавлена строка со значением полей:
ID=1, NAME="BORIS", BDAY= LinPy.Date(1980, 5, 27)
Возвращаемое значение
Нет.