Еще один способ добавить значения в таблицу — перечислить значения последовательно по имени поля. В этом случае не нужно указывать столбцы, в которых должны храниться данные. Однако в этом случае при написании команды INSERT необходимо быть внимательным, чтобы гарантировать, что порядок, в котором данные указываются в команде INSERT, совпадает с порядком перечисления полей в таблице.
Рассмотрим пример добавления новой записи в таблицу employees.
INSERT INTO
employees
VALUES ('9', 'Martin', 'Ricky', 'Sales Support Agent', '2', '1975-02-07', '2018-01-05', '123 Houston St', 'New York', 'NY', 'United States', '11201', '(347) 525-8588', '', '[email protected]')
Рис. 127
Очень важно проследить, чтобы порядок, в котором данные указываются в команде INSERT, соответствовал порядку следования полей в целевой таблице. Поэтому рекомендуется сначала изучить целевую таблицу, и обратите внимание на порядок, в котором появляются поля.
На вкладке Database Structure (Структура базы данных) мы видим структуру таблицы employees. При использовании команды INSERT поля от EmployeeId до Email должны быть указаны именно в таком порядке.
Практические задания
• Проанализируйте результат выполнения команды INSERT.
• У нового сотрудника, Ricky Martin, нет номера факса. Как это будет выражено в условии INSERT?
• Вставьте новую запись (сотрудника) в таблицу employees.
• Выполните запрос еще раз, но используйте существующий первичный ключ. Какое сообщение об ошибке вы получите?
Внимание
При добавлении новых записей, в которых для какого-либо поля не существует значения, вам необходимо добавить пару пустых кавычек ' ' для этого несуществующего значения. В приведенном выше примере мы пропустили номер факса при помощи пары пустых кавычек в таблице employees.
Обновление данных и ключевое слово SET
Команда UPDATE используется для изменения существующих данных в таблице. Как правило, команда UPDATE применяется с условием WHERE. Условие WHERE необходимо для указания строк, которые будут обновлены. Без условия WHERE оператор UPDATE обновит все содержащиеся в таблице строки.
Следующий оператор обновляет запись о сотруднике, которую мы добавили в предыдущем разделе:
UPDATE
employees
SET PostalCode = '11202'
WHERE
EmployeeId = 9
Внимание
Если сотрудники еще не добавлены, выполнение этого кода приведет к ошибке NoSuchColumn (Столбец не существует).
Анализируя предыдущий синтаксис, мы видим, что таблица employees указывается после ключевого слова UPDATE. Затем следует ключевое слово SET, и именно здесь указан столбец в таблице employees, который необходимо обновить. В нашем примере это поле PostalCode. За ним следует знак равенства = и новое значение, которое заменит старое значение. В нашем примере это значение '11202' (заключено в одинарные кавычки, так как почтовый индекс является строковым значением). После ключевого слова SET следует условие WHERE, которое позволяет нам точно указать, какую запись о сотруднике мы собираемся обновить. Запись EmployeeId=9 означает, что обновляется только эта запись и никакая другая.
Практические задания
• Проанализируйте результат выполнения команды UPDATE.
• Составьте еще один оператор UPDATE и измените номер телефона для записи Ricky Martin.
• Сколько строк будет затронуто при выполнении оператора UPDATE, если в нем не будет условия WHERE?
Внимание
Особое внимание следует уделить добавлению условия WHERE в UPDATE. Если условие WHERE не включено и в нем не указаны необходимые для изменения записи, вы можете обновить записи, которые вы не собирались обновлять, что может привести к серьезным проблемам.
Удаление данных
Оператор DELETE используется для удаления существующих записей в таблице. Этот оператор, как и UPDATE, обычно используется с условием WHERE. Если условие WHERE отсутствует, оператор DELETE удалит все строки в таблице.
Примечание
Как и в случае с UPDATE, не стремитесь сразу выполнять оператор DELETE, сначала напишите оператор SELECT, используя те же таблицы и условие WHERE. Таким образом вы сможете предварительно проанализировать, что вы собираетесь удалить. Как только оператор SELECT вернет ожидаемые записи, вы можете выполнить оператор DELETE.
Сначала напишем оператор SELECT, чтобы проверить данные, которые мы собираемся удалить.
SELECT * FROM
employees
WHERE
EmployeeId = 9
Рассмотрим пример удаления записи, обновленной в предыдущем разделе.
DELETE FROM
employees
WHERE
EmployeeId = 9
Синтаксис оператора DELETE начинается с двух ключевых слов, DELETEFROM, за которыми следует имя таблицы, откуда мы собираемся удалить запись. В нашем примере мы удаляем запись из таблицы employees. После имени таблицы следует условие WHERE, которое позволяет нам точно указать, какую запись о сотруднике необходимо удалить. Запись EmployeeId=9 означает, что будет удалена только эта запись и никакая другая.
Практические задания
• Проанализируйте результат выполнения оператора DELETE.