Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Числові типи даних





MySQL підтримує всі числові типи даних мови SQL92 за стандартами ANSI / ISO. Вони включають в себе типи точних числових даних (NUMERIC, DECIMAL, INTEGER і SMALLINT) і типи наближених числових даних (FLOAT, REAL і DOUBLE PRECISION). Ключове слово INT є синонімом для INTEGER, а ключове слово DEC - синонімом для DECIMAL.

Типи даних NUMERIC і DECIMAL реалізовані в MySQL як один і той же. Вони використовуються для величин, для яких важливо зберегти підвищену точність, наприклад для грошових даних. Необхідна точність даних і масштаб можуть задаватися (і зазвичай задаються) при оголошенні стовпця даних одного з цих типів, наприклад:

salary DECIMAL (5,2)

У цьому прикладі - 5 (точність) являє собою загальну кількість значущих десяткових знаків, з якими буде зберігатися дана величина, а цифра 2 (масштаб) задає кількість десяткових знаків після коми. Отже, в цьому випадку інтервал величин, які можуть зберігатися в стовпці salary, становить від -99,99 до 99,99 (насправді для даного стовпця MySQL забезпечує можливість зберігання чисел аж до 999,99, оскільки можна не зберігати знак для позитивних чисел).

Величини типів DECIMAL і NUMERIC зберігаються як рядки, а не як двійкові числа з плаваючою точкою, щоб зберегти точність представлення цих величин в десятковому вигляді. При цьому використовується по одному символу рядка для кожного розряду збереженої величини, для десяткового знака (якщо масштаб> 0) і для знака '-' (для негативних чисел). Якщо параметр масштабу дорівнює 0, то величини DECIMAL і NUMERIC не містять десяткового знака або дробової частини.

Максимальний інтервал величин DECIMAL і NUMERIC той же, що і для типу DOUBLE, але реальний інтервал може бути обмежений вибором значень параметрів точності або масштабу для даного стовпця з типом даних DECIMAL або NUMERIC. Якщо конкретному стовпцю присвоюється значення, що має більшу кількість розрядів після десяткового знака, що дозволено параметром масштабу, то дане значення округлюється до кількості розрядів, дозволеного масштабу. Якщо стовпцю з типом DECIMAL або NUMERIC присвоюється значення, що виходить за межі інтервалу, заданого значеннями точності й масштабу (або прийнятого за замовчуванням), то MySQL збереже цю величину зі значенням відповідної граничної точки даного інтервалу.

Всі типи цілочисельних даних можуть мати необов'язковий і не обумовлений в стандарті атрибут UNSIGNED. Беззнакові величини можна використовувати для дозволу запису в стовпець тільки позитивних чисел, якщо необхідно трохи збільшити числовий інтервал в стовпці.

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

Для типів REAL і DOUBLE PRECISION не передбачені установки точності. В MySQL обидва типи реалізуються як 8-байтові числа з плаваючою точкою подвоєної точності. Щоб забезпечити максимальну сумісність, в коді, що вимагає зберігання приблизних числових величин, повинні використовуватися типи FLOAT або DOUBLE PRECISION без вказівок точності або кількості десяткових знаків.

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

Наприклад, інтервал стовпця INT становить від -2147483648 до 2147483647. Якщо спробувати записати в стовпець INT число -9999999999, то воно буде усічено до нижньої кінцевої точки інтервалу і замість записуваного значення в стовпці буде зберігатися величина -2147483648. Аналогічно, якщо спробувати записати число 9999999999, то взамін запишеться число 2147483647.

Якщо для стовпця INT вказано параметр UNSIGNED, то величина допустимого інтервалу для стовпця залишиться тією ж, але його граничні точки зрушаться до 0 і 4294967295. Якщо спробувати записати числа -9999999999 і 9999999999, то в стовпці виявляться величини 0 і 4294967296.

Для команд ALTER TABLE, LOAD DATA INFILE, UPDATE і INSERT виводиться попередження, якщо можуть виникнути перетворення даних внаслідок вищеописаних усікань. У таблиці 4.2 представлені найбільш часто використовувані числові типи полів MySql.

 

Тип Байт Від До
TINYINT   -128  
SMALLINT   -32768  
MEDIUMINT   -8388608  
INT   -2147483648  
BIGINT   -9223372036854775808  






Date: 2015-12-11; view: 527; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию