Структура мови sql
Рядки. Рядок є послідовністю символів, поміщених або в одинарні лапки (‘'’) - апострофи, або в подвійні лапки (‘"’). При використанні діалекту ANSI SQL допустимі тільки одинарні лапки. Наприклад:
'а string'
"another string"
Існує декілька способів включити лапки в рядок:
Одиночна лапка (апостроф) ‘'’ усередині рядка, поміщеного в лапки ‘'’, може бути записана як ''''.
Подвійна лапка ‘"’ усередині рядка, поміщеного в подвійні лапки ‘"’, може бути записана як '""'.
Можна передувати символу лапки символом екранування (‘).
Для символу ‘'’ усередині рядка, поміщеного в подвійні лапки, не вимагається спеціальної обробки; його також не потрібно дублювати або передувати зворотним слешем. Так само не вимагає спеціальної обробки подвійна лапка ‘"’ усередині рядка, поміщеного в одиночні лапки ‘'’.
Числа. Цілі числа представляються у вигляді послідовності цифр. Для чисел з плаваючою крапкою як роздільник десяткових знаків використовується символ ‘.’. Числа обох типів можуть передувати символом ‘-’, що позначає негативну величину.
Значення NULL. Значення NULL означає “відсутність даних”'. Вони є відмінним від значення 0 для числових типів даних або порожнього рядка для строкових типів
Імена баз даних, таблиць, стовпців. Для всіх імен баз даних, таблиць, стовпців, індексів і псевдонімів в MySQL прийняті одні і ті ж правила.
Ідентифікатор |
Максимальна довжина рядка |
Символи, що допускаються |
База даних |
64 |
Будь-який символ, допустимий в імені каталога, за винятком ‘/’, ‘\’ або ‘.’ |
Таблиця |
64 |
Будь-який символ, допустимий в імені файлу, за винятком ‘/’ або ‘.’ |
Стовпець |
64 |
Всі символи |
Типи даних стовпців. MySQL підтримує декілька типів стовпців, які можна розділити на три категорії: числові типи даних, типи даних для зберігання дати і часу і символьні (строкові) типи даних.
ZEROFILL в MySQL означає заливку нулями незначущих розрядів в числах.
Якщо вказаний атрибут UNSIGNED, негативні значення недопустимі.
У відсутність слова UNSIGNED звичайно приймається тип SIGNED.
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Мале ціле число. Діапазон із знаком від -32768 до 32767. Діапазон без знаку від 0 до 65535.
INT[(M)] [UNSIGNED] [ZEROFILL]
Ціле число нормального розміру. Діапазон із знаком від -2147483648 до 2147483647. Діапазон без знаку від 0 до 4294967295.
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Синонім для INT.
Float(точність) [unsigned] [zerofill]
Число з плаваючою крапкою. Атрибут точності може мати значення <=24 для числа з плаваючою точкою звичайної (одинарної) точності і між 25 і 53 - для числа з плаваючою точкою подвоєної точності.
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
“Неупаковане”' число з плаваючою крапкою. Поводиться подібно до стовпця CHAR, що містить цифрове значення. Термін “неупаковане” означає, що число зберігається у вигляді рядка і тому для кожного десяткового знаку використовується один символ. Розділовий знак десяткових розрядів, а також знак ‘-’ для негативних чисел не враховуються в M (але місце для них зарезервоване). Якщо атрибут D рівний 0, величини будуть представлені без десяткового знаку, тобто без дробової частини. Якщо атрибут D не вказаний, його значення за умовчанням рівне 0. Якщо не вказаний M, його значення за умовчанням 10.
DATE
Дата. Підтримується інтервал від '1000-01-01' до '9999-12-31'. MySQL виводить значення DATE у форматі 'YYYY-MM-DD', але можна встановити значення в стовпець DATE, використовуючи як рядки, так і числа.
DATETIME
Комбінація дати і часу. Підтримується інтервал від '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. MySQL виводить значення DATETIME у форматі 'YYYY-MM-DD HH:MM:SS', але можна встановлювати значення в стовпці DATETIME, використовуючи як рядки, так і числа.
TIME
Час. Інтервал від '-838:59:59' до '838:59:59'. MySQL виводить значення TIME у форматі 'HH:MM:SS', але можна встановлювати значення в стовпці TIME, використовуючи як рядки, так і числа.
YEAR[(2|4)]
Рік в двозначному або чотиризначному форматах (за умовчанням формат чотиризначний). Допустимі наступні значення: з 1901 по 2155, 0000 для чотиризначного формату року і 1970-2069 при використанні двозначного формату (70-69). MySQL виводить значення YEAR у форматі YYYY, але можна задавати значення в стовпці YEAR, використовуючи як рядки, так і числа (тип даних YEAR недоступний у версіях, передуючих MySQL 3.22).
[NATIONAL] CHAR(M) [BINARY]
Рядок фіксованої довжини, при зберіганні завжди доповнюється пропусками в кінці рядка до заданого розміру. Діапазон аргументу M складає від 0 до 255 символів (від 1 до 255 у версіях, передуючих MySQL 3.23). Кінцеві пропуски віддаляються при виведенні значення.
[NATIONAL] VARCHAR(M) [BINARY]
Рядок змінної довжини. Примітка: кінцеві прогалини віддаляються при збереженні значення (у цьому полягає відмінність від специфікації ANSI SQL). Діапазон аргументу M складає від 0 до 255 символів (від 1 до 255 у версіях, передуючих MySQL Version 4.0.2). Якщо не заданий атрибут чутливості до регістра BINARY, то величини VARCHAR сортуються і порівнюються як незалежні від регістра. Термін VARCHAR є скороченням від CHARACTER VARYING.
BLOB, TEXT
Стовпець типу BLOB або TEXT з максимальною довжиною 65535 (2^16 - 1) символів.
