Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение систем управления..pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
2.31 Mб
Скачать

в 6.6.1, и является случаем использования подзапроса с INSERT. Приведем еще один пример.

Предположим, есть таблица Клиент_____ П (содержащая информа­ цию о клиентах из Перми), определения столбцов которой полностью со­ ответствуют определениям таблицы Клиент. Заполнение таблицы Клиент:

INSERT INTO Т КЛИЕНТ SELECT * FROM КЛИЕНТ WHERE IDN_ ГОРОДА= 104; Выходные данные:

IDN

IDN города

Имя

Реквизиты IDN банка

205

104

Кузнецов

314

208

104

Золин

311

Подзапрос отыскивает всех клиентов с IDN_ города = 104, a INSERT помещает результат подзапроса в Клиент.

Использование подзапросов с DELETE. DELETE используется для удаления строк из таблицы. В предикате команды DELETE можно исполь­ зовать подзапросы. Например, если необходимо закрыть (удалить) банки, с которыми не работает ни один клиент, то нужно ввести:

Считаетсяколичествоклиентов

DELETE FROM БАНКИ / WHERE (SELECT COUNT(*) FROM КЛИЕНТ

WHERE IDNJBAHKA = БАНКИ.ПЖ) = 0;

В результате из таблицы Банки будут исключены строки Альфабанк, Менатеп, Западуралбанк.

6.7. Модификация структуры данных

6.7.1. Команда CREATE TABLE. Эта команда создает пустую таблицу - таблицу, не имеющую строк. CREATE TABLE определяет имя таблицы и множество поименованных столбцов в указанном порядке. Для каждого столбца устанавливается тип и размер. Каждая таблица должна иметь хотя бы один столбец.

Синтаксис команды CREATE TABLE :

CREATE TABLE < имя таблицы >

(< имя столбца > < тип данных >[(размер)], < имя столбца > < тип данных >[(размер)],...);

Пробелы применяются для разделения отдельных частей команд в SQL, поэтому их нельзя использовать как часть имени таблицы. Символ подчеркивания ( _ ) наиболее часто используется для разделения слов в именах таблицы. Для типа CHAR нужно обязательно указывать размер - целое число, задающее максимальное число символов, которые могут со­ держаться в поле.

Следующая команда позволяет создать таблицу Банки:

CREATE TABLE Банки

(IDN integer, реквизиты char (10));

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

6.7.2. Команда ALTER TABLE. Эта команда изменяет уже созданную таблицу.

Синтаксис команды :

ALTER TABLE < имя таблицы > ADD < имя столбца > < тип данных > < размер >

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

Добавим в таблицу Банки столбец Имя клиента:

ALTER TABLE БАНКИ ADD ИМЯ КЛИЕНТА CHAR(10)

6.7.3. Команда DROP TABLE. Эта команда удаляет пустую таблицу из базы данных. Нужно сначала удалить все данные из таблицы, т.е. сделать ее пустой, а затем уже удалить таблицу из базы данных. Таблица, имею­ щая строки, не может быть удалена. Синтаксис команды, удаляющей пус­ тую таблицу из системы:

DROP TABLE < имя таблицы >

После выполнения команды имя таблицы больше не распознается как имя таблицы, команды не могут работать с объектом, имя которого было указано в команде DROP. Перед выполнением команды следует удостове­ риться, что эта таблица не содержит внешних ключей для какой-либо дру­ гой таблицы.

ШМИДТ Игорь Альбертович

ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ СИСТЕМ УПРАВЛЕНИЯ

Конспект лекций

Лит. редактор Н.В. Бабинова Корректор Г.Я. Шилоносова

Лицензия ЛР № 020370

Подписано в печать 25.11.05. Формат 60x90/16. Набор компьютерный. Уел. печ. л. 3,5.

Уч.-изд. л. 3,1. Тираж 150 экз. Заказ № 157.

Редакционно-издательский отдел и ротапринт Пермского государственного технического университета Адрес: 614600. Пермь, Комсомольский пр., 29