
- •Классификация субд [5]
- •Функции субд
- •Централизованная архитектура
- •Технология с сетью и файловым сервером (архитектура «файл-сервер»)
- •Технология «клиент-сервер»
- •Трехзвенная (трехуровневая) архитектура
- •Реляционная модель данных
- •Методология idef1x
- •Определение отношения, домена, кортежа, реляционной базы данных, ключей
- •Связи между отношениями (таблицами)
- •Базовые теоретико-множественные операции реляционной алгебры
- •Специальные операции реляционной алгебры
- •Аномалии обновления
- •Первая Нормальная Форма
- •Определение функциональной зависимости
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •Вторая Нормальная Форма
- •Определение
- •3Нф (Третья Нормальная Форма)
- •Алгоритм нормализации (приведение к 3нф)
- •Реляционная модель данных: сравнение нормализованных и ненормализованных моделей.
- •16, Сравнение нормализованных и ненормализованных моделей
- •Null-значения
- •Потенциальные ключи
- •Целостность сущностей
- •Внешние ключи
- •Целостность внешних ключей
- •Замечания к правилам целостности сущностей и внешних ключей
- •Операции, которые могут нарушить ссылочную целостность
- •Для родительского отношения
- •Для дочернего отношения
- •20, Целостность реляционных данных: стратегии поддержания ссылочной целостности.
- •Стратегии поддержания ссылочной целостности
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Create table – создать таблицу
- •Оператор check
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Операторы drop
- •Выборка данных
- •Сортировка результатов
- •Встроенные функции sql
- •Средства модификации данных языка sql
- •Вставка данных – insert
- •Изменение данных – update
- •Удаление данных – delete
- •Выборка данных
- •Представления
- •Применение представлений
- •Обновление представлений
- •Триггеры
- •Хранимые процедуры
- •Большая безопасность и меньший сетевой трафик.
- •Sql можно оптимизировать
- •Совместное использование кода:
- •Структура памяти эвм
- •Представление экземпляра логической записи
- •Организация обмена между оперативной и внешней памятью
- •Структуры хранения данных во внешней памяти эвм
- •Назначение и проверка полномочий, проверка подлинности
- •Средства защиты базы данных
- •Архитектура системы безопасности ms sql Server
- •34.Роли сервера
- •35, Права доступа
- •36, Необходимость в атомарных транзакциях
- •П , Параллельная обработка транзакций
- •Проблема потерянного обновления
- •Блокировка ресурсов
- •Блокировочная терминология
- •Сериализуемые транзакции
- •Взаимная блокировка
- •Оптимистическая и пессимистическая блокировки
- •Объявление характеристик блокировки
- •Свойства транзакций
- •Атомарность
- •Долговечность или устойчивость
- •Согласованность
- •Изолированность транзакции. Уровни изоляции
- •Типы курсоров
Операторы drop
В языке SQL имеется множество других операторов и конструкций для определения данных. Одним из самых полезных среди них является оператор DROP TABLE. Но он одновременно является и одним из самых опасных, поскольку удаляет таблицу из базы данных вместе со всеми содержащимися в ней данными.
Если вам нужно удалить из базы данных таблицу под названием КЛИЕНТ и все содержащиеся в ней данные, используйте следующий оператор:
Листинг 6. DROP TABLE КЛИЕНТ.
Оператор DROP TABLE не выполняется, если таблица содержит или может содержать значения, необходимые для соблюдения ограничений ссылочной целостности. Например, столбец ИдПроекта таблицы ПРОЕКТ может содержать значения, необходимые для соблюдения ограничения внешнего ключа ПроектВК. Попытка передать СУБД на выполнение оператор DROP TABLE ПРОЕКТ окончится неудачей, и система выдаст сообщение об ошибке.
Если вы хотите удалить таблицу ПРОЕКТ, нужно сначала удалить либо ограничение внешнего ключа ПроектВК, либо всю таблицу НАЗНАЧЕНИЕ. Удалить ограничение можно при помощи следующего оператора:
ALTER TABLE НАЗНАЧЕНИЕ DROP CONSTRAINT ПроектВК;
Если вы предпочитаете удалить всю таблицу, это можно сделать так: DROP TABLE НАЗНАЧЕНИЕ;
Выполнив любое из этих действий, вы сможете беспрепятственно удалить таблицу ПРОЕКТ.
22 ОСНОВЫ ЯЗЫКА SQL: СИНТАКСИС ОПЕРАТОРОВ МАНИПУЛИРОВАНИЯ ДАННЫМИ (SELECT, ORDER BY, ВСТРОЕННЫЕ ФУНКЦИИ, GROUP BY).
Выборка данных
SELECT
Базовый формат SQL-оператора SELECT таков: SELECT (имена столбцов или *), FROM (имена таблиц, разделенные запятыми, если таблиц больше, чем одна), WHERE (условия). С помощью оператора SELECT можно запрашивать определенные столбцы, определенные строки или то и другое вместе.
Чтение заданных столбцов из одиночной таблицы. Следующий оператор запросит (прочтет) три из четырех столбцов таблицы ПРОЕКТ:
Листинг 15
SELECT Название, Отдел, МаксТрудозатраты
FROM ПРОЕКТ;
Если нужно, чтобы СУБД нашла и удалила одинаковые строки, при запросе необходимо использовать ключевое слово DISTINCT:
Листинг 16
SELECT DISTINCT Отдел
FROM ПРОЕКТ;
Чтение заданных строк из одиночной таблицы. Приведенные выше SQL-операторы выбирали определенные столбцы всех строк таблицы. Можно сделать и наоборот — выбрать все столбцы определенных строк. Например, следующий оператор запрашивает все столбцы из тех строк таблицы ПРОЕКТ, которые содержат сведения о проектах финансового отдела:
Листинг 17
SELECT ИдПроекта, Название, Отдел, МаксТрудозатраты
FROM ПРОЕКТ
WHERE Отдел = 'Финансы';
В условиях, задаваемых в предложении WHERE, значения столбцов, имеющих типы данных Char и VarChar, необходимо заключать в одинарные кавычки (апострофы). Для столбцов типов Integer и Numeric этого не требуется. Объединять несколько условий можно с помощью ключевого слова AND.
Листинг 18
SELECT *
FROM ПРОЕКТ
WHERE Отдел = 'Финансы' AND МаксТрудозатраты > 100;
Множества значений задаются с использованием ключевых слов IN (соответствие любому значению из списка) и NOT IN (несоответствие ни одному значению из списка).
Листинг 19
SELECT Имя, Телефон, Отдел
FROM СОТРУДНИК
WHERE Отдел IN ('Бухгалтерия', 'Финансы', 'Маркетинг');
Диапазоны, специальные символы и пустые значения в предложениях WHERE. В предложениях WHERE могут также указываться диапазоны и шаблоны поиска. Для задания диапазонов используется ключевое слово BETWEEN. Например:
Листинг 20
SELECT Имя, Отдел
FROM СОТРУДНИК
WHERE ТабельныйНомер BETWEEN 200 AND 500;
Шаблоны поиска можно задавать при помощи специальных символов _ (произвольный одиночный символ) и % (произвольная последовательность символов) в сочетании с ключевым словом LIKE. Для поиска пустых значений используются ключевые слова IS NULL.
Листинг 21
SELECT *
FROM ПРОЕКТ
WHERE Имя LIKE 'KB_ Анализ портфеля';
Подчеркивание означает, что на данном месте может стоять любой символ. Результатом этого оператора является следующая таблица:
1000 КВЗ Анализ портфеля Финансы 75
1500 КВ4 Анализ портфеля Финансы 110
Чтобы найти всех сотрудников, чей номер телефона начинается с '285', можно четыре последние цифры номера представить символами подчеркивания:
Листинг 22
SELECT *
FROM СОТРУДНИК
WHERE Телефон LIKE '285-____';
Символ процента (%) представляет последовательность из одного или нескольких произвольных символов. Запрос, возвращающий строки сотрудников с номерами телефонов, начинающимися с '285', можно записать по-другому:
Листинг 23
SELECT *
FROM СОТРУДНИК
WHERE Телефон LIKE '285%';
Финансы
Маркетинг
Маркетинг
Инф.
системы
Инф.
системы
Бухгалтерия
Бухгалтерия
Листинг 24
SELECT Имя, Отдел
FROM СОТРУДНИК
WHERE Телефон IS NULL;