Справочник SQL
Оператор INSERT
Оператор INSERT используется для добавления записей в таблицу базы данных. Его общий формат для добавления одной записи показан ниже:
INSERT INTO TableName [(FieldName1 [,FieldName2]...)] VALUES (Value1 [,Value2]...)
После ключевых слов INSERT INTO следует имя таблицы, в которую будет добавлена новая запись. При желании за именем таблицы может следовать заключенный в скобки и разделенный запятыми список имен полей, для которых задаются значения. Предложение VALUES задает, в скобках, разделенный запятыми список соответствующих значений данных для добавленных полей. Оператор INSERT не возвращает никакого множества записей.
Обычно все поля именуются и для них задаются значения, но это не обязательно. Те поля, имена и соответствующие значения которых указаны, вводятся в добавляемую запись, неопределенные поля добавляются, но не имеют присвоенных значений. Если имена полей не задаются, все значения присваиваются, начиная с первого поля.
Наиболее распространенный и простой способ определить новую запись состоит в указании имен всех полей и задании для каждого из них значения:
INSERT INTO MyTable (Field1, Field2, Field3, Field4, Field5) VALUES('a text field value', 'a memo field value', 100, 3000, #01/01/04#)
В этом примере в таблицу MyTable добавляется новая запись, содержащая пять полей. Имена полей задаются вместе со значениями присваиваемых данных, соответственно, для каждого поля. Значения для полей, которые определены как текстовые поля в таблице, должны быть помещены в одиночные кавычки (апострофы); значения для числовых полей не заключаются в одиночные кавычки; значения для полей даты/времени заключаются в символы #. Однако, вполне допустимо вставлять новую запись только с некоторыми полями, имеющими значения, если эти значения соответствуют именам полей и типам данных:
INSERT INTO MyTable (Field1, Field5) VALUES('a text field value', #01/01/04#)
Если вставляемое текстовое поле содержит апострофы, они должны быть заменены двойными апострофами. Смотрите обсуждение использования апострофов в значениях данных при рассмотрении оператора SELECT.
Вставка переменных в операторы INSERT
Как и в случае оператора SELECT, обычно операторы SQL INSERT создаются сценарием, который вставляет переменные данные в операторы.
SQLString = "INSERT INTO Products (ItemNo, ItemName, ItemPrice, ItemQty, ItemDate) VALUES ('$ItemNo', '$ItemName', $ItemPrice,$ItemQuantity,#$PurchaseDate#)"
Эта конструкция создает оператор INSERT следующего вида:
SQLString = "INSERT INTO Products (ItemNo, ItemName, ItemPrice, ItemQty, ItemDate) VALUES ('AAA111', 'Software', 100.00, 15, #07/15/04#)"
Оператор DELETE
Оператор DELETE используется для удаления записей из таблицы базы данных. Обычный формат оператора для удаления одной записи показан ниже:
DELETE FROM TableName WHERE criteria
За ключевыми словами DELETE FROM следует имя таблицы, из которой будет удалена запись. Предложение WHERE задает идентификацию записи. Оператор DELETE не возвращает никакого множества записей.
Предложение WHERE
За ключевым словом WHERE следует одно или несколько критериев выбора. Обычно запись для удаления определяют через равенство значению ее уникального "ключевого" поля.
DELETE FROM Products WHERE ItemNo = '99999'
Однако можно применять для идентификации записи любой из существующих условных операторов:
Кроме того, можно объединять условия, используя логические операторы AND, OR и NOT для расширения или сужения области выбора:
DELETE FROM Products WHERE ItemQuantity = 0 AND NOT ItemType = 'Software'
В этом случае можно удалить больше одной записи. Если предложение WHERE отсутствует, удаляются все записи в таблице.
При сравнении с текстовым полем значение критерия должно быть заключено в одиночные кавычки; при тестировании числового поля значение данных в кавычки не заключается; при тестировании поля даты/времени значение критерия окружается символами #.
Если сравниваемое текстовое поле содержит апострофы, они должны быть заменены двойными апострофами. Смотрите обсуждение использования апострофов в значениях данных при рассмотрении оператора SELECT.
Как и в случае операторов SELECT и INSERT оператор DELETE обычно создается сценарием с помощью объединения литеральных строк и переменных.
SQLString = "DELETE FROM Products WHERE PurchaseDate < #$TheDate# OR (ItemQty < $TheQuantity AND ItemType = '$TheType')"
Этот код разрешается в оператор DELETE следующего вида:
SQLString = "DELETE FROM Products WHERE PurchaseDate < #07/15/02# OR (ItemQty < 10 AND ItemType = 'Software')"
Оператор UPDATE
Оператор UPDATE используется для изменения записей в таблице базы данных. Общий формат оператора для обновления одной записи показан ниже.
UPDATE TableName SET (FieldName1=value1 [,FieldName2=value2]...) WHERE criteria
За ключевым словом UPDATE следует имя таблицы, которая будет обновлена. За ключевым словом SET в скобках следует разделенный запятыми список имен полей и связанных с ними значений данных, которые изменяют текущие значения, указанной записи в таблице. Предложение WHERE задает критерий для поиска определенной записи для обновления. Не требуется изменять значения всех полей в записи; определяют только те поля и значения, которые будут изменены.
UPDATE MyTable SET Field2 = 'new text value', Field3 = 200, Field5 = #02/02/04# WHERE Field1 = 'KEY001'
В этом примере три поля изменяются в записи, которая определяется значением 'KEY001' в Field1 в таблице MyTable. Значения для полей, которые определяются как текстовые поля в таблице, должны заключаться в одиночные кавычки (апострофы); значения для числовых полей не заключаются в одиночные кавычки; значения для полей даты/времени заключаются в символы #.
Предложение WHERE
За ключевым словом WHERE следует один или несколько критериев выбора. Обычно запись для изменения выбирают, сравнивая со значением ее уникального "ключевого" поля.
Можно, однако, использовать для идентификации записи любые принятые условные операторы:
Кроме того, можно объединять различные проверки с помощью логических операторов AND, OR и NOT для расширения или сужения области выбора:
UPDATE Products SET ItemQuantity = 0 WHERE ItemQuantity < 10 AND NOT ItemType = 'Software'
В этом случае может обновляться более одной записи. Если предложение WHERE не включено в оператор, то все записи в таблице, имеющие указанные поля, будут изменены.
Если текстовое поле содержит апострофы, то они должны быть изменены на двойные апострофы. Смотрите обсуждение использования апострофов в значениях данных при рассмотрении оператора SELECT.
Как и в случае операторов SELECT, INSERT и DELETE, оператор UPDATE создается обычно в сценарии с помощью объединения литеральных строк и переменных.
SQLString = "UPDATE Products SET ItemQty = 0 WHERE ItemQuantity < $TheQuantity AND NOT ItemType = '$TheType'"
Этот код разрешается в оператор UPDATE следующего вида:
SQLString = "UPDATE Products SET ItemQty = 0 WHERE ItemQuantity < 10 AND NOT ItemType = 'Software'"