- •Оглавление
- •Введение
- •1. Типы данных в sql
- •2. Данные, используемые в примерах
- •3. Создание новых таблиц и модификация данных в таблицах
- •4. Формирование запросов
- •4.1. Выборка данных из единственной таблицы
- •4.2. Выборка данных из нескольких таблиц
- •4.3. Вложенные запросы (подзапросы)
- •4.4. Специальные операторы для обработки подзапросов
- •4.5. Объединение результатов нескольких запросов
- •4.6. Вставка результатов запроса в другую таблицу
- •Приложение 1
- •Текстовый тип
- •Числовые типы
- •Приложение 2
- •Приложение 3
- •Числовые функции
- •Символьные функции
- •Агрегатные функции(применяются к полям таблиц)
4.6. Вставка результатов запроса в другую таблицу
Результаты запроса могут служить исходными данными для модификации - добавления новых строк в какую-либо существующую таблицу. Реализуется эта возможность совместным использованием команд INSERT и SELECT.
INSERT INTO <имя таблицы> [ (список полей) ]
SELECT (<список полей>)
FROM <имя таблицы>
[ WHERE <условия отбора> ]
Примечание: в FoxPro данная возможность не поддерживается.
Например, дополнение таблицы Teacher, содержащей список преподавателей, строками, содержащими коды преподавателей, которые имеются в таблице Subject, но отсутствуют в Teacher , возможно посредством следующей команды:
INSERT INTO Teacher (Nteach)
SELECT Nteach FROM Subject
WHERE NOT EXIST
( SELECT * FROM Teacher
WHERE Subject.Ntech=Teacher.Nteach )
В результате в таблице Teacher, возможно, появятся новые строки, в которых будут сформированы значения единственного поля - Nteach (если запрос даст не пустой результат).
Список использованной литературы
1. Романов Б.А., Кушниренко А.С. dBase IV. Назначение, функции, применение. М.: Радио и связь, 1991. 334 с.
2. Бемер С. FoxPro 2.5 для Windows: Пер. с нем. К.: Торгово-издательское бюро BHV, 1994. 416 с.
3. Грабер М. Введение в SQL: Пер.с англ. - М.: Лори, 1996. 375 с.
4. Кукуруза П.В. Реляционный язык SQL // Компьютеры+Программы, N3(4). 1993. С. 4-12.
5. Дейт К. Руководство по реляционной СУБД DB2 / Пер. с англ. и предисл. М.Р.Когаловского. М.: Финансы и статистика, 1988. 320 с.: ил.
Приложение 1
Таблица 1.1. Типы данных, допустимые в стандарте ANSI SQL
Тип данных Описание
Текстовый тип
CHAR или CHARACTER Строка текста. Аргумент размера - натуральное число, задающее максимальную длину строки.
Числовые типы
INT или INTEGER Целое число. Аргумент размера не используется (зависит от способа реализации).
SMALLINT Совпадает с INTEGER, за исключением того, что для этого типа размер может быть меньше, чем для типа INTEGER.
DEC или DECIMAL Десятичное число, которое может иметь в своем представлении десятичную точку. Аргумент размера имеет две части: точность (количество значащих десятичных разрядов) и масштаб (максимальное число разрядов справа от десятичной точки).
NUMERIC Совпадает с DECIMAL, но максимальное количество разрядов не может превышать значения точности.
FLOAT Число с плавающей точкой, представленное в экспоненциальной форме. Аргумент размера имеет единственное значение, задающее минимальную точность.
REAL Совпадает с FLOAT, за исключением того, что точность не указывается и зависит от конкретной реализации.
DOUBLE или
DOUBLE PRECISION Совпадает с REAL, за исключением того, что точность конкретной реализации может быть превышать точность для REAL.
Таблица 1.2. Типы данных, допустимые в FoxPro 2.6 для Windows
Тип данных Описание
CHARACTER Аналог типа ANSI SQL с тем же названием. Длина поля от 1 до 254 символов.
NUMERIC Аналог типа ANSI SQL с тем же названием. Длина поля от 1 до 20 позиций, включая знак числа и десятичную точку, если они есть.
FLOAT Аналог типа ANSI SQL с тем же названием. Длина поля от 1 до 20 позиций, включая знак числа и десятичную точку, если они есть.
DATE Дата/время. Длина поля стандартная - 8.
LOGICAL Истина(T)/Ложь(F). Длина поля стандартная - 1.
MEMO Поле примечаний. Длина поля стандартная - 10.
GENERAL Поле ссылки на объект. Длина поля стандартная - 10.
Примечание: стандартные языковые средства SQL в СУБД FoxPro допускают обработку только полей первых четырех типов. В примерах, приводимых в пособии, используются только первые два типа полей.