Справочник функций, терминов mySQL

Имя функции или название понятиясортировать по убыванию Начало описания (пройдите по ссылке для полного просмотра)
ABS ()

ABS(x)

 

Ця функція повертає абсолютне значення аргументу х.

 

ABS(13.5) ->13.5
ABS(-13.5) ->13.5

ACOS ()

ACOS(x)

 

Ця функція повертає арккосинус аргументу х або значення NULL, якщо х не знаходиться в діапазоні від -1 до +1.

 

ACOS(1) ->0.000000
ACOS(0) ->1.570796
ACOS(-1) ->3.141593

 

Функція ACOS() вперше з'явилась в MySQL 3.21.8.

ADDDATE ()

DATE_ADD(date,INTERVAL expr type)

ALL

Оператор ALL

ALTER FUNCTION

Для зміни характеристик процедури призначений синтаксис ОПЕРАТОРА ALTER PROCEDURe. Редагування збереженої функції виконується за допомогою оператора ALTER FUNCTION. Оператори мають наступний синтаксис:

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

Характеристика characteristic може приймати такі значення:

ALTER PROCEDURE

Для зміни характеристик процедури призначений синтаксис ОПЕРАТОРА ALTER PROCEDURe. Редагування збереженої функції виконується за допомогою оператора ALTER FUNCTION. Оператори мають наступний синтаксис:

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

Характеристика characteristic може приймати такі значення:

ALTER VIEW

Для редагування переглядів призначений оператор alter view, який має наступний синтаксис:

alter [algorithm - {undefined i merge | temptable}] view view_name [ (column_list) ] as select_statement

[with [cascaded | local] check option]

 

Приклад:

AND

Припустимо ви хочете отримати всіх замовників в Далласі, які мають рейтинг вище 200:

 

SELECT * FROM Customers WHERE city = 'Dallas' AND rating > 200;

 

При використанні оператора And, повинні бути виконані обидві умови, тобто повинні бути вибрані всі замовники з Далласа, рейтинг яких більше 200.

 

ASIN ()

ASIN(x)

 

Ця функція повертає арксинус аргументу х або значення NULL, якщо х не знаходиться в діапазоні від -1 до +1.

 

ASIN(1) ->1.570796
ASIN(0) ->0.000000
ASIN(-1) ->-1.570796

 

Функція ASIN() вперше з'явилась в MySQL 3.21.8.

ATAN ()

ATAN(x)

ATAN(y, x)

 

Ця функція повертає арктангенс аргументу х.

 

ATAN(1) ->0.785398
ATAN(0) ->0.000000
ATAN(-1) ->-0.785398

 

Функція ATAN() вперше з'явилась в MySQL 3.21.8.

AVG ()

AVG(expr)

Повертає середнє значення аргументу expr

BETWEEN

Оператор BETWEEN схожий на оператора IN. Відмінність полягає в тому, що IN перераховує всі значення, BETWEEN визначає діапазон, тобто предикат стане вірним тілько тоді, коли значення стовпця, пополо у вказаний діапазон. В запиті вказуємо BETWEEN з початковим значенням, потім AND і кінцеве значення.

BIGINT

BIGINT. Найбільший тип для цілих чисел. Використовує вісім байт для діапазону значень.

 

BIN ()

BIN(N)

BIT_LENGTH ()

BIT_LENGTH(str)

CASE

Оператор CASE

Оператор CASE дозволяє здійснити множинний вибір і має дві форми. Синтаксис першої форми оператора виглядає наступним чином:

CASE case_value

WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE

Синтаксис другої форми:

CASE

WHEN search_condition THEN statement_list

CAST ()

CAST(expr AS type)

 

Перетворювати тип значення expr в заданий тип. Значення type може бути BINARY(подвійний рядок), DATE, DATETIME, TIME, SIGNED, SIGNED INTEGER, UNSIGNED або UNSIGNED INTEGER.

 

CAST(304 AS BINARY) >'304'
CAST(-1 AS UNSIGNED) >18446744073709551615

 

CEILING ()

CEILING(x)

 

Ця функція повертає найменше ціле не менше аргументу х.

 

CEILING(3.8) ->4
CEILING(-3.8) ->-3

CHAR

CHAR. Використовується для збереження рядків фіксованої довжини. Після CHAR зазвичай вказується довжина в символах. Якщо ж довжину не вказати то рахується, що тип має довжину в 1 символ. Максимальна довжина поля 255 символів. Якщо рядок менший за довжину типу, то він буде доповнений пробілами, якщо більша то обрізана. При поверненні значення пробіли видаляються СКБД автоматично

CHAR ()

CHAR(N,...)

CHARACTER_LENGTH ()

LENGTH(str)

CHAR_LENGTH ()

LENGTH(str)

CONCAT ()

CONCAT(str1,str2,...)

CONCAT_WS ()

CONCAT_WS(separator, str1, str2,...)

CONV ()

CONV(N,from_base,to_base)

COS ()

COS(x)

 

Ця функція повертає косинус аргументу х, заданого в радіанах.

 

OS(0) ->1.000000
OS(PI() ) ->-1.000000
OS(PI() / 2) ->0.000000

 

Функція COS() вперше з'явилась в MySQL 3.21.8.

COT ()

COT(x)

 

Ця функція повертає котангенс аргументу х, заданого в радіанах.

 

COT (PI() / 2) ->0.000000
COT(PI() / 4) ->1.000000

 

Функція COТ() вперше з'явилась в MySQL 3.21.8.

COUNT ()

COUNT(expr)

CRC32 ()

CRC32(str)
 

Вираховує значення коду циклічної перевірки збитковості аргументу, який являється рядком. Повернуте число є 32-бітовим значенням без знака в діапазоні від 0 до 2^32-1 або NULL, якщо аргумент має значення "NULL".

 

CRC32('xyz') ->3951999591

CRC32('0') ->4108050209

CREATE FUNCTION

Збережені функції

Крім форми CREATE PROCEDURE, що створює процедуру, допускається використання create function, яка створює функцію. Функція на відміну від процедури може викликатися безпосередньо, без використання оператора CALL і повертати одне значення, яке підставляється на місце виклику функції, як у випадку вбудованих функцій MySQL.

CREATE PROCEDURE

CREATE PROCEDURE sp_name ([parameter [,...]]) [characteristic ...] routine_body

CREATE FUNCTION sp_name ([parameter[,...]]) RETURNS type

[characteristic ...] routine_body

CREATE TRIGGER

 

Оператор create trigger дозволяє створити новий тригер і має наступний синтаксис:

create trigger trigger_name trigger_time trigger_event on tbl_name for each row trigger_stmt

Оператор create trigger створює trigger_name, прив'язаний до таблиці tbl_name. Таблиця повинна існувати фізично, тобто не допускається прив'язка тригера до тимчасової таблиці або перегляду.

CREATE USER

 

Оператор create user дозволяє створити новий обліковий запис і має наступний синтаксис:

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']

Оператор створює обліковий запис user з необов'язковим паролем password. У прикладі представлений запит, створює користувача softtime.

Зауваження:

CREATE VIEW

Створення переглядів здійснюється за допомогою оператора create view, який має наступний синтаксис:

 

CREATE [or replace] [algorithm = {undefined | merge | temptable}] VIEW view_name [(column_list)] AS select_statement [with [cascaded | local] check option]

 

CURDATE ()

CURDATE()

CURRENT_DATE()

CURRENT_DATE ()

CURDATE()

CURRENT_TIME ()

CURTIME()

CURRENT_TIMESTAMP ()

NOW()

SYSDATE()

CURTIME ()

CURTIME()

CURRENT_TIME()

DATE

DATE. Тип використовується для збереження дат в форматі РРРР-ММ-ДД

DATETIME

DATETIME. Комбінація двох попередніх типів у форматі РРРР-ММ-ДД ГГ:ХХ:СС

DATE_ADD ()

DATE_ADD(date,INTERVAL expr type)

DATE_FORMAT ()

DATE_FORMAT(date,format)

DATE_SUB ()

DATE_ADD(date,INTERVAL expr type)

DAYNAME ()

DAYNAME(date)

DAYOFMONTH ()

DAYOFMONTH(date)

DAYOFWEEK ()

DAYOFWEEK(date)

DAYOFYEAR ()

DAYOFYEAR(date)

DEGREES ()

DEGREES(x)

 

Ця функція повертає значення аргументу х, перетвореного з радіан в градуси.

 

DEGREES(PI() ) ->180
DEGREES(PI() * 2) ) ->360
DEGREES(PI() / 2) ) ->90
DEGREES(-PI() ) ) ->-180

 

Функція DEGREES() вперше з'явилась в MySQL 3.21.16.

DELETE

Оператор DELETE знищує з таблиці рядки, що задовольняють заданим у where_definition умовам, і повертає кількість вилучених записів.

Якщо оператор DELETE запускається без визначення WHERE, то знищуються всі рядки.

Синтаксис:

DESC, ASC

DESC, ASC

Desc-descedent, вивід даних в зворотньому порядку (за абеткою і чисельним значенням). По замовчанню використовується ASC.

DISTINCT

DISTINCT.
Пропускає рядки, в яких всі вибрані поля ідентичні, тобто усуває дублювання даних.

 

DOUBLE

DOUBLE. Також з плаваючою крапкою. Тип підвищеної точності використовує 8 байт для збереження числа. Діапазон значень +-10^38.

DROP FUNCTION

Для удаления хранимых функций необходимо использовать специальный оператор DROP FUNCTION

Приклад:

DROP FUNCTION test;

DROP PROCEDURE

DROP PROCEDURE [IF EXISTS] nameproc

Оператор DROP ROCEDURE дозволяє видалити збережену процедуру nameproc. Якщо процедури з таким ім'ям не існує, синтаксис оператора повертає помилку, яку можна поглинути, якщо використовувати необов'язкове ключове слово IF EXISTS.

DROP TRIGGER

 

Оператор DROP TRIGGER дозволяє видаляти існуючі тригери і має наступний синтаксис:

DROP TRIGGER tbl_name.trigger_name

Оператор видаляє тригер з ім'ям trigger_name таблиці tbl_name. У прикладі демонструється видалення тригера restrict_user таблиці users, створеного в прикладах вище.

Приклад. Видалення тригера

DROP USER

 

Оператор DROP USER дозволяє видалити обліковий запис user і має наступний синтаксис:

DROP USER user

Як обліковий запис user використовується Стандартний для MySQL запис виду 'username' @ 'host'.

Зауваження:

  • Оператор DROP USER з'явився в СУБД MySQL, починаючи з версії 4.1.1.

Приклад:

DROP VIEW

Для видалення переглядів призначений оператор drop view, який має наступний синтаксис:

 

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

 

Оператор drop view дозволяє знищити перегляд або відразу кілька переглядів за їхніми іменами (наступний приклад).

 

Приклад:

DROP VIEW cat, tbl1, tbl2;

 

ELT ()

ELT(N,str1,str2,str3,...)

ENUM

ENUM. Цей тип зберігає набір значень. Наприклад , ENUM(`m`,`a`,`z`).

EXISTS

 

Використовується в підзапитах.

 

SELECT cnum, cname, city FROM Customers WHERE EXISTS
(SELECT * FROM Customers WHERE city = ’San Jose’);

 

EXP ()

EXP(x)

 

Ця функція повертає значення e в степені х, де e - це основа натурального логарифма.

 

EXP(1) ->2.718282
EXP(2) ->7.389056
EXP(-1) ->0.367879
1/EXP(1) -> 0.36787944

EXTRACT ()

EXTRACT(type FROM date)

FIELD ()

FIELD(str,str1,str2,str3,...)

FLOAT

FLOAT. Це числа з плаваючою крапкою. Точність чотири байти. Може містити значення від 1.18 на 10 в мінус 38 степені до 3.4 на 10 в 38 степені.

 

FLOOR ()

FLOOR(x)

 

Ця функція повертає найбільше ціле значення, яке не більше аргументу х.

 

FLOOR(3.8) ->3
FLOOR(-3.8) ->-4

FOREІGN KEY

FOREІGN KEY [іndex_name] (іndex_columns)
REFERENCES tbl_name (іndex_columns)
[ON DELETE actіon]
[ON UPDATE actіon]
[MATCH FULL | MATCH PARTІAL]

FROM_DAYS ()

FROM_DAYS(N)

GOTO

Оператор GOTO

Оператор goto дозволяє здійснювати безумовний перехід і має наступний синтаксис:

GOTO label;

GRANT

Оператор GRANT

GREATEST ()

GREATEST( expr 1, expr 2, . . .)

 

Повертає найбільший аргумент. Найбільший серед заданих аргументів визначається згідно з наступними правилами.

Якщо всі задані в функції аргументи являються цілими значеннями, то вони порівнюються як цілі.

GROUP BY

Вираз GROUP BY дозволяє виділити підмножини значень в полі і застосовувати функцію СУБД до підмножини. Це дає можливість об'єднувати поля і функції в єдиному виразі SELECT. Наприклад, припустимо що ви хочете знайти найбільшу суму від продажу отриману кожним продавцем. Ви можете зробити окремий запит для кожного з продавців, вибравши MAX () з таблиці для значень поля.

HAVING

HAVING відфільтровує значення за умовою, відображаються лише ті значення які перетворюють умову в вірну рівність. Наприклад:

 

SELECT cid,cname,price,max(price)
FROM customers HAVING max(price) >500;

HEX ()

HEX(N_or_S)

HOUR ()

HOUR(time)

IF ()

IF(expr1, expr2, expr3)

Якщо аргумент expr1 правильний(не 0 або NULL), повертається аргумент expr2. В іншому випадку ця функція аргумент expr3. Функція IF() повертає число або рядок у відповідності з контекстом, в якому задається.

 

IF...THEN...ELSE

Оператор IF...THEN...ELSE

Оператор if дозволяє реалізувати розгалуження програми за умовою і має наступний синтаксис:

IF search_condition THEN statement_list

[ELSEIF search_condition THEN statement_list] ...

[ELSE statement_list] END IF

IFNULL ()

IFNULL(expr1, expr2)

 

Ця функція повертає аргумент expr2, якщо вираз expr1 має значення NULL. В іншому випадку ця функція повертає значення expr1. Функція INFULL() повертає число або рядок в залежності від контексту, в якому задається.

 

IFNULL(NULL, 'NULL') -> 'NULL'
IFNULL(' not NULL', 'NULL') -> 'not NULL'

IN

Оператор IN визначає набір значень в яке дане значення може або не може бути включене. Наприклад запит

 

SELECT * FROM Salespeople WHERE city = 'Barcelona' OR city = 'London';

 

може бути переписаний простіше:

 

SELECT * FROM Salespeople WHERE city IN ( 'Barcelona', 'London' );

 

INSERT

INSERT — оператор мовиSQL, котрий додає рядки в таблицю. В реляційній СКБД можна визначити два варіанти оператора INSERT.

Однорядковий оператор INSERT дозволяє додавати в таблицю один новий рядок. Він широко використовується в повсякденних аплікаціях, наприклад програмах введення даних.

INSERT ()

INSERT(str,pos,len,newstr)

INSTR ()

INSTR(str,substr)

INTEGER (INT)

INTEGER (INT). Ціле число довжиною в 4 байти. Тобто може зберігати значення до двох у тридцять другому степені. Є декілька підтипів цього типу.

 

ISNULL ()

ISNULL(expr)

Ця функція повертає значення 1, якщо вираз expr має значення NULL. В іншому випадку ця функція повертає значення 0.

 

ISNULL(NULL) ->1
ISNULL(0) ->0
ISNULL(1) ->0

ITERATE

ITERATE label

На відміну від оператора LEAVE, оператор ITERATE не припиняє виконання циклу, він лише виконує дострокове припинення поточної ітерації.

Зауваження:

JOIN

З’єднання таблиць за допомогою оператора JOIN може бути двох типів. Перший це повне безумовне з’єднання таблиць тобто ми отримаємо як результат одну таблицю із всіма стовпцями вхідних таблиць.

Приклад:

 

SELECT * FROM table1 JOIN table2;

 

Результат буде еквівалентним такому запиту:

 

SELECT * FROM table1, table2;

 

LABEL

LABEL label;

У загальному випадку використання операторів goto і label може виглядати так, як це представлено у прикладі.

Приклад:

CREATE PROCEDURE binrand ()

BEGIN

LABEL labelname;

...

GOTO labelname;

END

LCASE ()

LCASE(str)

LEAST ()

LEAST(expr1, expr2, ...)

 

Ця функція повертає найменший аргумент. Для визначення найменшого аргументу визначаються ті ж правила, що й для знаходження найбільшого аргументу функції GREATEST().

 

LEAST(2, 3, 1) ->1
LEAST(38.5, 94.2, -1) ->-1.0
LEAST('a', 'ab', 'abc') ->'a'

 

LEFT ()

LEFT(str,len)

LENGTH ()

LENGTH(str)

LIKE

expr LIKE pat

LN ()

LN(x)

 

Являється синонімом функції LOG() та вперше з'явилась в MySQL 4.0.3.

LOAD_FILE ()

LOAD_FILE(file_name)

LOCATE ()

LOCATE(substr,str)

 

LOG ()

LOG(x)

LOG(b, x)

 

Ця функція повертає натуральний(з основою е) логарифм аргументу х.

 

LOG(0) ->NULL
LOG(1) ->0.000000
LOG(2) ->0.693147
LOG(EXP(1) ) ->1.000000

 

Формат з двома аргументами повертає логарифм х з основою b.

 

LOG10 ()

LOG10(х)

 

Ця функція повертає логарифм з основою 10 аргументу х.

 

LOG10(0) ->NULL
LOG10(10) ->1.000000
LOG10(100) ->2.000000

LOG2 ()

LOG2(х)

 

Ця функція повертає логарифм з основою 2 аргументу х.

 

LOG2(0) ->NULL
LOG2(255) ->7.994353
LOG2(32767) ->14.999956

LONGTEXT, LONGBLOB

LONGTEXT, LONGBLOB. Зберігають текст довжини не більше 4 гБ символів.

LOOP

Оператор LOOP

Оператор LOOP призначений для реалізації циклів і має наступний синтаксис:

[label:] LOOP

statement_list END LOOP [label]

Цикл LOOP, на відміну від операторів WHILE і REPEAT, не має умов виходу. Тому даний вид циклу повинен обов'язково мати у своєму складі оператор LEAVE.

LOWER ()

LCASE(str)

LPAD ()

LPAD(str,len,padstr)

LTRIM ()

LTRIM(str)

MAX ()

MIN(expr)

MEDIUMINT

MEDIUMINT. Межа значень числа в три байти.

 

MEDIUMTEXT, MEDIUMBLOB

MEDIUMTEXT та MEDIUMBLOB. Зберігають текст довжини не більше 16 мБ символів.

MID ()

SUBSTRING(str,pos,len)

MIN ()

MIN(expr)

MINUTE ()

MINUTE(time)

MOD ()

MOD(m, n)

 

Ця функція аналогічна оператору m%n (остача від ділення націло). Більш детально про його роботу розповідається в розділі "Арифметичні оператори".

MONTH ()

MONTH(date)

MONTHNAME ()

MONTHNAME(date)

NOT

NOT може використовуватися для інвертування значень Буля. Приклад запиту з NOT:

 

SELECT * FROM Customers WHERE city = 'Dallas' OR NOT rating > 200;

 

NOW ()

NOW()

NUMERIC

NUMERIC або DECIMAL (DEC). Ці типи даних ідентичні. Тип числа з плаваючою крапкою. Використовується для зберігання грошових значень.

 

OCT ()

OCT(N)

OCTET_LENGTH ()

LENGTH(str)

OR

При використанні оператора Or, повинне виконуватися одна з умов. Наприклад:

 

SELECT * FROM Customers WHERE city = 'Dallas ' OR rating > 200;

 

В даному випадку будуть вибрані всі замовники з Далласа і ті що мають рейтинг більше 200, навіть якщо вони і не з Далласа.

 

ORD ()

ORD(str)

ORDER BY

 

Ця команда упорядковує виведення значень запиту згідно значенням в тому або іншому вибраному стовпцю. СУБД може впорядковувати по декількох стовпцях одночасно.

PERIOD_ADD ()

PERIOD_ADD(P,N)

PERIOD_DIFF ()

PERIOD_DIFF(P1,P2)

PI ()

PI()

Повертає значення числа Пі.

 

PI() ->3.141593

 

Функція PI() вперше з'явилась в MySQL 3.21.8.

POSITION ()

LOCATE(substr,str)

 

POW ()

POW(x, y)

 

Повертає х в степені у.

 

POW(2, 3) ->8.000000
POW(2, -3) ->0.125000
POW(4, .5) ->2.000000
POW(16, .25) ->2.000000

 

POWER(x, y)

 

Ця функція являється аналогом функції POW() і вперше з'явилась в MySQL 3.21.16.

POWER(x, y)

POW(x, y)

 

Повертає х в степені у.

 

POW(2, 3) ->8.000000
POW(2, -3) ->0.125000
POW(4, .5) ->2.000000
POW(16, .25) ->2.000000

 

POWER(x, y)

 

Ця функція являється аналогом функції POW() і вперше з'явилась в MySQL 3.21.16.

QUARTER ()

QUARTER(date)

RADIANS ()

RADIANS(x)

 

Ця функція повертає значення аргументу х, яке перетворене з градусів в радіани.

 

RADIANS(0) ->0
RADIANS(360) ->6.2831853071796
RADIANS(-360) ->- 6.2831853071796

 

Функція RADIANS() вперше з'явилась в MySQL 3.21.16.

RAND ()

RAND()

RAND(n)

 

RENAME USER

 

Оператор RENAME USER дозволяє змінювати ім'я користувача у обліковому записі і має наступний синтаксис

RENAME USER old_user ТО new_user

Тут old_user-старе ім'я користувача, a new_user-нове ім'я користувача. Приклад використання оператора RENAME USER наведено в наступному прикладі.

Зауваження:

REPEAT

Оператор REPEAT

Оператор REPEAT, так само як і оператор WHILE, реалізує цикл:

[label:] REPEAT

statement_list UNTIL search_condition

END REPEAT [label]

REPEAT ()

REPEAT(str,count)

REPLACE ()

REPLACE(str,from_str,to_str)

REVERSE ()

REVERSE(str)

REVOKE

Оператор REVOKE

Для скасування привілеїв облікового запису використовується оператор REVOKE. (приклад). Його синтаксис схожий на синтаксис оператора GRANT з тією лише різницею що ключове слово TO замінено на FROM, а опції IDENTIFIED BY, REQUIRE і WITH GRANT OPTION відсутні.

Приклад:

RIGHT ()

RIGHT(str,len)

ROUND ()

ROUND(x)

ROUND(x, d)

 

Функція ROUND(x) повертає значення аргументу х, округлене до цілого числа. Функція ROUND(x, d) повертає значення аргументу х, округленого до числа з d знаками після коми. Якщо аргумент d рівний 0, то повернутий результат не має десяткової точки чи дробової частини.

 

RPAD ()

RPAD(str,len,padstr)

RTRIM ()

RTRIM(str)

SECOND ()

SECOND(time)

SEC_TO_TIME ()

SEC_TO_TIME(seconds)

SELECT

SELECT — оператор мови SQL, котрий повертає рядки з однієї чи багатьох таблиць. Повний синтаксис оператора SELECT є складним, проте його можна описати наступним чином:

 

SET

Оператор mySQL set

Мова запитів SQL, крім операторів для роботи з базами даних, включає в себе адміністративні команди, які є засобами управління СУБД. Серед команд адміністрування варто згадати оператор set, який дозволяє встановлювати системні і користувальницькі змінні.

SHOW CREATE FUNCTION

SHOW CREATE FUNCTION funcname;

Оператор виводить синтаксис оператора CREATE FUNCTION, за допомогою якого була створена процедура funcname.

SHOW CREATE PROCEDURE

Ще одним оператором, який дозволяє отримати інформацію о збережених процедурах, є оператор SHOW CREATE PROCEDURE, який має наступний синтаксис:

SHOW CREATE PROCEDURE procname;

Оператор виводить синтаксис оператора CREATE PROCEDURE, за допомогою якого була створена процедура procname (приклад).

Приклад:

mysql> SHOW CREATE PROCEDURE binstring\G;

SHOW FUNCTION STATUS

Для перегляду списку збережених функцій призначений оператор SHOW FUNCTION STATUS. Оператор має наступний синтаксис:

SHOW FUNCTION STATUS [LIKE 'pattern'];

SHOW PROCEDURE STATUS

Оператор SHOW PROCEDURE STATUS

Переглянути список вже створених збережених процедур можна за допомогою оператора show procedure status, який має наступний синтаксис:

SHOW PROCEDURE STATUS [LIKE 'pattern'];

SIGN ()

SIGN(x)

 

Ця функція повертає значення -1, 0 або 1, якщо значення аргументу х відповідно від'ємне, рівне нулю або додатне.

 

SIGN(15.803) ->1
SIGN(0) ->0
SIGN(-99) ->-1

SIN ()

SIN(x)

 

Ця функція повертає синус аргументу х, заданого в радіанах.

 

SIN(0) ->0.000000
SIN(PI()) ->0.000000
SIN(PI() / 2) ->1.000000

 

Функція SIN() вперше з'явилась в MySQL 3.21.8.

SMALLINT

SMALLINT. Межа значень числа в два байти.

 

SPACE ()

SPACE(N)

SQRT ()

SQRT(x)

 

Ця функція повертає додатній квадратний корінь аргументу х.

 

SQRT(625) ->25.000000
SQRT(2.25) ->1.500000
SQRT(-1) ->NULL

STD ()

STD(expr)

STDDEV ()

STD(expr)

STRCMP ()

STRCMP(str1, str2)

 

Ця функція повертає результат 1, 0, -1, якщо перший аргумент лексично більший, рівний чи менший за другий. Результат буде NULL, якщо хоча б один з аргументів має значення NULL. Починаючи з MySQL 4.0.0, при порівнянні регістр символів не враховується, за винятком тих випадків, якщо один з аргументів є бінарним рядком.

 

STRCMP ()

STRCMP(expr1,expr2)

Функція STRCMP() повертає: 0, якщо рядки ідентичні, -1 - якщо перший аргумент менше другого ( відповідно до наявного порядку сортування), і 1 - в інших випадках:

 

SUBDATE ()

DATE_ADD(date,INTERVAL expr type)

SUBSTRING ()

SUBSTRING(str,pos,len)

SUBSTRING_INDEX ()

SUBSTRING_INDEX(str,delim,count)

SUM ()

SUM(expr)

SYSDATE ()

NOW()

TAN ()

TAN(x)

 

Ця функція повертає тангенс аргументу х, заданого в радіанах.

 

TAN(0) ->0.000000
TAN(PI() / 4) ->1.000000

 

Функція TAN() вперше з'явилась в MySQL 3.21.8.

TEXT, BLOB

TEXT та BLOB. Ці типи полів використовуються для збереження більш довших рядків (фрагментів) тексту. Абревіатура BLOB означає великий двійковий об’єкт. Ці два типи однакові за винятком того, що в BLOB обробка йде з урахуванням регістру символів, а в TEXT – без. Обидва типи мають змінну довжину. Зберігають 64 кБ символів тексту.

TIME

TIME. Зберігає час у форматі ГГ:ХХ:СС

TIMESTAMP

TIMESTAMP. Якщо при заповненні запису не вказати значення цього типу буде автоматично підставлено значення дата зміни або створення запису. Має формат аналогічний до DATETIME.

 

TIME_FORMAT ()

TIME_FORMAT(time,format)

TIME_TO_SEC ()

TIME_TO_SEC(time)

TINYINT

TINYINT. Комірка для збереження числа в один байт, тобто від 1 до 127 (один біт відводиться для від’ємного діапазону).

 

TINYTEXT, TINYBLOB

TINYTEXT та TINYBLOB. Зберігають текст довжини не більше 255 символів.

TO_DAYS ()

TO_DAYS(date)

TRIM ()

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

TRUNCATE ()

TRUNCATE(x, d)

 

Повертає значення аргументу х з дробовою частиною, заокругленою до d знаків після коми. Якщо аргумент d рівний нулю, то повернутий результат не має десяткової коми або дробової частини. Якщо d більше, ніж кількість десяткових розрядів в х, то вкінці дробової частини додається відповідна кількість нулів.

 

UCASE ()

UCASE(str)

UNION

Оператор UNION може бути використаний, якщо потрібно так би мовити "склеїти" декілька таблиць в ондну. Коли це може бути корисним? Розглянемо такий приклад: у нас є магазин який складається з декількох відділів, а саме: відділ спиртних напоїв, м’ясний відділ та кондитерський відділ.

UPDATE

Синтаксис:

UPDATE ім’я таблиці SET список полів та значень WHERE умова

 

UPDATE змінює значення вказаних полів на нові, причому тільки у тих рядках, які задовольняють умові. Наприклад:

 

UPDATE table1 SET name=’vasya’ WHERE name=’semen’

 

UPPER ()

UCASE(str)

VARCHAR

VARCHAR. Тип використовується для збереження радків змінної довжини. Так як і в попередньому типі вказується його довжина, наприклад VARCHAR(30), при такому оголошенні рядки довше 30 символів будуть обрізані. Різниця між цим і попереднім типом в тому, що в типі з фіксованою довжиною обробка інформації відбувається швидше, але розмір самої БД буде більший.

WEEK ()

WEEK(date)

WEEKDAY ()

WEEKDAY(date)

Повертає індекс дня тижня для аргумента date (0 =понеділок, 1 = вівторок, ... 6 = неділя):

 

SELECT WEEKDAY('1997-10-04 22:23:00'); -> 5

WHERE

WHERE.
Оператор команди Select, який дозволяє встановлювати предикати, умова яких може бути вірною або невірною для будь-якого рядка таблиці. Витягуються тільки ті рядки, для яких таке твердження вірне. Наприклад:

 

SELECT u_id,lname from publishers WHERE city ='New York';

WHILE

Оператор WHILE

Оператор WHILE виконує цикл і має наступний синтаксис:

[label:] while search_condition DO

statement_list

END while [label]

YEAR

YEAR. Зберігає значення року, можливі дві довжини типу в 2 та в 4 байти. Якщо довжина 2 байти то значення поля буде між 1970 та 2069.

YEAR ()

YEAR(date)

ZEROFILL

ZEROFILL – означає, що число буде відображатися з 0 записаними спереду. Наприклад якщо довжина поля 4 цифри то число 25 буде відображене (і записане) як 0025.

 

Багаторядковий INSERT

 

Синтаксис

 

INSERT INTO таблиця (колонка1, [колонка2, ... ]) SELECT (колонка1a, [колонка2a, ...]) FROM таблиця_вибірки WHERE ...

 

В запис, що міститься в середині багаторядкового оператора INSERT, стандарт SQL вимагає деяких логічних обмежень:

 

Булеві оператори

 

Основні Булеві оператори також розпізнаються в MYSQL. Вирази Буля - є або вірними або невірними, подібно до предикатів. Булеві оператори зв'язують одне або більш правдивих/неправдивих значень і повертають єдине вірне або невірне значення. Стандартними операторами Буля розпізнаваними в SQL є: and,or і NOT.

Видалення збережених процедур

Для видалення збережених процедур використовується синтаксис оператора DROP PROCEDURE, який має наступний синтаксис:

DROP PROCEDURE [IF EXISTS] nameproc

Видалення переглядів

Для видалення переглядів призначений оператор drop view, який має наступний синтаксис:

 

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

 

Оператор drop view дозволяє знищити перегляд або відразу кілька переглядів за їхніми іменами (наступний приклад).

 

Приклад:

DROP VIEW cat, tbl1, tbl2;

 

Використання вкладеного запиту в списку стовпців

SELECT id_catalog, (SELECT MAX(price) FROM products) FROM catalogs;

 

id_catalog (SELECT MAX(price) FROM products)

1 7259.00

2 7259.00

3 7259.00

 

Вкладені запити в операторі CREATE TABLE

При створенні таблиці за допомогою оператора create table її можна заповнити, використовуючи вкладений запит, який звертається до іншоїтаблиці.

Вкладені запити у операторі INSERT

За допомогою вкладеного select-запиту оператор insert дозволяє швидковставляти безліч записів з іншої (інших) таблиць.

 

Зауваження

Даний вид запитів з'явився у версії 3.23, тому синтаксис не вимагає записувативкладений запит в обов'язкові круглі дужки.

 

Вкладені запити, які повертають декілька стовпців

До цих пір розглядалися вкладені запити, які повертають єдиний стовпець,проте в СУБД MySQL реалізовані так звані рядкові запити, які повертаютьбільше одного стовпця. Приклади таких запитів представлені в прикладі

 

Приклад

SELECT * FROM tbll WHERE (1,2) = (SELECT coll, col2 FROM tbl2);

Вкладені запити, які повертають кілька рядків

У попередньому були розглянуті запити, де вкладений запит повертає єдине значення. Якщо вкладений запит повертає кілька рядків, СУБД MySQL повертаєпомилку 1242 - вкладений запит повертає більш ніж один рядок (приклад).

 

SELECT name FROM catalogs

WHERE id_catalog = (SELECT id_catalog FROM products);

 

ERROR 1242: Subquery returns more than 1 row

 

Група характеристик збережених процедур

Синтаксис збережених процедур допускає використання наступних характеристик characteristic У визначенні CREATE PROCEDURE та CREATE FUNCTION:

LANGUAGE SQL

| [NOT] DETERMINISTIC

| SQL SECURITY {DEFINER | INVOKER}

|COMMENT 'string'

Збережені процедури

Часто при виконанні рутинних операцій потрібно здійснювати послідовність однакових запитів. Збережені процедури дозволяють об'єднати послідовність таких запитів і зберегти їх на сервері. Після цього клієнтам не доведеться посилати серверу послідовність запитів, достатньо надіслати один запит на виконання збереженої процедури.

Зауваження:

Збережені функції

Крім форми CREATE PROCEDURE, що створює процедуру, допускається використання create function, яка створює функцію. Функція на відміну від процедури може викликатися безпосередньо, без використання оператора CALL і повертати одне значення, яке підставляється на місце виклику функції, як у випадку вбудованих функцій MySQL.

Змінні SQL

 

СУБД MySQL надає можливість збереження результатів поточного запиту для використання в наступних запитах в змінних SQL. Оголошення змінних починається з символу @ за яким слідує ім'я змінної. Значення змінним присвоюються за допомогою оператора select з використанням оператора присвоювання ":=".

Приклад (Оголошення і використання змінних SQL)

Корельовані запити

У вкладеному запиті часто потрібно посилатися на значення стовпця впоточному рядку зовнішнього запиту. Розглянемо запит, що витягає з таблиціproducts назви придбаних товарів, для яких число куплених товарних позиційзбігається із запасами на складі (приклад).

 

SELECT name, count FROM products

WHERE count = (SELECT SUM(count) FROM orders

Однорядковий INSERT

 

Синтакс оператора INSERT виглядає наступним чином:

 

INSERT INTO таблиця (колонка1, [колонка2, ... ]) VALUES (значення1, [значення2, ...])

 

Наприклад, якщо ми маємо таблиці такого типу:

Таблиця 1

 

Id

Підзапити в конструкції FROM

Так як вкладені запити повертають результуючу таблицю, яка стає предметомподальших запитів, стандарт SQL дозволяє використання вкладених запитівскрізь, де допускаються посилання на таблиці. Зокрема, вкладений запит можевказуватись замість імені таблиці в виразі from.

Параметри процедури

У попередніх прикладах збережені процедури не містили параметрів. Як згадувалося раніше, кожен параметр може бути проголошений одним з модифікатором IN, OUT або INOUT. У наступному прикладі наводиться приклад функції, яка присвоює змінній користувача @ х нове значення.

Приклад:

CREATE PROCEDURE set_K (IN value INT)

BEGIN

SET @x = value;

Перегляди

 

Редагування збережених процедур

Для зміни характеристик процедури призначений синтаксис ОПЕРАТОРА ALTER PROCEDURe. Редагування збереженої функції виконується за допомогою оператора ALTER FUNCTION. Оператори мають наступний синтаксис:

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

Редагування переглядів

 

 

Для редагування переглядів призначений оператор alter view, який має наступний синтаксис:

alter [algorithm - {undefined i merge | temptable}] view view_name [ (column_list) ] as select_statement

[with [cascaded | local] check option]

 

Приклад:

Реляційні оператори

 

Реляційний оператор - математичний символ який вказує на певний тип порівняння між двома значеннями. Реляційні оператори які розуміє MYSQL :

 

= Рівно
> Більше
< Менше
>= Більше або рівне
<= Менше або рівне
< > Не рівне

 

Створення збереженої процедури

CREATE PROCEDURE sp_name ([parameter [,...]]) [characteristic ...] routine_body

CREATE FUNCTION sp_name ([parameter[,...]]) RETURNS type

[characteristic ...] routine_body

Створення переглядів

Створення переглядів здійснюється за допомогою оператора create view, який має наступний синтаксис:

 

CREATE [or replace] [algorithm = {undefined | merge | temptable}] VIEW view_name [(column_list)] AS select_statement [with [cascaded | local] check option]

 

Текстові типи даних

Текстові типи даних:

Тимчасові таблиці

 

 

Змінна SQL дозволяє зберегти одне проміжне значення. Коли необхідно зберегти результуючу таблицю, вдаються до тимчасових таблиць. Створення тимчасових таблиць здійснюється за допомогою оператора CREATE temporary table, синтаксис якого нічим не відрізняється від синтаксису оператора CREATE TABLE.

 

Типи дати та часу

Типи дати та часу.

Числові типи

Використовуються для зберігання чисел, всі числові типи можна умовно поділити на два підтипи для зберігання точних чисел і чисел з плаваючою комою. Всі числові типи характеризуються довжиною зберігаємих чисел, а типи з плаваючою комою ще і кількістю знаків після коми.