- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах.
- •2 Перечень тем ипр их наименование и объем в часах
- •3 Перечень тем контрольных работ их наименование и объем в часах
- •4. Курсовая работа, ее характеристика
- •Перечень тем курсовых работ
- •5. Литература
- •5.1 Основная
- •5.2 Дополнительная
- •6. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •7. Учебно-методическая карта дисциплины
- •1.1.2. Классификация субд
- •1.2. Субд начального уровня – MySql
- •1.2.1. Введение в MySql
- •1.2.2. Подготовка к работе с MySql
- •1.2.3. Создание базы данных, основы работы с таблицами MySql
- •1.2.4. Типы данных столбцов MySql
- •1.2.5. Работа с таблицами MySql
- •1.2.6. Логические операторы MySql
- •1.2.7. Команды обработки данных MySql
- •1.2.8. Математические функции MySql
- •1.2.9. Работа с датой и временем в MySql
- •1.2.10. Работа со строками в MySql
- •1.2.11. Дополнительные функции MySql
- •1.3. Субд корпоративного уровня – ms sql Server
- •1.3.1. Общая теория запросов sql
- •1.3.2. Имена в sql
- •1.3.3. Типы данных
- •1.3.4. Константы
- •1.3.5. Выражения
- •1.3.6. Встроенные функции
- •1.3.7. Отсутствующие значения (значения null)
- •1.3.8. Простые запросы sql на выборку данных
- •1.3.9. Предложение select
- •1.3.10. Предложение from
- •1.3.11. Вычисляемые столбцы
- •1.3.12. Выборка всех столбцов (инструкция select *)
- •1.3.13. Повторяющиеся строки (предикат distinct)
- •1.3.14. Отбор строк (предложение where)
- •1.3.15. Условия отбора
- •1.3.16. Составные условия отбора (операторы and, or и not)
- •1.3.17. Сортировка результатов запроса (предложение order by)
- •1.3.18. Правила выполнения однотабличных запросов
- •1.3.19. Сложные запросы
- •1.3.20. Запросы на объединение и повторяющиеся строки
- •1.3.21. Запросы на объединение и сортировка
- •1.3.22. Вложенные запросы на объединение
- •1.3.23. Многотабличные запросы на выборку
- •1.3.24. Запросы с использованием отношения предок/потомок
- •1.3.25. Запросы на выборку к трём и более таблицам
- •1.3.26. Объединение таблиц по неравенству
- •1.3.27. Особенности многотабличных запросов
- •1.3.28. Самообъединения
- •1.3.29. Производительность при обработке многотабличных запросов
- •1.3.30. Умножение таблиц
- •1.3.31. Правила выполнения многотабличных запросов на выборку
- •1.3.32. Внешнее объединение таблиц
- •1.3.33. Левое и правое внешние объединения
- •1.4. Способы взаимодействия программных средств в субд
- •1.4.1. Доступ к базе данных на стороне сервера
- •1.4.2. Доступ к базе данных на стороне клиента
- •1.5. Современные тенденции развития субд
- •1.5.1. Введение
- •1.5.2. Как предсказать тенденции развития субд
- •1.5.3. Эволюционный подход
- •1.5.4. Тенденции развития
- •1. Виртуализация ресурсов и grid-технологии
- •2. Встраивание Information Life Cycle Management (ilm) в субд
- •3. Самоуправление, самодиагностика, самолечение
- •4. Real Application Testing – механизмы промышленного тестирования версий и изменений
- •5. Совершенствование архитектур максимальной доступности
- •6. Включение измерения времени в субд
- •7. Поддержка новых типов данных (xml, rfid, Semantic Web, геном, медицина, быстрые lob и т.Д.)
- •8. Умные механизмы сжатия и дедублирования
- •9. Совершенствование методов защиты данных
- •11. Облачные вычисления (Cloud computing)
- •12. Машины баз данных
- •2.1.2. Администрирование ms sql Server
- •2.2. Повышение надёжности баз данных
- •2.2.1. Обеспечение сохранности данных в MySql
- •2.2.2. Обеспечеие сохранности данных в ms sql Server
- •2.3. Повышение производительности баз данных
- •2.3.1. Повышение производительности MySql
- •2.3.2. Повышение производительности ms sql Server
- •2.4. Повышение безопасности бд
- •2.4.1. Безопасность MySql
- •2.4.2. Безопасность ms sql Server
- •2.5. Модернизация бд в процессе эксплуатации
- •2.5.1. Расширение возможностей MySql
- •2.5.2. Распределённые базы данных
- •Указания по выбору варианта
- •Курсовое проектирование Методические указания по выполнению
- •Цель проектирования
- •Теоретические положения Основные понятия баз данных
- •Этапы проектирования базы данных
- •Модели данных
- •Нормальные формы отношений
- •Задания к выполнению курсового проекта
- •Указания по выбору варианта
- •Правила оформления выполненных заданий
- •Пример проектирования базы данных
1.3.9. Предложение select
В предложении SELECT, с которого начинаются все инструкции SELECT, необходимо указать элементы данных, которые будут возвращены в результате запроса. Эти элементы задаются в виде списка возвращаемых столбцов, разделённых запятыми.
Для каждого элемента из этого списка в таблице результатов запроса будет создан один столбец. Столбцы в таблице результатов будут расположены в том же порядке, что и элементы списка возвращаемых столбцов. Возвращаемый столбец может представлять собой:
имя столбца, идентифицирующее один из столбцов, содержащихся в таблицах, которые перечислены в предложении FROM; СУБД просто берёт значение этого столбца для каждой из строк исходной таблицы и помещает его в соответствующую строку таблицы результатов запроса;
константу, показывающую, что в каждой строке результатов запроса должно содержаться одно и то же значение;
выражение, показывающее, что СУБД должна вычислять значение, помещаемое в таблицу результатов запроса, по формуле, определённой в выражении.
1.3.10. Предложение from
Предложение FROM состоит из ключевого слова FROM, за которым следует список спецификаторов таблиц, разделённых запятыми. Каждый спецификатор таблицы идентифицирует таблицу, содержащую данные, которые извлекает запрос. Такие таблицы называются исходными таблицами запроса (и инструкции SELECT), поскольку все данные содержащиеся в таблице результатов запроса, берутся из них.
Результаты запроса на выборку
Результатом SQL-запроса на выборку всегда является таблица, содержащая данные и ничем не отличающаяся от таблиц базы данных. Если пользователь набирает инструкцию SQL в интерактивном режиме, СУБД выводит результаты запроса на экран в табличной форме. Если программа посылает запрос СУБД с помощью программного SQL, СУБД возвращает таблицу результатов запроса программе. В любом случае результаты запроса всегда имеют такой же формат, как и обычные таблицы, содержащиеся в базе данных.
Как правило, результаты запроса представляют собой таблицу с несколькими строками и столбцами. Например, запрос, приведенный ниже, возвращает таблицу из трёх столбцов (поскольку список возвращаемых столбцов состоит из трёх элементов) и десяти строк (поскольку количество служащих равно десяти).
Вывести список имен, офисов и дат приема на работу всех служащих:
SELECT NAME, REP_OFFICE, HIRE_DATE FROM SALESREPS
NAME |
REP_OFFICE |
HIRE_DATE |
Bill Adams |
13 |
12-FEB-88 |
Mary Jones |
11 |
12-OCT-89 |
Sue Smith |
21 |
10-DEC-86 |
Sam Clark |
11 |
14-JUN-88 |
Bob Smith |
12 |
19-MAY-87 |
Dan Roberts |
12 |
20-OCT-86 |
Tom Snyder |
NULL |
13-JAN-90 |
Larry Fitch |
21 |
12-OCT-89 |
Paul Cruz |
12 |
01-MAR-87 |
Nancy Angelli |
22 |
14-NOV-88 |
Рисунок 1.3.10.1 – Интерактивный SQL
В отличие от запроса, показанного выше, следующий запрос возвращает одну строку, так как есть всего один служащий, имеющий указанный идентификатор. Хотя результаты этого запроса, содержащие всего одну строку, имеют не такой "табличный" вид, как результаты, содержащие несколько строк, SQL все равно считает их таблицей, состоящей из трёх столбцов и одной строки.
Как зовут, а также каковы плановый и фактический объемы продаж служащего с идентификатором 107:
SELECT NAME, QUOTA, SALES FROM SALESREPS WHERE EMPL_NUM = 107
NAME QUOTA SALES
Nancy Angelli $300,000.00 $186,042.00
В некоторых случаях результатом запроса может быть единственное значение, как в следующем примере.
Каково среднее значение фактических объемов продаж по всем служащим компании?
SELECT AVG(SALES) FROM SALESREPS
AVG(SALES)
$289,353.20
Эти результаты запроса также считаются таблицей, которая состоит из одного столбца и одной строки.
И наконец, запрос может вернуть результаты, содержащие ноль строк, как в следующем примере.
Вывести список имён и дат приёма на работу всех служащих, фактический объём продаж которых превышает $500000.
SELECT NAME, HIRE_DATE FROM SALESREPS WHERE SALES > 500000.00
NAME HIRE DATE
Даже в таком случае результаты запроса считаются таблицей.
Обратите внимание, что поддержка отсутствующих данных в SQL распространяется и на результаты запроса. Если один из элементов данных в исходной таблице имеет значение NULL, оно попадет в результаты запроса при извлечении этого элемента. Например, в таблице SALESREPS значение NULL содержится в столбцах QUOTA и MANAGER. Следующий запрос возвращает эти значения во втором и третьем столбцах таблицы результатов запроса.
Вывести список служащих с их плановыми объёмами продаж и идентификаторами менеджеров:
SELECT NAME, QUOTA, MANAGER FROM SALESREPS
NAME QUOTA MANAGER
Bill Adams $350,000.00 104
Mary Jones $300,000.00 106
Sue Smith $350,000.00 108
Sam Clark $275,000.00 NULL
Bob Smith $200,000.00 106
Dan Roberts $300,000.00 104
Tom Snyder NULL 101
Larry Fitch $350,000.00 106
Paul Cruz $275,000.00 104
Nancy Angelli $300,000.00 108
To, что SQL-запрос всегда возвращает таблицу, очень важно. Это означает, что результаты запроса можно записать обратно в базу данных в виде таблицы. Это означает также, что результаты двух запросов, имеющие похожую структуру, можно объединить в одну таблицу. И наконец, это говорит о том, что результаты запроса сами могут стать предметом дальнейших запросов. Таким образом, табличная структура реляционной базы данных тесно связана с реляционными запросами SQL. Таблицам можно посылать запросы, а запросы возвращают таблицы.