- •16. Язык sql (Structured Query Language). Интерактивный и встроенный sql. Составные части sql. Типы данных sql. Основные типы команд sql
- •17. Основные отличия sql от процедурных языков программирования. Встроенные функции
- •18. Язык sql. Команды манипулирования данными
- •19. Архитектуры приложений. Основные различия между архитектурами приложений.
- •21. Понятие подзапроса. Примеры формирования связанных и вложенных подзапросов.
- •22. Понятие хранимой процедуры. Особенности и синтаксис построения хранимых процедур на языке TransactSql.
- •23. Определение пользовательской функции. Основное отличие пользовательских функций от хранимых процедур. Основное отличие скалярной пользовательской функции от табличной.
- •24.Понятие триггера. Особенности и синтаксис построения триггера на языке TransactSql.
- •25.Современные направления исследований и разработок в области баз данных. Системы управления базами данных следующего поколения.
- •26.Реализация системы защиты данных в субд.
- •27.Информационные приложения, основанные на использовании "складов данных" (DataWarehousing). Oltp и olap приложения. Описание типа хранилища данных под названием «снежинка», «звезда».
- •28.Объектно-реляционные субд. Подходы к построению объектно-реляционных субд (орсубд). К лассификация субд
- •29.Объектно-ориентированные субд. Особенности построения моделей суобд.
17. Основные отличия sql от процедурных языков программирования. Встроенные функции
Отличие SQL от процедурных языков программирования
SQL относится к классу непроцедурных языков программирования. В отличие от универсальных процедурных языков, которые также могут быть использованы для работы с БД, SQL ориентирован не на записи, а на множества.
Это означает следующее: в качестве входной информации для формулируемого на языке SQL запроса к БД используется множество кортежей-записей одной или нескольких таблиц-отношений. В результате выполнения запроса также образуется множество кортежей результирующей таблицы-отношения.
Функции преобразования символов в строке
• LOWER — перевод в строчные символы (нижний регистр) LOWER (<строка>)
• UPPER — перевод в прописные символы (верхний регистр) UPPER (<строка>)
• INITCAP — перевод первой буквы каждого слова строки в прописную(заглавную) INITCAP (<строка>)
Строковые функции
• LENGTH — определение длины строки LENGTH (<строка>)
LFAD(<строка>,<длина>[,<подстрока>]) — дополнение строки слева.
RPAD(<строка>,<длина>[,<подстрока>]) — дополнение строки справа.
LTRIM(<строка>[,<подстрока>]) — удаление левых граничных символов .
RTRIM(<строка>[,<подстрока>]) — удаление правых граничных символов
SUBSTR (<строка>,<нзчало>[,<количество>)) — выделение подстроки.
INSTR (<строка>,<подстрока>[,<начало поиска> [,<номер вхождения>]]) — поиск подстроки.
Функции работы с числами
ABS — абсолютное значение.
FLOOR— урезает значение числа с плавающей точкой до наибольшего целого
CEIL— самое малое целое, равное или большее заданного числа.
Гиперболические функции — COSH, SINH, TANH
Тригонометрические функции —COS, SIN, TAN и т.д.
Функция округления—ROUND
Функция усечения—TRUNC
Функция возведения в степень — POWER
Функции преобразования из одного типа данных в другой:
TO_CHAR, TO_NUMBER, TO_DATE, CAST.
Агрегирование и групповые функции
Агрегирующие функции позволяют получать из таблицы сводную (агрегированную) информацию, выполняя операции над группой строк таблицы. Для задания в SELECT-запросе агрегирующих операций используются ключевые слова:
• SUM вычисляет арифметическую сумму всех выбранных значений данного поля;
• AVG вычисляет среднее значение для всех выбранных значений данного поля;
• МАХ вычисляет наибольшее из всех выбранных значений данного поля;
• MIN вычисляет наименьшее из всех выбранных значений данного поля.
COUNT определяет количество строк или значений поля, выбранных посредством запроса и не являющихся NULL--значениями; Для подсчета общего количества строк в таблице следует использовать функцию COUNT со звездочкой. Аргументы DISTINCT и ALL позволяют, соответственно исключать и включать дубликаты обрабатываемых функции COUNT значений.
1) SELECT COUNT
FROM EXAM_MARKS;
Предложение GROUP BY (группировать по) позволяет группировать записи в подмножества, определяемые значениями какого-либо поля, и применять агрегирующие функции уже не ко всем записям таблицы, а раздельно к каждой сформированной группе
Предположим, требуется найти максимальное значение оценки, полученной каждым студентом, тогда запрос имеет вид:
SELECT STUDENT_ID, MAX(MARK)
FROM EXAM_MARKS
GROUP BYSTUDENT_ID;
