Программирование в Microsoft SQL Server 2000

Работа с данными

Разбить на страницы
Показывать лекцию целиком

Вы научитесь:

  • вставлять строку с использованием оператора INSERT в панели сетки Grid Pane;
  • вставлять строку с использованием оператора INSERT в панели SQL Pane;
  • вставлять строку, задающую значения для всех столбцов;
  • вставлять строку с использованием значений DEFAULT и NULL;
  • вставлять несколько строк с использованием оператора INSERT в панели сетки Grid Pane;
  • вставлять несколько строк с использованием оператора INSERT в панели SQL Pane.
  • Понятие об операторе INSERT

    Синтаксис оператора INSERT похож на синтаксис оператора SELECT. Его базовая форма имеет следующий вид:

    INSERT [INTO] таблица_или_представление [(список_столбцов)]
    VALUES (список_значений)

    Каждый оператор INSERT может модифицировать только одну таблицу или представление. При использовании оператора INSERT для модификации представления следует учитывать следующие ограничения:

  • представление не должно содержать функций агрегирования, таких как COUNT или AVG;
  • представление не должно содержать операторов TOP, GROUP BY, UNION или DISTINCT;
  • представление не должно содержать вычисляемых столбцов;
  • представление должно ссылаться на таблицу во фразе FROM;
  • оператор INSERT модифицирует столбцы только из одной таблицы.
  • Список столбцов в операторе INSERT не является обязательным. Если он не указан, оператор INSERT должен включать значения для всех столбцов в таблице или представлении, а порядок их должен соответствовать порядку столбцов в таблице или представлении. Вы можете использовать ключевое слово DEFAULT, чтобы задать для строки значения, установленные по умолчанию.

    Если список столбцов присутствует, формат его подобен формату, используемому для списка столбцов в операторе SELECT: имена столбцов отделяются запятыми. Поскольку оператор INSERT может добавлять строку только в одну таблицу, вам нет необходимости использовать идентификатор имени таблицы в имени столбца.

    Использование оператора INSERT

    Оператор INSERT может быть создан с использованием панели сетки Grid Pane путем задания столбцов, либо с использованием панели SQL Pane путем непосредственного ввода оператора.

    Вставка строк с использованием панели сетки Grid Pane

    Панель сетки Grid Pane предоставляет самый простой способ создания оператора INSERT, поскольку при этом не требуется запоминать синтаксис оператора.

    Вставьте строку с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, откройте меню Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer с отображением четырех панелей.
  • Совет. Применение команды Query (Запрос) в меню Open Table (Открытие таблицы) или Open View (Открытие представления) является самым простым способом открыть конструктор запросов Query Designer с отображением всех панелей. Хотя устанавливаемым по умолчанию оператором SQL является SELECT * FROM <таблица_или_представление>, запрос не исполняется, поэтому никакие строки не возвращаются и не показываются.

  • Скройте панель SQL Paneи панель результатов Results Pane.
  • Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Insert Into (Вставить в) из списка. Конструктор запросов Query Designer изменит вид панели сетки Grid Pane, чтобы она отображала только ячейки Column и New Value.
  • Добавьте столбец OilName в панели сетки Grid Pane и установите для New Value значение 'InsertFromGrid'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что в таблицу добавлена одна строка.
  • Нажмите ОК, чтобы закрыть окно сообщения. Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Откроется новый экземпляр конструктора запросов, в котором будут отображены все строки из таблицы Oils.
  • Осуществите прокрутку до конца таблицы, чтобы убедиться, что новая строка добавлена.
  • Внимание! Значение OilID в вашей базе данных может не совпадать с представленным здесь. Помните, что столбец OilID был определен в качестве идентификационного столбца. Идентификационные столбцы в SQL Server гарантированно являются уникальными, но они не обязательно располагаются в последовательном порядке.

    Вставка строк с использованием панели SQL Pane

    Хотя панель сетки Grid Pane предоставляет простой метод создания оператора INSERT, но использование панели SQL Pane, позволяющее вводить оператор непосредственно, предоставляет большие функциональные возможности.

    Вставьте строку с использованием панели SQL Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Скройте панель сетки Grid Paneи панель диаграмм Diagram Paneи отобразите панель SQL Pane.
  • Замените оператор SQL на следующий:
    INSERT INTO	Oils
    	(OilName)
    VALUES  ('InsertFromSQL')
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте строку, задающую значения для всех столбцов

  • Перейдите к окну конструктора запросов, содержащему оператор INSERT.
  • Замените оператор SQL на следующий:
    INSERT INTO	Oils	
    VALUES 	('InsertAllValues','Latin Name',1,1,'Sample',
    'Description of the Oil')
  • Внимание! Столбец OilID не включен в оператор SQL, поскольку он определен как идентификационный столбец. SQL Server будет предоставлять значение для идентификационных столбцов и столбцов, имеющих значение по умолчанию NewID(), используемое для генерирования идентификатора GUID.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте строку с использованием значений DEFAULT и NULL

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Измените оператор SQL следующим образом:
    INSERT INTO	Oils
    (OilName, LatinName, PlantTypeID, PlantPartID, Sample) VALUES ('InsertAllValues', 'Latin Name', 1, 1, 'Sample', 'Description of the Oil').
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Закройте окна конструктора запросов Query Designer.
  • Вставка нескольких строк

    Оператор INSERT имеет вторую форму, которая использует оператор SELECT вместо списка VALUES с целью задания значений для строки (или строк), которая будет добавлена. Эта форма оператора INSERT имеет следующий вид:

    INSERT INTO таблица_или_представление [(список_столбцов)]
    	SELECT [(список_столбцов)
    	FROM таблица_или_представление
    	[WHERE (условие)]

    Фраза WHERE в операторе является необязательной. Если она отсутствует, в таблицу или представление, заданные в фразе INSERT, будут добавлены все строки из таблицы или представления, заданных в фразе FROM.

    Вставьте несколько строк с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils, откройте Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer.
  • Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils, открыв Open Table (Открытие таблицы) и выбрав Query (Запрос). Будет открыт новый экземпляр конструктора запросов Query Designer.
  • Скройте панель SQL Paneи панель Results Pane.
  • Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Insert From (Вставить из) в списке. Конструктор запросов Query Designer отобразит диалоговое окно, предлагающее вам выбрать таблицу-адресат.
  • Выберите MyOils из списка и нажмите ОК. Конструктор запросов Query Designer добавит в панель сетки Grid Pane столбец Append.
  • Измените запрос, чтобы вставить только столбцы OilName и LatinName.
  • Добавьте Left(OilName; 6) в качестве вычисляемого столбца в панель сетки Grid Pane, снимите флажок в ячейке вывода Output и установите в ячейке условия Criteria значение <> 'Insert'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что запрос был исполнен.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки в таблице MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте несколько строк с использованием панели SQL Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Скройте панель диаграмм Diagram Paneи панель сетки Grid Paneи отобразите панель SQL Pane.
  • Замените оператор SQL на следующий:
    INSERT INTO 	MyOils
    	(OilName, LatinName)
    SELECT	OilName, LatinName
    FROM 	Oils
    WHERE 	(LEFT(OilName, 6) = 'Insert')
  • Примечание. Единственное изменение здесь затрагивает только оператор WHERE.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что запрос был исполнен.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Закройте оба окна конструктора запросов Query Designer.
  • Краткое содержание

    Чтобы ...Синтаксис оператора SQL
    Вставить строку с заданными столбцами INSERT INTO таблица_или_представление (список_столбцов) VALUES (список_значений)
    Вставить строку со всеми столбцами INSERT INTO таблица_или_представление VALUES (список_значений)
    Вставить несколько строк с использованием оператора SELECT
    INSERT INTO таблица_или_представление [(список_столбцов)] SELECT (список_столбцов) 
    FROM таблица_или_представление 
    [WHERE (условие)]
    Страницы:

    Вы научитесь:

  • вставлять строку с использованием оператора INSERT в панели сетки Grid Pane;
  • вставлять строку с использованием оператора INSERT в панели SQL Pane;
  • вставлять строку, задающую значения для всех столбцов;
  • вставлять строку с использованием значений DEFAULT и NULL;
  • вставлять несколько строк с использованием оператора INSERT в панели сетки Grid Pane;
  • вставлять несколько строк с использованием оператора INSERT в панели SQL Pane.
  • Понятие об операторе INSERT

    Синтаксис оператора INSERT похож на синтаксис оператора SELECT. Его базовая форма имеет следующий вид:

    INSERT [INTO] таблица_или_представление [(список_столбцов)]
    VALUES (список_значений)

    Каждый оператор INSERT может модифицировать только одну таблицу или представление. При использовании оператора INSERT для модификации представления следует учитывать следующие ограничения:

  • представление не должно содержать функций агрегирования, таких как COUNT или AVG;
  • представление не должно содержать операторов TOP, GROUP BY, UNION или DISTINCT;
  • представление не должно содержать вычисляемых столбцов;
  • представление должно ссылаться на таблицу во фразе FROM;
  • оператор INSERT модифицирует столбцы только из одной таблицы.
  • Список столбцов в операторе INSERT не является обязательным. Если он не указан, оператор INSERT должен включать значения для всех столбцов в таблице или представлении, а порядок их должен соответствовать порядку столбцов в таблице или представлении. Вы можете использовать ключевое слово DEFAULT, чтобы задать для строки значения, установленные по умолчанию.

    Если список столбцов присутствует, формат его подобен формату, используемому для списка столбцов в операторе SELECT: имена столбцов отделяются запятыми. Поскольку оператор INSERT может добавлять строку только в одну таблицу, вам нет необходимости использовать идентификатор имени таблицы в имени столбца.

    Использование оператора INSERT

    Оператор INSERT может быть создан с использованием панели сетки Grid Pane путем задания столбцов, либо с использованием панели SQL Pane путем непосредственного ввода оператора.

    Вставка строк с использованием панели сетки Grid Pane

    Панель сетки Grid Pane предоставляет самый простой способ создания оператора INSERT, поскольку при этом не требуется запоминать синтаксис оператора.

    Вставьте строку с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, откройте меню Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer с отображением четырех панелей.
  • Совет. Применение команды Query (Запрос) в меню Open Table (Открытие таблицы) или Open View (Открытие представления) является самым простым способом открыть конструктор запросов Query Designer с отображением всех панелей. Хотя устанавливаемым по умолчанию оператором SQL является SELECT * FROM <таблица_или_представление>, запрос не исполняется, поэтому никакие строки не возвращаются и не показываются.

  • Скройте панель SQL Paneи панель результатов Results Pane.
  • Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Insert Into (Вставить в) из списка. Конструктор запросов Query Designer изменит вид панели сетки Grid Pane, чтобы она отображала только ячейки Column и New Value.
  • Добавьте столбец OilName в панели сетки Grid Pane и установите для New Value значение 'InsertFromGrid'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что в таблицу добавлена одна строка.
  • Нажмите ОК, чтобы закрыть окно сообщения. Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Откроется новый экземпляр конструктора запросов, в котором будут отображены все строки из таблицы Oils.
  • Осуществите прокрутку до конца таблицы, чтобы убедиться, что новая строка добавлена.
  • Внимание! Значение OilID в вашей базе данных может не совпадать с представленным здесь. Помните, что столбец OilID был определен в качестве идентификационного столбца. Идентификационные столбцы в SQL Server гарантированно являются уникальными, но они не обязательно располагаются в последовательном порядке.

    Вставка строк с использованием панели SQL Pane

    Хотя панель сетки Grid Pane предоставляет простой метод создания оператора INSERT, но использование панели SQL Pane, позволяющее вводить оператор непосредственно, предоставляет большие функциональные возможности.

    Вставьте строку с использованием панели SQL Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Скройте панель сетки Grid Paneи панель диаграмм Diagram Paneи отобразите панель SQL Pane.
  • Замените оператор SQL на следующий:
    INSERT INTO	Oils
    	(OilName)
    VALUES  ('InsertFromSQL')
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте строку, задающую значения для всех столбцов

  • Перейдите к окну конструктора запросов, содержащему оператор INSERT.
  • Замените оператор SQL на следующий:
    INSERT INTO	Oils	
    VALUES 	('InsertAllValues','Latin Name',1,1,'Sample',
    'Description of the Oil')
  • Внимание! Столбец OilID не включен в оператор SQL, поскольку он определен как идентификационный столбец. SQL Server будет предоставлять значение для идентификационных столбцов и столбцов, имеющих значение по умолчанию NewID(), используемое для генерирования идентификатора GUID.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте строку с использованием значений DEFAULT и NULL

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Измените оператор SQL следующим образом:
    INSERT INTO	Oils
    (OilName, LatinName, PlantTypeID, PlantPartID, Sample) VALUES ('InsertAllValues', 'Latin Name', 1, 1, 'Sample', 'Description of the Oil').
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была добавлена.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Закройте окна конструктора запросов Query Designer.
  • Вставка нескольких строк

    Оператор INSERT имеет вторую форму, которая использует оператор SELECT вместо списка VALUES с целью задания значений для строки (или строк), которая будет добавлена. Эта форма оператора INSERT имеет следующий вид:

    INSERT INTO таблица_или_представление [(список_столбцов)]
    	SELECT [(список_столбцов)
    	FROM таблица_или_представление
    	[WHERE (условие)]

    Фраза WHERE в операторе является необязательной. Если она отсутствует, в таблицу или представление, заданные в фразе INSERT, будут добавлены все строки из таблицы или представления, заданных в фразе FROM.

    Вставьте несколько строк с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils, откройте Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer.
  • Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils, открыв Open Table (Открытие таблицы) и выбрав Query (Запрос). Будет открыт новый экземпляр конструктора запросов Query Designer.
  • Скройте панель SQL Paneи панель Results Pane.
  • Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Insert From (Вставить из) в списке. Конструктор запросов Query Designer отобразит диалоговое окно, предлагающее вам выбрать таблицу-адресат.
  • Выберите MyOils из списка и нажмите ОК. Конструктор запросов Query Designer добавит в панель сетки Grid Pane столбец Append.
  • Измените запрос, чтобы вставить только столбцы OilName и LatinName.
  • Добавьте Left(OilName; 6) в качестве вычисляемого столбца в панель сетки Grid Pane, снимите флажок в ячейке вывода Output и установите в ячейке условия Criteria значение <> 'Insert'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что запрос был исполнен.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки в таблице MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Вставьте несколько строк с использованием панели SQL Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.
  • Скройте панель диаграмм Diagram Paneи панель сетки Grid Paneи отобразите панель SQL Pane.
  • Замените оператор SQL на следующий:
    INSERT INTO 	MyOils
    	(OilName, LatinName)
    SELECT	OilName, LatinName
    FROM 	Oils
    WHERE 	(LEFT(OilName, 6) = 'Insert')
  • Примечание. Единственное изменение здесь затрагивает только оператор WHERE.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что запрос был исполнен.
  • Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Закройте оба окна конструктора запросов Query Designer.
  • Краткое содержание

    Чтобы ...Синтаксис оператора SQL
    Вставить строку с заданными столбцами INSERT INTO таблица_или_представление (список_столбцов) VALUES (список_значений)
    Вставить строку со всеми столбцами INSERT INTO таблица_или_представление VALUES (список_значений)
    Вставить несколько строк с использованием оператора SELECT
    INSERT INTO таблица_или_представление [(список_столбцов)] SELECT (список_столбцов) 
    FROM таблица_или_представление 
    [WHERE (условие)]
    Вернуться к учебному плану