- •1)Основные функции системы управления базами данных.
- •2)Виды моделей данных. Примеры.
- •3)Три уровня представления данных в субд (ansi/sparc).
- •4)Архитектурные решения, используемые при реализации многопользовательских субд.
- •5)Классификация бд. Примеры субд
- •6)Основные понятия реляционных баз данных (тип данных, домен, атрибут, отношение, заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения, первичный ключ). Пример.
- •7)Целостность реляционных данных. Ключи (потенциальные, первичные, альтернативные, внешние)
- •8)Язык sql. Составные части. Разновидностями языка sql. Отличие от процедурных языков программирования.
- •9)Архитектура и принципы физического хранения данных в субд MySql
- •10)Команда create database. Команды выбора бд.
- •11) Команда создания таблиц. Пример для субд MySql. Просмотр структуры таблицы.
- •12)Команда изменения структуры таблицы. Основные преобразования, выполняемые этим оператором. Примеры для субд MySql.
- •13)Три категории типов данных столбцов субд MySql. Сравнить типы данных char и varchar.
- •14)Три категории типов данных столбцов субд MySql. Сравнить типы данных set и enum.
- •15)Три категории типов данных столбцов субд MySql. Сравнить типы данных blob и text.
- •16)Типы данных даты и времени субд MySql.
- •17)Запись данных в таблицу субд MySql. Ввод данных из файла.
- •5.1. Запись данных в таблицы
- •18)Синтаксис оператора select. Выборка данных с помощью условия. Примеры для субд MySql.
- •19)Синтаксис оператора select. Операторы in и between.
- •Операторы in и between
- •20)Агрегатные функции MySql. Примеры для субд MySql.
- •Поиск минимального и максимального значений столбца.
- •21)Синтаксис оператора select. Ограничение количества извлекаемых данных. Упорядочивание данных.
- •Упорядочивание данных order by
- •22)Вложенные запросы. Синтаксис. Изменение записей update.
- •23) Основные функции для работы с датой и временем в MySql (текущая дата, выделение части даты). Представление даты. Примеры.
- •24) Основные функции для работы со строками в MySql. Сравнение строк, длина строки, приведение к нижнему и верхнему регистрам. Примеры.
- •Insert(строка, позиция, длина, новая_строка)
- •25) Компоненты ms sql Server. Системные базы данных.
- •26)Типы данных ms sql Server. Пользовательские типы данных. Пример создания.
- •27)Типы данных ms sql Server. Пространственные и специальные типы данных.
- •28)Конструкции Transact-sql. Переменные.
- •Управляющие конструкции Transact-sql:
- •1.С входным выражением:
- •29) Физическая организация базы данных ms sql Server. Типы файлов баз данных. Файловые группы.
- •30)Физическая структура файлов данных. Экстенты.
- •31)Физическая структура файлов данных. Типы страниц.
- •32) Индексы. Виды индексов ms sql Server.
- •33)В-деревья. Примеры.
- •34) Создание, изменение индекса в ms sql Server. Сравнение кластеризованных и некластеризованных индексов.
- •35) Секционирование таблиц.
- •36)Выборка данных из нескольких таблиц. Конструкция join. Виды соединений.
- •37) Объединение нескольких наборов результатов union. Примеры.
- •38) Виды соединений. Примеры.
- •39)Агрегатные функции. Примеры.
- •40)Подзапросы. Примеры.
- •41) Безопасность в ms sql Server. Роли сервера. Учетные записи для входа.
- •Роли сервера
- •Управление учетными записями для входа
- •42)Безопасность в ms sql Server. Роли базы данных. Предоставление доступа к бд.
- •43)Представления. Примеры.
- •Создание представлений
- •44)Курсор. Виды курсоров. Управление курсорами.
- •Управление курсором в среде ms sql Server
- •45)Пользовательские функции и хранимые процедуры.
- •46)Сценарии и пакеты в ms sql Server. Схемы бд.
- •47)Триггеры.
- •48)Ограничение check.
- •49)Реляционная алгебра Кодда. Основные операторы.
- •Основные операторы реляционной алгебры
- •50)Нормализация бд. Нормальные формы.
- •51) Этапы проектирования бд.
37) Объединение нескольких наборов результатов union. Примеры.
Оператор UNION объединяет результаты двух и более операторов SELECT и применяется в случае, когда данные нельзя получить при помощи одного запроса.
Для получения единого итогового набора данных необходимо написать отдельные операторы SELECT и объединить их при помощи оператора UNION, при этом, в отличие от соединения, записи в итоговый набор добавляются друг за другом.
Синтаксис:
SELECT ...
UNION [ALL]
SELECT ...
[,...]
По умолчанию повторяющиеся записи удаляются (т.е. используется опция DISTINCT).
Для получения всех записей необходимо указать ключевое слово ALL.
Необходимо также учитывать, что список полей, порядок и все их свойства должны быть одинаковы во всех используемых запросах.
Например, если количество столбцов в списке выборки первого запроса равно трем, то второй запрос (а также все последующие запросы, соединяемые операцией UNION) также должен иметь в списке выборки три столбца.
Имена полей итогового набора берутся только из первого запроса, поэтому создание псевдонимов полей выполняется в нем.
38) Виды соединений. Примеры.
Существует четыре вида соединений:
внутреннее, внешнее, полное, перекрестное.
Внутреннее соединение. Конструкция INNER JOIN
При таком виде соединения сравниваются значения общих полей двух таблиц. Конструкция INNER JOIN возвращает только строки, согласованные по всем полям, которые обозначены как используемые для соединения. Записи, для которых не имеется пары в связанной таблице, в результат не включаются.
По умолчанию применяются внутренние соединения, ключевое слово INNER является необязательным.
Пусть есть таблица с данными о фильмах Film (Таблица 1):
Таблица 1. Film
FilmlD |
FilmName |
YearMade |
1 |
My Fair Lady |
1964 |
2 |
Unforgiven |
1992 |
Есть вторая таблица с данными об актерах Actors (Таблица 2):
Таблица 2: Actors
FilmlD |
FirstName |
LastName |
1 |
Rex |
Harrison |
1 |
Audrey |
Hepburn |
3 |
Clint |
Eastwood |
4 |
Jak |
Chan |
Посмотрим результаты, полученные с помощью конструкции INNER JOIN.
SELECT *FROM Film INNER JOIN Actors ON Film.FilmID = Actors.FilmID;
Внешние соединения. LEFT OUTER JOIN, RIGHT OUTER JOIN
При использовании конструкции INNER JOIN исключаются все строки, не соответствующие всем заданным критериям, а при использовании конструкции OUTER, а также конструкции FULL JOIN, существует возможность включить в результирующий набор строки, которые соответствуют хотя бы одному из заданных критериев. Иногда с помощью конструкции OUTER JOIN удается легко решить задачи, которые на первый взгляд кажутся очень сложными/
Такие соединения применяются для получения полного набора записей одной из таблиц. В соединениях различаются стороны - левая и правая. Левой считается таблица, указанная в первую очередь, а правой - таблица, указанная после нее.
При левом соединении (ключевое слово LEFT JOIN) в результат будут включены все записи левой таблицы (имя которой расположено слева от JOIN), независимо от того, есть для них соответствующая запись в правой таблице (имя таблицы расположено справа от JOIN) или нет.
При правом соединении (ключевое слово RIGHT JOIN) в результат включаются все записи правой таблицы, независимо от того, есть для них соответствующая строка в левой таблице.
Синтаксис:
SELECT <SELECT list>
FROM <the “LEFT” table> <LEFT!RIGHT>[OUTER} JOIN <the “RIGHT” table>
ON <join condition>
Пример 1:
Выполним левое соединение для таблицы 1 и таблицы 2.
SELECT *
FROM Film f Left JOIN Actors a
ON f.FilmlD = a.FilmlD;
Полные соединения. FULL JOIN
Полные соединения можно считать своего рода результатом совместного применения левого и правого соединений. Если применяется соединение с ключевым словом FULL, соответствующий оператор равносилен передаваемому СУБД SQL Server указанию, что в результаты должны быть включены все строки из таблиц, находящихся по обе стороны от ключевого слова JOIN, без каких либо исключений.
Пример:
Выполним полное соединение для таблицы 1 и таблицы 2.
SELECT *
FROM Film f FULL JOIN Actors a
ON f.FilmlD = a.FilmlD;
Перекрестные соединения
При таком соединении выводятся все комбинации записей таблиц, при этом не требуется указание совпадающих значений полей, поэтому условие ON опускается.
Происходит соединение каждой строки таблиц, находящихся с одной стороны от ключевого слова JOIN, с каждой строкой таблиц, находящихся с другой стороны от ключевого слова JOIN. В итоге формируется декартово произведение всех строк, заданных по обе стороны ключевого слова JOIN.
В нормализованных базах данных перекрестные соединения чаще всего используются для получения списка всех возможных комбинаций записей двух таблиц, т.е. число записей итогового набора равняется произведения числа записей первой таблицы на число записей второй.
Пример: Выполнить перекрестное соединение таблицы 1 и таблицы 2.
SELECT *
FROM Film Cross JOIN Actors
