- •Лабораторная работа №7
- •7 Типы запросов данных в sql
- •7.1 Дополнительный материал
- •7.1.1 Команды языка запросов sql
- •7.1.2 Создание таблицы базы данных
- •7.1.3 Дополнение записей в таблицы базы
- •Insert into Poshk_k nomp, famp, gord, stat
- •Values (“п6”, “быков”, “москва”, 10)
- •7.1.4 Формирование запросов из тбд командным способом
- •Команда delete (sql-оператор)
- •7.2 Оператор select, формируемый интерактивным способом
- •Файлы запросов на языке sql и результаты их выполнения. Запрос 1: запрос по точному совпадению значения одного поля
- •Запрос 2: запрос по точному несовпадению значения одного поля
- •Запрос 3: запрос по неточному совпадению значения одного поля
- •Into cursor Nomrd
- •Into cursor difficult
- •Многотабличные запросы
- •Сложные запросы.
- •Вложенные запросы.
- •7.6 Арифметические операции в опции where
Лабораторная работа №7
7 Типы запросов данных в sql
4 основных типа запросов данных в SQL, которые относятся к языку манипулирования данными (ЯМД) (в англоязычной литературе он называется DATA Manipulation Language или DML):
SELECT – выбрать строки из таблицы;
INSERT – добавить строки в таблицу;
UPDATE – изменить строки в таблице;
DELETE – удалить строки в таблице.
Дополнительные типы запросов, которые используются совместно с SELECT: JOIN, UNION.
Мы сосредоточимся на основных четырех. Каждый из запросов имеет различное количество операторов и опций для выполнения какого-либо действия над данными. Наибольшее количество опций имеет SQL-оператор SELECT.
7.1 Дополнительный материал
7.1.1 Команды языка запросов sql
В язык FoxPro включен ряд команд на языке запросов SQL (Structured Query Language). Он разработан фирмой ИБМ, хорошо известен многим пользователям, работавшим еще на больших ЭВМ и считается стандартом. Первоначально включение SQL в пакет FoxPro было вызвано скорее желанием придать формальную полноту средствам СУБД, чем заботой о потребностях программистов. Однако рассматриваемые ниже команды являются полезным и быстрым инструментом обработки данных. Команды SQL могут непосредственно включаться в программы наряду с собственными командами FoxPro.
7.1.2 Создание таблицы базы данных
CREATE DBF <DBF-файл>
(<имя поля> <тип> [(<размер>[,<дробных разрядов>])
[,<имя поля>…]]) /FROM ARRAY <массив>
Команда создает новую таблицу базы данных <DBF-файл> с указанным именем. Для каждого поля задаются его имя, тип (одной из букв C,N,D,m,F,L), длина и число десятичных разрядов. Длина и точность не задаются для типов дата (D), логический (L) и примечаний (M), а точность – для символьного типа (C). Все требования к описанию полей таблицы БД – стандартные. Созданная ТБД сразу открывается.
Описание полей может быть задано и из <массива> при использовании опции FROM ARRAY. Такой двумерный массив из четырех столбцов и строк в количестве, совпадающем с количеством полей, должен иметь указанное выше наполнение. Например, функция AFIELDS() как раз генерирует такой массив из открытой ТБД.
7.1.3 Дополнение записей в таблицы базы
INSERT INTO <файл ТБД> [(<поле1> [, <поле2> [, …]])]
VALUES (<выр1> [, <выр2> [, …]])
Команда добавляет записи в конец существующего файла <файла ТБД>, используя имена полей и <выражения>, перечисленные после слова VALUES. Если опущены имена полей, <выражения> будут записываться в последовательные поля <ТБД> в соответствии с ее структурой.
Пример:
Insert into Poshk_k nomp, famp, gord, stat
Values (“п6”, “быков”, “москва”, 10)
Другой синтаксис этой команды:
INSERT INTO <имя ТБД> FROM ARRAY <массив> FROM MEMVAR
Переносит данные, содержащиеся в указанном <массиве> (опиция ARRAY), или данные из временных переменных (опция MEMVAR). Такие переменные должны существовать и иметь те же самые имена, что и поля базы данных (но с префиксом M). Такие переменные, например, вырабатываются по команде SCATTER MEMVAR. Поля, для которых нет переменных с подходящими именами, останутся пустыми.
Таким образом, SQL-оператор INSERT INTO соответствует паре команд базового языка СУБД FoxPro – APPEND BLANK и REPLACE.
Дополняемая ТБД может быть и не открыта к моменту выполнения команды, однако после этого она останется открытой и активной.