- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •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.5. Выражения
Выражения в SQL используются для выполнения операций над значениями, извлечёнными из базы данных или используемыми для поиска в базе данных. Например, в следующем запросе вычисляется процентное соотношение объёма и плана продаж для каждого офиса:
SELECT CITY, TARGET, SALES, (SALES/TARGET)*100 FROM OFFICES
А этот запрос возвращает список офисов, объём продаж которых превышает план на $50000 или больше:
SELECT СITY FROM OFFICES WHERE SALES > TARGET + 50000.00
В соответствии со стандартом ANSI/ISO в выражениях можно использовать четыре арифметические операции: сложение (X+Y), вычитание (X-Y), умножение (X*Y) и деление (X/Y).
Для формирования сложных выражений можно использовать скобки, например:
(SALES*1.05)-(TARGET*0.95)
Строго говоря, в приведённом выше выражении скобки не требуются, поскольку в соответствии со стандартом ANSI/ISO умножение и деление имеют более высокий приоритет, чем сложение и вычитание.
В стандарте ANSI/ISO определено также, что преобразование целых чисел в десятичные и десятичных чисел в числа с плавающей запятой должно происходить автоматически. Таким образом, в одном выражении можно использовать числовые данные разных типов.
В большинстве СУБД допускается выполнение операций над датами и строками. Например, в СУБД DB2 реализован оператор конкатенации строк, записываемый в виде двух вертикальных черточек (||). Если в двух столбцах с именами FIRST_NAME И LAST_NAME содержатся значения "Jim" и "Jackson", следующее выражение в DB2:
(‘Mr./Mrs.’ || FIRST_NAME || ‘ ’ || LAST_NAME)
вернёт строку "Mr./Mrs. Jim Jackson".
1.3.6. Встроенные функции
Хотя встроенные функции не были определены в стандарте SQL1, в большинстве СУБД такие функции были реализованы уже в то время. Многие из них выполняли различные преобразования типов данных.
Например, встроенные функции MONTH() и YEAR() из СУБД DB2 принимают в качестве аргумента значения DATE или TIMESTAMP и возвращают целое число, представляющее соответственно месяц или год из заданного аргумента.
Запрос, приведенный ниже, возвращает имя и месяц приёма на работу служащего:
SELECT NAME, MONTH(HIRE_DATE) FROM SALESREPS
А этот запрос возвращает список служащих, нанятых на работу в 2008 году:
SELECT NAME, MONTH(HIRE_DATE) FROM SALESREPS WHERE YEAR(HIRE_DATE)=2008
Кроме того, многие из встроенных функций выполняют форматирование данных. Например, встроенная функция TO_CHAR() из СУБД Oracle принимает в качестве аргументов значение типа DATE и спецификацию формата, а возвращает строку, содержащую значение даты, отформатированное в соответствии со спецификацией. В результатах, возвращаемых запросом
SELECT NAME, TO_CHAR (HIRE_DATE, ‘DAY MONTH DD, YYYY’)
FROM SALESREPS
благодаря использованию встроенной функции TO_CHAR() все даты приёма на работу будут иметь формат "Wednesday June 14, 2008"
В общем случае встроенную функцию разрешается использовать в любом месте инструкции SQL, в котором можно использовать константу того же типа данных. Здесь невозможно перечислить все встроенные функции, поддерживаемые распространёнными диалектами SQL, поскольку их слишком много. В стандарт SQL2 вошли наиболее полезные функции из различных СУБД. Эти функции перечислены в таблице:
Встроенные функции, определённые в стандарте SQL2
Функция |
Что возвращает |
BIT_LENGTH(строка) |
количество битов в цепочке |
CAST(значение AS тип данных) |
значение, преобразованное в указанный тип данных (например, дата, преобразованная в строку) |
CHAR_LENGTH(строка) |
длина строки символов |
CONVERT (строка USING функция) |
строка, преобразованная в соответствии с указанной функцией |
CURRENT_DATE |
текущая дата |
CURRENT_TIME(точность) |
текущее время с указанной точностью |
CURRENT_TIMESTAMP(ТОЧНОСТЬ) |
текущие дата и время с указанной точностью |
EXTRACT(часть FROM значение) |
указанная часть (DAY, HOUR и т.д.) из значения типа DATETIME |
LOWER(строка) |
строка, переведённая в нижний регистр |
OCTET_LENGTH(строка) |
число байтов в строке символов |
POSITION(подстрока IN строка) |
позиция, с которой начинается вхождение подстроки в строку |
SUBSTRING (строка FROM n FOR длина) |
часть строки, начинающаяся с n-го символа и имеющая указанную длину |
TRANSLATE(строка USING функция) |
строка, транслированная с помощью указанной функции |
TRIM(BOTH символ FROM строка) |
строка, из которой удалены ведущие и хвостовые указанные символы |
TRIM(LEADING символ FROM строка) |
строка, из которой удалены ведущие указанные символы |
TRIM(TRAILING символ FROM строка) |
строка, из которой удалены хвостовые указанные символы |
UPPER (строка) |
строка, переведённая в верхний регистр |