Запрос insert sql: INSERT | SQL | SQL-tutorial.ru

Использование операторов INSERT, UPDATE и DELETE | Windows IT Pro/RE

Иначительная часть работы многих администраторов баз данных и администраторов SQL Server состоит в обеспечении текущей работы базы данных. Сюда относится добавление, изменение и удаление данных из таблиц

Иначительная часть работы многих администраторов баз данных и администраторов SQL Server состоит в обеспечении текущей работы базы данных. Сюда относится добавление, изменение и удаление данных из таблиц. Запросы на T-SQL позволяют легко выполнять эти задания. Нужно только использовать предложения INSERT, UPDATE и DELETE. Перед тем как я покажу, как применять эти предложения, вспомним несколько вещей, которые нужно сделать до начала работы.

Предварительные условия

Примеры предложений INSERT, UPDATE и DELETE, которые я использую в этой статье, запускаются на простой базе данных MyDB, содержащей несколько временных таблиц и таблицу MyTable. Таблица MyTable используется для хранения названий разных временных таблиц. Единственная цель временных таблиц — заполнить пространство. Просто присутствуя, они обеспечивают наличие данных в таблице sysobjects, которая используется в качестве источника данных для вставки данных в MyTable.

Предполагая наличие полномочий, необходимых для создания баз данных и таблиц, для запуска предложений, модифицирующих данные, можно создать MyDB, MyTable и временные таблицы при помощи файлов MyDB.sql и MyTable.sql. Эти запросы можно увидеть в листингах 1 и 2.

Для запуска запроса откройте окно запроса либо в SQL Server 2005 SQL Server Management Studio (далее SSMS), либо в SQL Server 2000 Query Analyzer и скопируйте код MyDB.sql в окно. В двух записях FILENAME замените C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAMyDB.mdf на путь на имеющемся сервере. Выполните запрос для создания MyDB. Для разработки MyTable и временных таблиц скопируйте код в MyTable. sql в окно запроса и выполните его.

Перед тем как приступать к работе с данными любой таблицы, нужно ознакомиться с ее структурой. Для этого открываем таблицу MyTable и выполняем следующие действия.

Добавление одной записи

Стандартное предложение INSERT, которое добавляет одиночную запись (или строку) в таблицу, состоит из трех частей и имеет вид

INSERT INTO Part1 (Part2) VALUES (Part3)

В части 1 определена целевая таблица, которая будет содержать новую запись. В части 2 перечисляются названия полей в целевой таблице, для которой имеются данные. Нужно заключить перечень в круглые скобки и использовать запятые для отделения названий полей. В части 3 обеспечивается добавление данных. Когда надо будет установить фактические значения данных, используется параметр VALUES и следующие за ним значения. Требуется заключить перечень значений данных в круглые скобки и отделять значения запятыми. Если это значение символьное, вроде строки или даты, его также нужно заключить в одинарные кавычки (‘‘). Например, выполнение следующего предложения вставляет значения данных TestTable и 2007–09–22 в поля ObjectName и Creation-Date таблицы MyTable, соответственно:

INSERT INTO MyTable (ObjectName, CreationDate) VALUES (‘TestTable’, ‘007–09–22’)

Те, кто уже знает мои приемы работы с таблицей MyTable, возможно, заметили, что я просто установил два или три поля в предложение INSERT. Первое поле — это поле идентификатора, которое имеет специальное назначение. Данные этого поля добавляются автоматически, и его значения увеличиваются с каждой новой вставленной записью. Это важное свойство SQL Server, о котором нужно знать. Чтобы узнать больше о типах идентификационных данных, загляните в SQL Server Books Online (BOL) в раздел IDENTITY (Свойство) на msdn2.microsoft.com/en-us/library/ms186775.aspx.

Чтобы просмотреть вновь вставленную запись, выполните следующее предложение:

SELECT * FROM MyTable

На рисунке 1 показано, как выглядит результат.

Добавление результатов предложением SELECT

Я уже показывал, как получить данные из базы данных, используя предложение SELECT. Можно задействовать оператор INSERT для сохранения данных, извлеченных предложением SELECT, в таблицу. Как и оператор INSERT для отдельной записи, оператор INSERT, который сохраняет результаты предложения SELECT, имеет три части: заданная база данных (часть 1), названия полей (часть 2) и данные (часть 3). Тем не менее вместо параметра VALUES для определения актуальных значений данных в части 3 используется предложение SELECT, которое извлекает данные из другого источника. Например, когда выполняется к базе данных MyDB, запрос

INSERT INTO MyTable (ObjectName, CreationDate) SELECT name, crdate FROM sysobjects WHERE type = ‘U’ ORDER BY name

вставляет в новую таблицу MyTable записи, содержащие название и дату разработки всех пользовательских таблиц в MyDB, упорядоченных в алфавитном порядке в соответствии с названиями. Таким образом, предполагая, что выполнено предложение INSERT с одиночной записью, описанное ранее, результаты этого запроса должны выглядеть так же, как и результаты, показанные на рисунке 2, с двумя исключениями. Значения CreationDate для MyTable и временных таблиц будут содержать дату и время запуска MyTable.sql. Второе поле ObjectName будет шире. Я сократил его из-за недостатка места.

На рисунке 2 TestTable — только первая запись. Имя условия ORDER BY только обращается к новым записям, которые вставляет в данный момент оператор SELECT. Таблица TestTable была предварительно дополнена при помощи оператора, состоящего из единичной записи оператора INSERT.

Можно использовать любой оператор SELECT, до тех пор пока типы данных в полях, перечисленных в части 2 оператора INSERT, соответствуют полям, определенным в предложении SELECT. Это дает возможность собрать все типы данных. Тем не менее используйте новое знание с осторожностью, чтобы не вставить миллионы записей на занятый сервер или на сервер с ограниченным дисковым пространством.

Модернизация данных

Теперь, когда мы умеем добавлять данные, давайте посмотрим, как работает оператор UPDATE. Простой оператор UPDATE обычно состоит из трех частей:

UPDATE Part1 SET Part2 WHERE Part3

В части 1 определена целевая таблица. В части 2 определены поля, которые должны быть изменены, вместе с новыми данными для каждого поля. Часть 3 не является обязательной, но в большинстве случаев она очень важна. Здесь устанавливается фильтр, использующий оператор WHERE. Если оператор WHERE не установлен, будет изменена каждая единичная запись в таблице. Например, запрос

UPDATE MyTable SET CreationDate = ‘2007–09–23’

изменяет значение CreationDate для каждой записи в таблице MyTable, как показано на рисунке 3. На рисунке видно, что значение CreationDate — это 2007–09–23 00:00:00. 000, а не 2007–09–23, как указано в запросе. Так как тип данных поля CreationDate определен как дата и запрос не указывает временную часть, SQL Server допускает, что имеется в виду полночь, и добавляет 00:00:00.000.

Теперь используем оператор WHERE для изменения полей ObjectName и CreationDate выбранной записи:

UPDATE MyTable SET ObjectName = ‘PartyTime’, CreationDate = ‘1999–12–31 23:00:00’ WHERE TableID = 1

Как показано на рисунке 4, только первая запись (установленная посредством WHERE TableID = 1) изменена с новым названием таблицы PartyTime и новой датой разработки 1999–12–31 23:00:00.

Удаление данных

Каждый администратор баз данных опасается, что предложение DELETE попадет не в те руки. Хотя оно может быть использовано неправильно, оно играет важную роль, когда запросы применяются для изменения данных в таблицах. Типичное предложение DELETE обычно состоит из двух частей:

DELETE Part1
WHERE Part2

В части 1 определяется целевая таблица. В части 2 определяется фильтр, использующий оператор WHERE. Как и оператор WHERE в предложении UPDATE, условие WHERE в выражении DELETE необязательно, но в большинстве случаев необходимо. Если не будет включен оператор WHERE и фильтр, будут удалены все записи в заданной таблице.

Например, нужно удалить из таблицы MyTables все записи с датой разработки ранее 22 сентября 2007 года.

Запрос

DELETE MyTable WHERE CreationDate > ‘2007–09–22’

Приведет к результату, показанному на рисунке 5. Нужно быть внимательным во время изменения данных при помощи предложений DELETE или UPDATE. Оператор WHERE используется всегда, кроме случая, когда надо удалить из таблицы все данные.

 Если неизвестно, сколько записей нужно удалить, выполняется предложение SELECT с тем же оператором WHERE. Вместо определения полей в предложении SELECT задается оператор COUNT (*), возвращающий количество строк, которые должны быть удалены. Например, чтобы проверить результат последнего выражения с предложением DELETE, можно выполнить:

SELECT COUNT (*) FROM MyTable WHERE CreationDate > ‘2007–09–22’

Если результирующий ряд исчисляется в миллионах, подумайте, надо ли детализировать оператор WHERE. Я расскажу об использовании функции COUNT в следующей статье, поэтому не стоит беспокоиться, если не получится применить это в работе.

Изучите свои данные

Если вы уверены в том, что теперь сможете изменять данные в MyTable, попробуйте выполнить операторы INSERT, UPDATE и DELETE в существующей базе данных на тестовом сервере. Для этого скопируйте код из запроса ExistingDatabaseQuery.sql (см. листинг 3) в окно запроса, поместите MyDB в первой строке к названию существующей базы данных и выполните запрос.

Затем можно переработать примеры из предложений INSERT, UPDATE и DELETE к имеющейся конфигурации и выполнить их. Таким образом вы узнаете, как лучше использовать эти предложения. Возможно, обнаружатся данные, о существовании которых ранее не было известно.

Билл Макэвой ([email protected]) — руководитель и администратор базы данных сайта Cooking with SQL Web

Модуль SQL

http://docs.kde.org/
Пред.Работа с модулямиСлед.

Ömer Faruk ORUÇ

T.C. Hollingsworth (tchollingsworth gmail.com)

Введение

SQL (structured query language, «язык структурированных запросов») — это специальный язык для обновления, удаления и запроса информации из баз данных.

Модуль SQL позволяет:

  • Создать базу данных

  • Подключиться к существующим базам данных

  • Вставить и удалить данные из базы данных

  • Выполнить запрос

  • Отобразить результаты в таблице

Подключение к базе данных

Выберите пункт Добавить подключение… в меню SQL или на панели инструментов, а затем укажите драйвер базы данных Qt™, который следует использовать (среди доступных вариантов: QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7 и QPSQL). Если нужный драйвер отсутствует в списке, его потребуется установить. Затем нажмите кнопку Далее.

Если выбранная база данных использует файл для сохранения данных, просто укажите путь к этому файлу и нажмите кнопку Далее. Если для работы с ней требуется подключение к серверу, введите имя хоста сервера, имя пользователя, пароль и другую информацию, которая запрашивается драйвером, а затем нажмите кнопку Далее.

Затем укажите название подключения и нажмите кнопку Завершить.

Выполнение запросов

INSERT/DELETE/UPDATE

С помощью модуля SQL возможно вставлять, удалять и обновлять данные с помощью так же, как из командной строки или из программы. Просто введите запрос и нажмите кнопку Выполнить запрос на панели инструментов или выберите пункт меню SQL → Выполнить запрос (Ctrl+E).

Пример 4.1. Примеры запросов

INSERT
INSERT INTO имя_таблицы ("запись1", "запись2", "запись3", "запись4", "запись5")
VALUES ("значение1", "значение2", "значение3", "значение4", "значение5" )
DELETE
DELETE FROM имя_таблицы WHERE name = "текст"
UPDATE
UPDATE имя_таблицы SET "запись1" = "текст", "запись2" = "текст", "запись3" = "текст", "запись4" = "текст", "запись5" = "текст"

SELECT

После выполнения запроса SELECT результат будет представлен либо в виде таблицы на панели Вывод данных SQL в нижней части Kate или в виде текста на панели Текстовый вывод SQL. Если имеется какая-либо ошибка, она будет показана в текстовом выводе.

Пример 4.2. Пример запроса SELECT

SELECT * FROM имя_таблицы

На панели инструментов Вывод данных SQL доступны несколько кнопок:

Подогнать размеры столбцов

Изменяет размеры столбцов так, чтобы они соответствовали содержимому.

Подогнать размеры строк

Изменяет размеры строк так, чтобы они соответствовали содержимому.

Копировать

Выбирает всё содержимое таблицы и копирует его в буфер обмена.

Экспорт

Экспортирует всё содержимое таблицы в файл, буфер обмена или текущий документ в формате значений, разделённых запятыми.

Очистить

Удаляет всё из таблицы.

Цвета таблицы возможно изменить в разделе SQL параметров настройки (Настройка → Настроить Kate…).

Просмотр

Возможно просматривать базу данных с помощью боковой панели Схема базы данных, расположенной в левой части окна редактора. Отображаемая информация зависит от того, какой драйвер базы данных используется.

Чтобы обновить этот список, щёлкните правой кнопкой мыши в любом месте боковой панели и выберите опцию Обновить. Чтобы создать запрос к записи в списке, щёлкните правой кнопкой мыши по записи, выберите в контекстном меню пункт Создать запрос и затем выберите тип запроса (SELECT, UPDATE, INSERT или DELETE).

Структура меню

SQL → Добавить подключение…

Добавляет новое подключение с помощью драйвера базы данных.

SQL → Удалить подключение

Удаляет выбранное подключение.

SQL → Изменить подключение…

Позволяет изменить параметры текущего подключения.

Подключения

Все созданные подключения к базам данных отображены в списке между элементами меню Изменить подключение… и Выполнить запрос. Чтобы отправить запрос к соответствующей базе данных или внести изменения в эту базу данных, просто выберите один из этих пунктов.

SQL → Выполнить запрос (Ctrl+E)

Выполняет запрос пользователя.

Благодарности

Автор модуля SQL — Marco Mentasti.

Благодарим участника «Google Code-In 2011» Ömer Faruk ORUÇ за большой вклад в написание данного раздела.

оператор вставки

DATACOM151

Этот SQL -оператор может быть выполнен следующим образом:

9001.9001.9001.9003 9003

. Facility

(интерактивный)

В прикладной программе, подготовленной с использованием

Datacom/DB

SQL Preprocessor ​​

(embedded)

By using

Dataquery

(SQL & Batch Modes)

INSERT

ДА

ДА

ДА

YES указывает допустимый метод выполнения для этого оператора.

Оператор INSERT вставляет строки в таблицу или представление. Вставка строки в представление вставляет строку в таблицу, на которой основано представление. Вы должны указать ISOLEVEL=C (уровень изоляции C) в параметрах препроцессора при использовании инструкции INSERT.

Когда включена опция NOMAINT функции

Datacom/DB

Utility (DBUTLTY) ACCESS, оператор INSERT получает

Datacom/DB

код возврата 94(87), где 87 — десятичный внутренний код возврата (шестнадцатеричный 57), указывающий, что операторы обслуживания не допускаются, пока действует NOMAINT.

Также обратите внимание, что ограничения, существовавшие в версиях до r10, могут действовать иначе в версии 10.0 и выше, поскольку в версии 10.0 и выше столбцы, содержащие NULL, а не значение, делают

, а не

, что приводит к нарушению ограничения CHECK. В версии 10.0 и более поздних версиях ограничения считаются выполненными, если только предикаты явно не оцениваются как FALSE. То есть ограничения CHECK, предикаты которых оцениваются как UNKNOWN, а не как TRUE или FALSE, считаются выполненными в версии 10. 0 и выше. Таким образом, операторы INSERT и UPDATE из версий до r10, которые приводили к обнулению столбцов с ограничениями, при использовании в выпуске 10.0 и выше успешно выполняются впервые.

На этой странице обсуждаются следующие темы:

Синтаксис

Ниже приведена синтаксическая диаграмма оператора INSERT. См. специальные регистры для схемы специальных регистров. См. Подзапрос для синтаксической диаграммы подзапроса.

Специальный регистр — это расширение

Datacom/DB

.

 

►►вно вставьте в ─┬ac

Таблица

─┬ac┬íbkinding ────────────► └─ 

имя-представления

 ──┘ │     ┌─ , ───────────┐     │ └─ ( ─▼─ 

имя-столбца

 ─┴─ ) ─┘ ┌─ , ────────────────────┐ ►½ Значения (─ ▼ ─┬ac

Специальная регистрация

─┬ac┴ ½) ─┬acредон ───────►◄ │             ├─ 

переменная хоста

 ────┤       │ │             ├─ 

буквальное

 ──────────┤       │ │             └─ NULL ─────────────┘       │ └─ 

подвыбор

 ──────────────────────────────┘

имя таблицы или представление

Укажите имя таблицы или представления, в которое вы хотите вставить строки. Таблица или представление должны быть описаны в

Datacom Datadictionary

и не должны быть таблицей

Datacom Datadictionary

или любым из следующих типов представлений:

  • имя-столбца

    Укажите имя одного или нескольких столбцов, для которых вы предоставляете вставляемые значения. Вы можете называть столбцы в любом порядке. Каждый столбец должен принадлежать указанной вами таблице или представлению, и вы не можете назвать один и тот же столбец более одного раза. Имена столбцов должны быть разделены запятыми, а список должен быть заключен в круглые скобки.

  • ЗНАЧЕНИЯ

    Вводит одну строку значений для вставки. Значения строки — это значения ключевых слов, литералов или переменных хоста, указанных в предложении. Значения должны быть разделены запятыми, а список должен быть заключен в круглые скобки.

    При выполнении оператора количество значений в предложении VALUES должно равняться количеству имен в списке столбцов. Первое значение вставляется в первый столбец списка, второе значение — во второй столбец и так далее.

    специальный регистр

    Диаграмму специального регистра см. в разделе Специальные регистры. Это расширение

    Datacom/DB

    .

    хост-переменная

    Укажите host-переменную, которая должна быть переменной, описанной в вашей программе в соответствии с правилами объявления host-переменных.

    литерал

    Укажите литерал, соответствующий типу данных столбца.

    NULL

    Используйте ключевое слово NULL, чтобы указать, что вставляемые значения являются нулевыми.

  • подвыборка

    Если вы укажете подвыборку, строки таблицы результатов подвыборки будут вставлены в таблицу или представление, указанное вами в операторе INSERT. Результатом может быть одна строка, более одной строки или ни одной строки. Если строки не вставлены, SQLCODE устанавливается равным +100. См. Подзапрос для синтаксической диаграммы подзапроса.

Таблица или представление, названные после INSERT INTO, не должны быть названы в предложении FROM подзапроса или предложении FROM любого подзапроса в подзапросе.

Количество столбцов в таблице результатов должно равняться количеству имен в списке столбцов. Значение первого столбца результата вставляется в первый столбец списка, второе значение — во второй столбец и так далее.

Правила вставки

Вставляемые значения должны удовлетворять следующим правилам:

Значения по умолчанию:

Значение, вставленное в любой столбец, не входящий в список столбцов, является значением столбца по умолчанию. Столбцы без значения по умолчанию должны быть включены в список столбцов.

При вставке в представление значение по умолчанию вставляется в любой столбец базовой таблицы, не включенный в представление.

Все столбцы базовой таблицы, отсутствующие в представлении, должны иметь значения по умолчанию.

Длина:

Если вставляемое значение столбца является числом, столбец должен быть числовым столбцом, способным представлять целую часть числа.

Если вставляемое значение столбца является строкой, столбец должен быть строковым столбцом с атрибутом длины, по крайней мере равным длине строки.

Если вставляемые значения не соответствуют заданным ранее правилам или если во время выполнения оператора INSERT возникает какая-либо другая ошибка, строки не вставляются.

Обработка

Можно вставлять строки, не соответствующие определению представления. Эти строки не могут отображаться в представлении, но вставляются в базовую таблицу представления.

Если соответствующие блокировки уже не существуют, при успешном выполнении оператора INSERT устанавливается одна или несколько монопольных блокировок. Пока блокировки не сняты, к вставленной строке может получить доступ только тот блок восстановления, в котором была выполнена вставка.

Примеры

  • Следующий пример вставляет строку в таблицу EMP:

     

    EXEC SQL ВСТАВИТЬ В ЭМИ ЗНАЧЕНИЯ('315', 'ДЖОН', 'Т', 'СМИТ', 'A1', '1234', 87 11, 32, 19, "М", 55 422, 16325) END-EXEC

  • В следующем примере во временную таблицу TEMPEMP загружаются данные из таблицы EMP:

     

    EXEC SQL ВСТАВИТЬ В SMITH.TEMPEMP ВЫБРАТЬ * ИЗ ЭМИ END-EXEC

  • В следующем примере во временную таблицу TEMPEMP загружаются данные из отдела E1 из EMP:

     

    EXEC SQL ВСТАВИТЬ В SMITH. TEMPEMP ВЫБЕРИТЕ * ИЗ EMP ГДЕ WORKDEPT = 'E1' END-EXEC

SQL ВСТАВКА, ОБНОВЛЕНИЕ, УДАЛЕНИЕ — о боже!

Нравится

(6)

Твитнуть

79,93К
Представления

SQL ВСТАВКА , ОБНОВЛЕНИЕ 9Операторы 0362 и DELETE — о чем они? Если вы инженер данных, администратор баз данных или даже просто фанат данных, однажды вы обнаружите, что у вас есть база данных, которая станет вашим «ребенком». Заряженный этим особым комочком радости, вам нужно будет кормить и переодевать маленького парня. Да, мы все еще говорим о базах данных! INSERT , UPDATE и DELETE — все это функции SQL, которые помогают вам обеспечить актуальность ваших данных и очистить их от ненужной или устаревшей информации.

INSERT , UPDATE и DELETE , а также SELECT и MERGE известны как операторы языка манипулирования данными (DML), которые позволяют пользователям SQL просматривать данные и управлять ими. Хотя данные, конечно, часто обновляются самим приложением, они регулярно требуют ручного ввода или обслуживания, а это требует не только хорошего понимания основ SQL, но и того, как INSERT , UPDATE и DELETE в SQL.

Детская больница Микки Мауса – пример из базы данных

Давайте рассмотрим эти триплеты SQL один за другим и поймем, как они работают.

Мы будем использовать образец базы данных, чтобы продемонстрировать каждый из трех. Продолжая детскую тему, предположим, что вы являетесь администратором данных в детской больнице, «Детской больнице Микки Мауса», если быть точным. Больница ведет учет всех своих маленьких пациентов, включая их возраст, вес, результаты анализов крови — вы получаете очаровательную картину.

Обычно врачи вводят и обновляют эту информацию в системе больницы каждый раз, когда они посещают своих пациентов, и большая часть вставки, обновления и удаления записей в базе данных выполняется системой. Но часто есть вещи, которые нужно исправлять вручную, и вам, как постоянному администратору базы данных, пора блеснуть!

Вы также можете прочитать:
Обзор оператора SQL Delete

В приведенной ниже статье мы используем три разные таблицы для демонстрации трех разных утверждений.

Образец таблицы номер один показывает записи пациентов и их основную информацию:

Таблица пациентов

PatientID Фамилия Имя ДОБ Секс Вес Высота Привит
15223 Смит Дениз 31.12.2018 Ф 21,4 29,2 Д
15224 Агарвал Арджун 29.08.2017 М 28. 1 34,2 Д
15225 Адамс Мак 14.02.2015 Ф 34,0 39,2 Н
15226 Джонсон Огненная земля 15.08.2019 Ф 14,6 24,5 Д
15227 Хури Мохаммед 30.03.2014 М 41,5 44.1 Д
15228 Джонс Бен 04.04.2011 М 70,1 52,2 Д
15229 Ковальчик Александра 27.08.2019 Ф 15,2 23,9 Д

Пример таблицы номер два содержит различные отделения больницы, а также группы и категории, к которым относятся эти отделения:

Название отдела ИмяГруппы ИмяКатегории 1 Кардиология Кардиологический центр Клинический 2 Центральный блок интенсивной терапии Аварийный Клинический 3 Аварийный Аварийный Клинический 4 Связь Администрация Рабочий 5 Онкология Терапия Клинический 6 Неврология Терапия Клинический 7 Управление персоналом Администрация Рабочий 8 Патология Сервис Технический 9 Радиология Сервис Технический 10 Аптека Сервис Технический 11 Правление Администрация Рабочий 12 Урология Хирургия Клинический 13 Гематология Терапия Клинический 14 Монтана Уорд Палата Рабочий 15 Чикаго Уорд Палата Рабочий 16 Линкольн Уорд Палата Рабочий 17 Йеллоустонский район Палата Рабочий 18 Бруклин Уорд Палата Оперативный

Пример таблицы номер три регистрирует визиты пациентов в разные годы:

Последний допущенный LastDischarged 33 29. 12.1952 05.01.1953 34 - - 35 01.08.2004 04.08.2004 36 28.07.2011 30.07.2011 37 27.05.1950 30.05.1950 38 - - 39 11.10.1970 20.10.1970

Вооружившись этими образцами таблиц, давайте приступим к 9 мельчайшим подробностям.0361 ВСТАВИТЬ , ОБНОВИТЬ и УДАЛИТЬ .

ВСТАВИТЬ данные с помощью SQL

Как дети, каждую минуту рождаются новые данные. При наличии множества продуманных систем часто эти данные легко добавляются в соответствующие базы данных. Однако во многих случаях вы обнаружите, что вам нужно добавить его вручную, и именно здесь появляется оператор INSERT в SQL.

INSERT — ваш выбор для добавления одной или нескольких строк в таблицу. INSERT также может помочь при добавлении строк из одной таблицы в другую.

Давайте посмотрим на базовую структуру оператора SQL INSERT :

Во-первых, нам нужно определить таблицу, в которую мы хотим вставить строки. Далее мы указываем столбцы, которые хотим заполнить. Наконец, мы указываем значения, которые нам нужно добавить. Это базовая форма функции INSERT , и она довольно интуитивно понятна.

Чтобы дать этой структуре некоторое реальное применение, вот пример из нашего тематического исследования.

У одного из врачей Детской больницы Микки Мауса есть новорожденный пациент, имя которого еще не названо. Врачу необходимо немедленно внести ребенка в базу данных, чтобы получить доступ к испытанию лекарственного препарата для больного ребенка, но система не позволит отправить досье малыша без имени. Врач хочет, чтобы пациент был добавлен с использованием ее номера пациента, а ее имя оставалось пустым до более поздней даты. Вам как администратору необходимо вручную ввести пациента в базу данных.

Вот как будет выглядеть оператор INSERT :

Как видите, мы не только даем имя таблицы, в которую нужно вставить, но также имена столбцов и значений, которые мы хотим добавить. Мы не указываем PatientID в списке столбцов, потому что он автоматически заполняется как столбец идентификации.

Поскольку мы хотим пока оставить имя пациента пустым, мы записываем NULL в столбцах имени.

Как только мы запустим эту команду, она создаст следующее дополнение к базе данных:

Вставка нескольких строк

Чтобы вставить более одной строки данных с помощью всего одного оператора, используйте круглые скобки и запятые для указания отдельных новых строк.

Совет! Используйте транзакцию для проверки вставки без фиксации и постоянного изменения таблицы. Для этого начните с BEGIN TRANSACTION и завершите транзакцию либо COMMIT , если вы хотите сохранить изменения, либо ROLLBACK , если вы хотите отменить то, что вы сделали. Ниже показано, как мы добавим транзакцию к приведенному выше примеру:

Начало транзакции

Вставка из одной таблицы в другую

Нужно вставить одну или несколько строк данных из одной таблицы в другую? Вы можете использовать оператор INSERT INTO SELECT .

Допустим, несколько наших молодых пациентов принимают участие в испытании нового лекарства, и вы создаете новую таблицу для регистрации их участия. Базовая структура этого утверждения:

Заявление для нашего примера с испытанием лекарства будет выглядеть следующим образом:

Вы также можете написать пример как Common Table Expression (CTE). Помимо прочего, CTE можно использовать для создания временного набора результатов, который можно повторно использовать во время запроса. Вот как будет выглядеть та же самая команда, написанная как CTE:

Совет! Если вы используете SELECT для добавления данных из одной таблицы в другую, в качестве начального шага рекомендуется запустить только оператор SELECT — просто чтобы убедиться, что возвращаются правильные строки, и вы довольны результатом. результат!

ОБНОВЛЕНИЕ данных с помощью SQL

Оператор SQL UPDATE — еще одна распространенная задача, используемая инженерами данных и администраторами баз данных. Используйте его, чтобы изменить значение столбца для одной или нескольких строк.

Вот как обычно устроен оператор SQL UPDATE :

Как и в случае с оператором SQL INSERT , сначала нам нужно определить таблицу, которую мы хотим обновить. Затем мы используем предложение SET , в котором подробно описаны столбцы, которые мы хотим обновить. Наконец, мы используем WHERE , чтобы точно определить, какие строки мы хотим включить в обновление.

Совет! Поскольку новое значение столбца может повлиять на более чем одну строку, убедитесь, что вы довольны масштабом вашего обновления, прежде чем фиксировать! Так же, как INSERT , SQL UPDATE может быть записан как транзакция, то есть вы можете либо COMMIT , либо ROLLBACK обновление в зависимости от того, довольны ли вы изменениями.

Вот пример из нашего тематического исследования. Наше отделение неотложной помощи проводит ребрендинг в отделение «Травматология и неотложная хирургия», поэтому его название необходимо изменить в базе данных. Чтобы обновить это имя, вы можете выполнить этот оператор:

Вот как будет выглядеть обновленное название отдела в нашей таблице:

При использовании оператора SQL UPDATE убедитесь, что в предложении WHERE точно указано, какие строки вы хотите обновить. Если вы сомневаетесь, напишите заявление как транзакцию, которую вы можете отменить, если вас не устраивают изменения — никакого вреда!

Чтобы убедиться, что вы выбираете правильные данные для обновления, вы можете выполнить тест, используя ВЫБЕРИТЕ , чтобы убедиться, что вы нацелились на правильные строки.

Обновление нескольких строк

Если вам нужно обновить несколько строк данных, это легко сделать с помощью оператора UPDATE . Предложение WHERE вам в помощь.

Представьте, что вы хотите изменить категорию всех стационарных отделений с «Отделение» на «Комната» в столбце группы.

В результате таблица будет выглядеть следующим образом:

УДАЛИТЬ данные с помощью SQL

SQL DELETE — это смена подгузника в мире SQL. Есть ли там что-то, что вам не нужно? Удалите это!

DELETE удаляет одну или несколько строк из таблицы, но будьте осторожны! Вам нужно убедиться, что вы знаете, что вы удаляете, прежде чем идти вперед и совершать заявление!

Вот как выглядит ваш средний оператор SQL DELETE :

Всего две части: указание таблицы и указание WHERE — какие строки вы хотите удалить.

Если вы знаете первичный ключ строки, которую хотите удалить, ваша работа проста. Вы хотите удалить Линкольн Уорд со своего стола? Это просто:

Удаление нескольких строк

Вернемся к Детской больнице Микки Мауса. Допустим, администратор данных больницы хочет удалить все записи о пациентах, которые не посещали больницу с 1969 года. Вот как можно написать это утверждение УДАЛИТЬ :

Результат? Это стол перед…

… и вот как это выглядит после того, как мы запустим этот скрипт:

Лучшее, что нужно сделать перед запуском этой инструкции DELETE , это проверить результат с помощью SELECT . Это вернет все строки, которые вы собирались удалить, поэтому вы можете сначала проверить, удаляете ли вы правильные строки!

Чтобы запустить этот тест, введите:

Внимание! Если вы используете DELETE без добавления предложения WHERE , вы удалите каждую строку из своей таблицы.

Заключение

После того, как вы освоите основы SQL, операторы SQL INSERT , UPDATE и DELETE станут вашим следующим шагом к славе базы данных!

Дополнительная литература

Обзор инструкции SQL Insert

Как использовать SQL UPDATE.