Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Встроенные математические функции


Математические функции

В качестве аргументов большинство функций этой группы принимает числа с плавающей запятой и возвращает результат аналогичного типа.

CEILING(x) возвращает наименьшее целое значение, не меньшее значения аргумента x (округляет вверх).

EXP(x) возвращает значение экспоненциальной функции (ex).

FLOOR(x) возвращает наибольшее целое значение, не превышающее значение аргумента x (округляет вниз).

LOG(x) возвращает значение натурального логарифма аргумента х.

LOG10(x) возвращает значение десятичного логарифма аргумента х.

MOD(x,y) возвращает остаток от деления нацело х на у. Сначала оба аргумента округляются до целого значения, а затем вычисляется целочисленный остаток.

SELECT MOD(15.4,6.4) => 3

SIN(x) возвращает тригонометрический синус аргумента х. Аргумент задается в радианах.

SQRT(x) возвращает положительный квадратный корень из неотрицательного числа х.

RAND([начальное_число]) – возвращает псевдослучайное число в интервале от 0 до 1. Аргумент функции инициализирует генератор псевдослучайных чисел. Если аргумент отсутствует, используется значение системных часов.

ROUND(x[,d]) возвращает значение аргумента х (числа с плавающей запятой), округленное до d десятичных разрядов (если d не указано, число округляется до целого числа, если d отрицательно, число х округляется до d знаков слева от десятичной точки).

TAN(x) возвращает тригонометрический тангенс аргумента х. Аргумент задается в радианах.

TRANCATE(число, точность) – усекает число до требуемой точности.

Алгоритм функционирования Mysql

SQL ‑ это язык, ориентированный специально на реляционные базы данных. Он устраняет много дополнительной работы, которую вы должны были бы сделать, если бы вы использовали универсальный язык программирования, например, C (Си).

Чтобы сформировать реляционную базу данных на C, вам необходимо было бы:

- определить объект, называемый таблицей, который мог бы расти, чтобы иметь любое число строк,

- затем создавать постепенно процедуры для помещения значений в него (т.е. для наполнения таблицы данными),

- если бы вы захотели найти некоторые определенные строки, вам необходимо было бы выполнить по шагам процедуру, подобную следующей:

 

1. Рассмотреть текущую строку таблицы.

2. Проверить ‑ является ли эта строка одной из тех строк, которая вам нужна.

3. Если это так, сохранить ее где-нибудь, пока вся таблица не будет проверена.

4. Проверить, имеются ли другие строки в таблице.

5. Если имеются, возвратиться на шаг 1.

6. Если строк больше нет, вывести все значения, сохраненные в шаге 3.

 

Конечно, это - не фактический набор C-команд, а только логическая последовательность шагов, которые должны были бы быть включены в реальную программу. SQL позволит не погружаться в излишнюю детализацию алгоритмов, а заниматься только существом решаемых запросов. Команды в SQL могут работать со всеми группами таблиц, как с единым объектом, и могут обрабатывать любое количество информации, извлеченной или полученной из них, в виде единого модуля.

Встроенные строковые функции

Строковые функции

 

Описанные ниже функции принимают строки в качестве аргументов либо возвращают строки.

BIN(целое) – функция возвращает двоичное представление заданного целого числа.

SELECT BIN(13) =>1101,

BINARY строка – объявляет строку двоичной, т.е. операции сравнения с ней будут чувствительны к регистру. Это слово имеет более высокий приоритет, чем операторы сравнения.

SELECT ‘a’=’A’, BINARY ‘a’=’A’

1 0

CONCAT(str1,str2,…) возвращает строку, созданную путем объединения (конкатенации) аргументов. Если какая-либо строка содержит NULL, то и результат будет равен NULL.

CONCAT(“Иванов”,”Василий”) => ИвановВасилий

CONCAT(“Домашний”,” ”,”адрес”) => Домашний адрес

INSERT(строка, позиция, длина, подстрока) – вставляет подстроку в строку, начиная с позиции. Длина показывает, сколько символов в строке может быть удалено, начиная с позиции.

INSERT(“Паразитолог”,5,3,”псих”) => Парапсихолог

INSTR(str, substr) возвращает номер позиции первого вхождения подстроки substr в строку str.

INSTR(“Пароход”, “ох”) =>4

LEFT(str, len) возвращает len левых крайних символов из строки str.

LEFT(“Пароход”, 3) => Пар

LENDTH(str) – возвращает количество байтов (символов) в строке str.

LENDTH(“Пароход”) => 7

LPAD(str, len, pad_str), RPAD(str, len, pad_str) дополняет слева (справа) строку str до длины len строкой-заполнителем pad_str.

LPAD(“Пушкин”, 20, “АС”) =>

АСАСАСАСАСАСАСПушкин

LTRIM(str) возврашает подстроку после удаления из нее начальных пробелов.

LTRIM(“ Пушкин”) => Пушкин

POSITION(подстрока IN строка) – определяет номер позиции начала вхождения подстроки в строку.

POSITION(“док” IN “Ледокол”) => 3

REPEAT(строка, счетчик) – возвращает строку, состоящую из строки, повторенной счетчик раз.

REPLACE(str,str1,str2) возвращает строку str после замены подстроки str1 в этой строке str подстрокой str2.

RTRIM(str) – возвращает подстроку после удаления из нее конечных пробелов.

SPACE(n) возвращает строку из n пробелов.

TRIM([[LEADING|TRAILING|BOTH][trim_str] FROM] строка) – если не указаны необязательные параметры, удаляет из строки начальные и конечные пробелы.

Декомпозиция плоской таблицы.

Выполните декомпозицию плоской таблицы на отдельные проекции (таблицы), указав поля для обеспечения связи этих таблиц друг с другом.

Смысл декомпозиции заключается в следующем. Плоская таблица (большая таблица, в которой собраны воедино все данные для решения задачи с высокой степенью повторяемости данных) преобразуется в совокупность взаимосвязанных отдельных таблиц. В данном примере из одной исходной таблицы PLANT создается три следующие таблицы:

Последовательность декомпозиции следующая:

определяется количество сущностей (объектов), описываемых плоской таблицей. В примере по п.9 плоская таблица (PLANT) описывает три следующие объекта (сущности): сотрудник (объектное отношение WORKER), движение сотрудника по служебной лестнице (объектное отношение MONEY), дети сотрудников (объектное отношение CHILD);

поля плоской таблицы разделяются между таблицами (объектными отношениями), соответствующими объектам (сущностям);

определяется поле (набор полей), используемых в качестве ключа для связи между отдельными таблицами. Иногда для этой цели могут использоваться специальные таблицы (связные отношения). В данном примере для организации связи используется поле TAB_N, выступающее в различных таблицах то в роли первичного (WORKER), то внешнего (MONEY, CHILD) ключа;

 

ни одно из полей во всех отношениях не должно содержать групп значений. Например, недопустимо существование поля ФИО, если в нем указаны фамилия, имя, отчество (или инициалы), а также поля АДРЕС, если в нем указаны и город, и улица, и номера дома и квартиры. Если такая ситуация встречается в задании, поле должно быть разбито на составляющие поля, а инициалы должны быть дополнены до полных слов;

 

если в некоторых полях данные повторяются слишком часто, можно создать дополнительные таблицы (отношения), играющие роль справочников. Например, если бы плоская таблица была значительно длиннее, имело бы смысл ввести таблицу-справочник с полями KOD, DOLGNOST, а в таблице WORKER вместо поля DOLGNOST использовать поле KOD.

 

Вышеизложенная последовательность действий – это шаги нормализации – метода организации реляционной базы данных с целью сокращения избыточности.

Функции даты и времени

Функции работают со значениями даты/времени. Будучи извлеченными из базы данных, эти значения приводятся к целочисленному или строковому типу, в зависимости от контекста.

CURDATE(), CURRENT_DATE – каждая из функций возвращает текущую дату. Вторая функция в скобках не нуждается.

CURTIME(), CURRENT_TIME ‑ возвращает текущее время.

DATE_ADD(дата, INTERVAL значение тип) ‑ возвращает новую дату после добавления интервала времени к значению даты (возможные значения параметра тип – YEAR, DAY, MONTH, HOUR, SECOND, …).

DATE_ADD(NOW(), INTERVAL 15 DAY)

DAYNAME(дата) ‑ возвращает название дня недели по дате.

DAYOFMONTH(дата) ‑ возвращает числовое значение дня месяца по дате.

DAYOFWEEK(дата) ‑ возвращает номер дня недели по дате. Первым днем недели считается воскресенье.

DAYOFYEAR(дата) ‑ возвращает числовое значение дня года для значения даты в диапазоне от 1 до 366.

HOUR(время) – возвращает значение часа для заданного временного значения.

MONTH(дата) ‑ возвращает номер месяца года по дате.

NOW() ‑ возвращает текущие дату и время.

SELECT NOW() => 2003-10-21 12:10:15

QUARTER(дата) – определяет квартал года. Первый квартал – первые три месяца года.

SYSDATE() – синоним функции NOW().

YEAR(дата) – возвращает номер года по дате.

WEEKDAY(дата) – возвращает номер дня недели по дате (в диапазоне от 0 для понедельника до 6 для воскресенья).

Операция условного соединения

 

Следующей специальной операцией реляционной алгебры является операция условного соединения(иначе ее называют Ө-соединением).

Эта операция предназначается для тех случаев, когда нужно соединить вместе два отношения на основе некоторых условий.

 

Операцией условного соединения двух отношений называется операция, результатом которой является подмножество декартова произведения исходных отношений, включающее только те строки, для которых выполняется указанное условие.

 

В отличие от рассмотренных специальных операций реляционной алгебры: фильтрации и проектирования, которые являются унарными, то есть производятся над одним отношением, операция условного соединения является бинарной, то есть исходными для нее являются два отношения, а результатом — одно.



Последнее изменение этой страницы: 2016-06-09

headinsider.info. Все права принадлежат авторам данных материалов.