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

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

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

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

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

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

 

 

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

 

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

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

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

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

 

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

 

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

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

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

[characteristic ...] routine_body

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

 

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

 

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

 

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

 

 

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

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

[with [cascaded | local] check option]

 

Приклад:

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

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

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

Перегляди

 

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

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

Приклад:

CREATE PROCEDURE set_K (IN value INT)

BEGIN

SET @x = value;

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

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

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

 

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

 

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

 

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

Таблиця 1

 

Id

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

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

 

SELECT name, count FROM products

WHERE count = (SELECT SUM(count) FROM orders

Змінні SQL

 

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

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

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

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

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

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

Зауваження:

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

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

LANGUAGE SQL

| [NOT] DETERMINISTIC

| SQL SECURITY {DEFINER | INVOKER}

|COMMENT 'string'

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

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

 

SELECT name FROM catalogs

WHERE id_catalog = (SELECT id_catalog FROM products);

 

ERROR 1242: Subquery returns more than 1 row

 

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

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

 

Приклад

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

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

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

 

Зауваження

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

 

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

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

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

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

 

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

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

 

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

 

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

 

Приклад:

DROP VIEW cat, tbl1, tbl2;

 

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

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

DROP PROCEDURE [IF EXISTS] nameproc

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

 

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

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

 

Синтаксис

 

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

 

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

 

ZEROFILL

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

 

YEAR ()

YEAR(date)

YEAR

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

WHILE

Оператор WHILE

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

[label:] while search_condition DO

statement_list

END while [label]

WHERE

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

 

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

WEEKDAY ()

WEEKDAY(date)

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

 

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

WEEK ()

WEEK(date)

VARCHAR

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

UPPER ()

UCASE(str)

UPDATE

Синтаксис:

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

 

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

 

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

 

UNION

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

UCASE ()

UCASE(str)

TRUNCATE ()

TRUNCATE(x, d)

 

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

 

TRIM ()

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

TO_DAYS ()

TO_DAYS(date)

TINYTEXT, TINYBLOB

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

TINYINT

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

 

TIME_TO_SEC ()

TIME_TO_SEC(time)

TIME_FORMAT ()

TIME_FORMAT(time,format)

TIMESTAMP

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

 

TIME

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

TEXT, BLOB

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

TAN ()

TAN(x)

 

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

 

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

 

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

SYSDATE ()

NOW()

SUM ()

SUM(expr)

SUBSTRING_INDEX ()

SUBSTRING_INDEX(str,delim,count)

SUBSTRING ()

SUBSTRING(str,pos,len)

SUBDATE ()

DATE_ADD(date,INTERVAL expr type)

STRCMP ()

STRCMP(expr1,expr2)

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

 

STRCMP ()

STRCMP(str1, str2)

 

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

 

STDDEV ()

STD(expr)

STD ()

STD(expr)

SQRT ()

SQRT(x)

 

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

 

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

SPACE ()

SPACE(N)

SMALLINT

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

 

SIN ()

SIN(x)

 

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

 

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

 

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

SIGN ()

SIGN(x)

 

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

 

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

SHOW PROCEDURE STATUS

Оператор SHOW PROCEDURE STATUS

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

SHOW PROCEDURE STATUS [LIKE 'pattern'];

SHOW FUNCTION STATUS

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

SHOW FUNCTION STATUS [LIKE 'pattern'];

SHOW CREATE PROCEDURE

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

SHOW CREATE PROCEDURE procname;

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

Приклад:

mysql> SHOW CREATE PROCEDURE binstring\G;

SHOW CREATE FUNCTION

SHOW CREATE FUNCTION funcname;

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

SET

Оператор mySQL set

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

SELECT

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

 

SEC_TO_TIME ()

SEC_TO_TIME(seconds)

SECOND ()

SECOND(time)

RTRIM ()

RTRIM(str)

RPAD ()

RPAD(str,len,padstr)

ROUND ()

ROUND(x)

ROUND(x, d)

 

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

 

RIGHT ()

RIGHT(str,len)

REVOKE

Оператор REVOKE

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

Приклад:

REVERSE ()

REVERSE(str)

REPLACE ()

REPLACE(str,from_str,to_str)

REPEAT ()

REPEAT(str,count)

REPEAT

Оператор REPEAT

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

[label:] REPEAT

statement_list UNTIL search_condition

END REPEAT [label]

RENAME USER

 

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

RENAME USER old_user ТО new_user

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

Зауваження:

RAND ()

RAND()

RAND(n)

 

RADIANS ()

RADIANS(x)

 

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

 

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

 

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

QUARTER ()

QUARTER(date)

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.

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.

POSITION ()

LOCATE(substr,str)

 

PI ()

PI()

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

 

PI() ->3.141593

 

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

PERIOD_DIFF ()

PERIOD_DIFF(P1,P2)

PERIOD_ADD ()

PERIOD_ADD(P,N)

ORDER BY

 

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

ORD ()

ORD(str)

OR

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

 

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

 

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

 

OCTET_LENGTH ()

LENGTH(str)

OCT ()

OCT(N)

NUMERIC

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

 

NOW ()

NOW()

NOT

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

 

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

 

MONTHNAME ()

MONTHNAME(date)

MONTH ()

MONTH(date)

MOD ()

MOD(m, n)

 

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

MINUTE ()

MINUTE(time)

MIN ()

MIN(expr)

MID ()

SUBSTRING(str,pos,len)

MEDIUMTEXT, MEDIUMBLOB

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

MEDIUMINT

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

 

MAX ()

MIN(expr)

LTRIM ()

LTRIM(str)

LPAD ()

LPAD(str,len,padstr)

LOWER ()

LCASE(str)

LOOP

Оператор LOOP

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

[label:] LOOP

statement_list END LOOP [label]

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

LONGTEXT, LONGBLOB

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

LOG2 ()

LOG2(х)

 

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

 

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

LOG10 ()

LOG10(х)

 

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

 

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

LOG ()

LOG(x)

LOG(b, x)

 

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

 

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

 

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

 

LOCATE ()

LOCATE(substr,str)

 

LOAD_FILE ()

LOAD_FILE(file_name)

LN ()

LN(x)

 

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

LIKE

expr LIKE pat

LENGTH ()

LENGTH(str)

LEFT ()

LEFT(str,len)

LEAST ()

LEAST(expr1, expr2, ...)

 

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

 

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

 

LCASE ()

LCASE(str)

LABEL

LABEL label;

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

Приклад:

CREATE PROCEDURE binrand ()

BEGIN

LABEL labelname;

...

GOTO labelname;

END

JOIN

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

Приклад:

 

SELECT * FROM table1 JOIN table2;

 

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

 

SELECT * FROM table1, table2;

 

ITERATE

ITERATE label

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

Зауваження:

ISNULL ()

ISNULL(expr)

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

 

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

INTEGER (INT)

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

 

INSTR ()

INSTR(str,substr)

INSERT ()

INSERT(str,pos,len,newstr)

INSERT

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

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

IN

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

 

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

 

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

 

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

 

IFNULL ()

IFNULL(expr1, expr2)

 

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

 

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

IF...THEN...ELSE

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

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

IF search_condition THEN statement_list

[ELSEIF search_condition THEN statement_list] ...

[ELSE statement_list] END IF

IF ()

IF(expr1, expr2, expr3)

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

 

HOUR ()

HOUR(time)

HEX ()

HEX(N_or_S)

HAVING

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

 

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

GROUP BY

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

GREATEST ()

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

 

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

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

GRANT

Оператор GRANT

GOTO

Оператор GOTO

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

GOTO label;

FROM_DAYS ()

FROM_DAYS(N)

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]

FLOOR ()

FLOOR(x)

 

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

 

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

FLOAT

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

 

FIELD ()

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

EXTRACT ()

EXTRACT(type FROM date)

EXP ()

EXP(x)

 

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

 

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

EXISTS

 

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

 

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

 

ENUM

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

ELT ()

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

DROP VIEW

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

 

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

 

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

 

Приклад:

DROP VIEW cat, tbl1, tbl2;

 

DROP USER

 

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

DROP USER user

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

Зауваження:

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

Приклад:

DROP TRIGGER

 

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

DROP TRIGGER tbl_name.trigger_name

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

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

DROP PROCEDURE

DROP PROCEDURE [IF EXISTS] nameproc

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

DROP FUNCTION

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

Приклад:

DROP FUNCTION test;

DOUBLE

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

DISTINCT

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

 

DESC, ASC

DESC, ASC

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

DELETE

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

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

Синтаксис:

DEGREES ()

DEGREES(x)

 

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

 

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

 

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

DAYOFYEAR ()

DAYOFYEAR(date)

DAYOFWEEK ()

DAYOFWEEK(date)

DAYOFMONTH ()

DAYOFMONTH(date)

DAYNAME ()

DAYNAME(date)

DATE_SUB ()

DATE_ADD(date,INTERVAL expr type)

DATE_FORMAT ()

DATE_FORMAT(date,format)

DATE_ADD ()

DATE_ADD(date,INTERVAL expr type)

DATETIME

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

DATE

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

CURTIME ()

CURTIME()

CURRENT_TIME()

CURRENT_TIMESTAMP ()

NOW()

SYSDATE()

CURRENT_TIME ()

CURTIME()

CURRENT_DATE ()

CURDATE()

CURDATE ()

CURDATE()

CURRENT_DATE()

CREATE VIEW

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

 

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

 

CREATE USER

 

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

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

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

Зауваження:

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 PROCEDURE

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

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

[characteristic ...] routine_body

CREATE FUNCTION

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

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

CRC32 ()

CRC32(str)
 

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

 

CRC32('xyz') ->3951999591

CRC32('0') ->4108050209

COUNT ()

COUNT(expr)

COT ()

COT(x)

 

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

 

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

 

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

COS ()

COS(x)

 

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

 

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

 

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

CONV ()

CONV(N,from_base,to_base)

CONCAT_WS ()

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

CONCAT ()

CONCAT(str1,str2,...)

CHAR_LENGTH ()

LENGTH(str)

CHARACTER_LENGTH ()

LENGTH(str)

CHAR ()

CHAR(N,...)

CHAR

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

CEILING ()

CEILING(x)

 

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

 

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

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

 

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

BIT_LENGTH ()

BIT_LENGTH(str)

BIN ()

BIN(N)

BIGINT

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

 

BETWEEN

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

AVG ()

AVG(expr)

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

ATAN ()

ATAN(x)

ATAN(y, x)

 

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

 

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

 

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

ASIN ()

ASIN(x)

 

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

 

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

 

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

AND

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

 

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

 

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

 

ALTER VIEW

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

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

[with [cascaded | local] check option]

 

Приклад:

ALTER PROCEDURE

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

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

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

ALTER FUNCTION

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

ALTER PROCEDURE sp_name [characteristic ...]

ALTER FUNCTION sp_name [characteristic ...]

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

ALL

Оператор ALL

ADDDATE ()

DATE_ADD(date,INTERVAL expr type)

ACOS ()

ACOS(x)

 

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

 

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

 

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

ABS ()

ABS(x)

 

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

 

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