- •1 . Архитектуры обработки данных. 1
- •Архитектура файл/сервер.
- •Архитектура клиент/сервер.
- •Многозвенная архитектура.
- •Способы организации данных.
- •Сетевая модель данных
- •Реляционная модель данных.
- •ЯзыкSqLкак язык работы с реляционными базами.
- •Данные и взаимосвязи.
- •Объекты.
- •Первичные ключи. Что выбрать в качестве первичных ключей для каждой из таблиц?
- •Нормализация данных.
- •Первая нормальная форма.
- •Вторая нормальная форма.
- •Третья нормальная форма.
- •Типы данных.
- •Числовые целые типы данных.
- •Числовые типы данных с плавающей точкой.
- •Символьные типы данных.
- •. Типы данных date, time и datetime.
- •Специальные типы данных.
- •Структура запроса, основные ключевые слова и операторы
- •Список основных операторовSql
- •Список основных ключевых словSql
- •ОператорSelect
- •ПредложениеSelect
- •ПредложениеFrom
- •Повторяющиеся строки (ключевое слово distinct).
- •ПредложениеWhere
- •Условия поиска.
- •Составные условия поиска (and, or и not)
- •Проверка на принадлежность диапазону значений (between)
- •Проверка на членство в множестве (in)
- •Проверка на равенство значению null (is null)
- •Проверка на соответствие шаблону (like)
- •Подстановочные знаки
- •Сортировка результатов запроса (предложениеOrder by)
- •Агрегатные функции
- •Вычисление суммы столбца (sum)
- •Вычисление экстремумов (min и max)
- •Вычисление среднего значения (avg)
- •Вычисление количества значений в столбце (count)
- •Запросы с группировкой (предложениеGroup by)
- •Условия поиска групп having
- •Работа с несколькими таблицами
- •Вложенные запросы
- •Исходная база данных
- •Вложение запросов.
- •Оператор exists
- •Объединение множества запросов в один
- •Когда можно выполнить объединение запросов ?
- •Использование union с order by.
- •Команды модификации данных
- •Ввод значений (insert)
- •Вставка пустых указателей (null)
- •Именование названий столбцов для вставки
- •Вставка результатов запроса
- •Удаление строк из таблиц (delete)
- •Изменение значений поля (update)
- •Использование подзапросов для команд модификации данных
- •Использование подзапросов в insert
- •Использование подзапросов с delete
- •Модификация структуры данных
- •Команда сreate table
- •Команда alter table.
- •Команда drop table
Использование подзапросов для команд модификации данных
Использование подзапросов в insert
Наиболее часто подзапрос используется с командой INSERT, которая добавляет строки в таблицу. Фактически случай вставки в таблицу результатов запроса рассмотренный в 5.6.1.3 и является случаем использования подзапроса с INSERT. Приведем еще один пример.
Предположим, есть таблица с именем Тклиент (содержащая информацию о клиентах из Перми) определения столбцов которой полностью соответствуют определениям таблицы Клиент. Заполнение таблицы ТКлиент:
INSERT INTO ТКЛИЕНТ
SELECT * FROM КЛИЕНТ
WHERE IDN_ ГОРОДА= 104;
Выходные данные:
Idn |
Idn_города |
Имя |
реквизиты |
Idn_банка |
205 |
104 |
Кузнецов |
-------------- |
314 |
208 |
104 |
Золин |
-------------- |
311 |
Подзапрос отыскивает всех клиентов с Idn_ города = 104, а INSERT помещает результат подзапроса в ТКлиент.
Использование подзапросов с delete
DELETE используется для удаления строк из таблицы. В предикате команды
DELETEможно использовать подзапросы. Например, если необходимо закрыть (удалить) банки с которым не работает ни один клиент :
DELETE FROM БАНКИ
WHERE ( SELECT COUNT(*) FROM КЛИЕНТ
WHERE IDN_БАНКА = БАНКИ.IDN) = 0;
В результате из таблицы Банки будут исключены строки Альфа-банк, Менатеп, Западуралбанк.
Модификация структуры данных
Команда сreate table
CREATE TABLE создает пустую таблицутаблицу, не имеющую строк . Команда СREATE TABLE определяет имя таблицы и множество поименованных столбцов в указанном порядке. Для каждого столбца устанавливается тип и размер. Каждая таблица должна иметь хотя бы один столбец.
Синтаксис команды СREATE TABLE :
СREATE TABLE < имя таблицы >
(< имя столбца > < тип данных >[(размер)],
< имя столбца > < тип данных >[(размер)],…);
Пробелы применяются для разделения отдельных частей команд в SQL, поэтому
их нельзя использовать как часть имени таблицы. Символ подчеркивания ( _ ) наиболее часто используются для разделения слов в именах таблицы. Для типа CHAR нужно обязательно указывать размер --- целое число, задающее максимальное число символов ,которые могут содержаться в поле.
Следующая команда позволяет создать таблицу Банки :
CREATE TABLE Банки
( Idn integer, реквизиты char (10));
Важен порядок столбцов в определении таблицы , он определяет порядок, в котором задаются значения элементов строк. Определения столбцов могут не задаваться в отдельных строках, но они должны разделяться запятыми.
Команда alter table.
ALTER TABLE изменяет уже созданную таблицу.
Синтаксис команды :
ALTER TABLE < имя таблицы > ADD < имя столбца >
< тип данных > < размер >
Новый столбец становится последним столбцом в таблице. Можно добавлять в таблицу нескольких столбцов с помощью одной команды в этом случае их разделяют запятой.
Добавим в таблицу Банки столбец имя клиента
ALTER TABLE БАНКИ ADD ИМЯ КЛИЕНТА CHAR(10)