Опубликован: 08.05.2007 | Доступ: свободный | Студентов: 12881 / 3013 | Оценка: 4.13 / 3.77 | Длительность: 12:58:00
Дополнительный материал 2:

Справочник SQL

< Дополнительный материал 1 || Дополнительный материал 2: 123

Оператор 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'"
< Дополнительный материал 1 || Дополнительный материал 2: 123
Максим Матросов
Максим Матросов
Наталья Джабасова
Наталья Джабасова