SQL (типи даних): таблиця
У сучасному світі налічується велика кількість засобів і технологій, призначених для зберігання інформації. Одним з найбільш поширених способів є бази даних, для роботи з якими використовуються різні системи управління. Даний спосіб зберігання передбачає, що всі дані чітко структуровані і занесені в спеціальні таблиці. Вони, в свою чергу, складаються зі стовпців-атрибутів певного типу даних.
Сфера застосування типів даних багатогранна. Вони використовуються не тільки для зберігання інформації, але також і в програмуванні для вирішення різних завдань. При проектуванні програм широко поширена практика розробки і використання власних типів даних з певним набором операцій. Однак в основі користувальницьких завжди лежать базові типи даних. SQL-стандарт також ґрунтується на використанні найбільш поширених базових типів, але з рядом певних доповнень.
На їх базі була розроблена сучасна класифікація, що включає в себе покажчики, логічний, цілочисельний, число з плаваючою точкою і рядковий типи даних. SQL - класифікація повністю охоплює все перераховане вище. Однак для деяких сучасних СУБД існують додаткові надбудови. До них належать Oracle та MySQL.
CHAR (size)
Використовується для зберігання рядків. Параметр в дужках дозволяє фіксувати довжину збереженої рядка. Максимальний розмір у байтах, який можна задати для рядка, – 255.
VARCHAR (size)
Аналогічно попереднього типу дозволяє зберігати рядки довжиною до 255 символів. Однак відміну від CHAR в тому, що для зберігання значення даного типу виділяється необхідна кількість пам'яті. Тобто для рядка, що складається з 5-ти символів, потрібно 6 байт пам'яті. У першому ж випадку пам'ять для значення буде виділена відповідно до зазначеного параметру.
TINY ТЕХТ
Використовується для зберігання строкових даних розміром до 255 символів.
ТЕХТ
Використовується для зберігання текстової інформації, розмір якої не перевищує 65535 букв.
BLOB
Розглянутий тип даних аналогічний типу ТЕХТ і дозволяє зберігати в базі текстову інформацію, обсяг якої може досягати 65535 символів. Але на практиці використовується для зберігання звукових даних, малюнків, електронної документації та ін.
MEDIUM ТЕХТ
Був розроблений на базі типу ТЕХТ, але дозволяє зберігати більше даних за рахунок збільшеного розміру до 16777215 літер або символів.
MEDIUM BLOB
Використовується для збереження у базі електронних документів, розмір яких не перевищує позначку в 16777215 знаків.
LONG ТЕХТ
Функціонально аналогічний попереднім типам, але із збільшеним об'ємом пам'яті до 4 гб.
LONG BLOB
Дозволяє поміщати в базу дані великих обсягів (4294967 295 символу).
ENUM (a, b, c, etc.)
Спеціальний тип даних, що використовується для завдання списку можливих значень. Дозволяє вказати 65535 значень. Рядки розглянутого типу можуть приймати єдине значення з зазначених у множині. У випадку, коли буде відбуватися додавання значень, які не присутні в заданому списку, таблиці будуть записані порожні значення.
SET
Задає безліч допустимих значень. На відміну від попереднього типу, використовується для утримання 64 параметрів, які можуть бути проинициализировани будь-яким або декількома елементами з заданих аргументів.
FLOAT (size, d)
Дозволяє утримувати дробові числа йдеться точності d.
DOUBLE size, d)
Використовується для зберігання дробових чисел з подвійною точністю.
DECIMAL(size, d)
Зберігання дробових значень у вигляді рядків.
Наприклад, в банківських розрахунках точність дробової частини досягає значення у 8-й або 10-ть знаків. Перші два типи не можуть бути задіяні в даній області. Зберігання фінансових показників у вигляді рядків значно полегшує розв'язання багатьох завдань. Однак при вирішенні фінансових питань чи проведення різних операцій SQL перетворення типів даних має величезне значення. Розробники повинні обов'язково враховувати тип зберігання і способи обробки, щоб дані завжди залишалися незмінними.
INT (size)
Зберігання цілочисельних значень, що утворюють діапазон[-231; 231-1]
TINYINT (size)
Служить для зберігання чисел в діапазоні від -128 до 127
SMALLINT (size)
Характеризується збільшеним діапазоном збережених значень у розмірі від -32768 до 32767
MEDIUMINT (size)
Використовується для зберігання чисел розмірністю від -2 2 3 до 2 2 3 -1
BIGINT (size)
Охоплює діапазон цілих чисел, починаючи з -2 63 і закінчуючи 2 63 -1
Вибравши правильний тип даних, можна значно заощадити пам'ять і зменшити витрати серверного часу, коли виконуються необхідні SQL-запити. Типи даних, а точніше їх діапазон, визначають кількість необхідного місця для зберігання. Тому розробникам баз даних важливо пам'ятати, що використання великих діапазонів для атрибутів спричиняє збільшення витрат на пам'ять. Необхідно чітко аналізувати завдання, які вирішуються і виявляти випадки, де відомий приблизний діапазон та визначено умову використання чисел зі знаком. Якщо діапазон використовуваних аргументів невеликий, а всі числа будуть позитивними, то буде коректніше використовувати беззнаковий тип, утворений атрибутом UNSIGNED.
DATE
Головне призначення - зберігання дати у форматі РІК-МІСЯЦЬ-ДЕНЬ ("РРРР-ММ-ДД" або "уууу-mm-dd" ). Зазвичай значення розділені через «-», проте в якості роздільника може бути задіяний будь-який символ, крім цифр.
TIME
Дозволяє заносити в клітинку таблиці тимчасові значення. Всі значення задаються форматом «hh:mm:ss»
DATETIME
Об'єднує функції попередніх двох типів. Формат зберігання представлений наступним чином: «уууу-mm-dd hh:mm:ss».
TIMESTAMP
Зберігає дату і час, який обчислюється кількістю секунд, що пройшли починаючи з півночі 1011970 року і до заданого значення.
YEAR (M)
Використовується для зберігання річних значень двох - або чотиризначному форматі.
Тип даних – що це?
Сьогодні існує кілька визначень, що пояснюють поняття терміну «тип даних». Однак кожне з них має один загальний зміст. Тому тип даних можна умовно позначити як групу даних, характеризується її значеннями (символьні, числові і т. д.), а також операціями, застосовуваними до досліджуваних значень.Сфера застосування типів даних багатогранна. Вони використовуються не тільки для зберігання інформації, але також і в програмуванні для вирішення різних завдань. При проектуванні програм широко поширена практика розробки і використання власних типів даних з певним набором операцій. Однак в основі користувальницьких завжди лежать базові типи даних. SQL-стандарт також ґрунтується на використанні найбільш поширених базових типів, але з рядом певних доповнень.
Класифікація типів даних
Групування даних за їх типом виникла давно і була викликана необхідністю структурування інформації для більш зручної обробки. В даний час основу існуючих типів даних утворюють два: символьний і числовий.На їх базі була розроблена сучасна класифікація, що включає в себе покажчики, логічний, цілочисельний, число з плаваючою точкою і рядковий типи даних. SQL - класифікація повністю охоплює все перераховане вище. Однак для деяких сучасних СУБД існують додаткові надбудови. До них належать Oracle та MySQL.
Базові типи даних
Використовуються при створенні атрибутів таблиць, що відповідають стандартам мови SQL, типи даних розподіляються на 4 класи: рядкові значення; дробу; целочиселенние значення; значення дати і часу.Рядковий тип даних
Перша група значень дозволяє зберігати будь-які дані, представлені у вигляді символів. Це можуть бути спеціальні символи, цифри і букви, які в своїй сукупності будуть оброблятися як рядки в будь-якому SQL-запиті. Типи даних, таблиця з перерахуванням яких представлена нижче, утворюють першу групу.CHAR (size)
Використовується для зберігання рядків. Параметр в дужках дозволяє фіксувати довжину збереженої рядка. Максимальний розмір у байтах, який можна задати для рядка, – 255.
VARCHAR (size)
Аналогічно попереднього типу дозволяє зберігати рядки довжиною до 255 символів. Однак відміну від CHAR в тому, що для зберігання значення даного типу виділяється необхідна кількість пам'яті. Тобто для рядка, що складається з 5-ти символів, потрібно 6 байт пам'яті. У першому ж випадку пам'ять для значення буде виділена відповідно до зазначеного параметру.
TINY ТЕХТ
Використовується для зберігання строкових даних розміром до 255 символів.
ТЕХТ
Використовується для зберігання текстової інформації, розмір якої не перевищує 65535 букв.
BLOB
Розглянутий тип даних аналогічний типу ТЕХТ і дозволяє зберігати в базі текстову інформацію, обсяг якої може досягати 65535 символів. Але на практиці використовується для зберігання звукових даних, малюнків, електронної документації та ін.
MEDIUM ТЕХТ
Був розроблений на базі типу ТЕХТ, але дозволяє зберігати більше даних за рахунок збільшеного розміру до 16777215 літер або символів.
MEDIUM BLOB
Використовується для збереження у базі електронних документів, розмір яких не перевищує позначку в 16777215 знаків.
LONG ТЕХТ
Функціонально аналогічний попереднім типам, але із збільшеним об'ємом пам'яті до 4 гб.
LONG BLOB
Дозволяє поміщати в базу дані великих обсягів (4294967 295 символу).
ENUM (a, b, c, etc.)
Спеціальний тип даних, що використовується для завдання списку можливих значень. Дозволяє вказати 65535 значень. Рядки розглянутого типу можуть приймати єдине значення з зазначених у множині. У випадку, коли буде відбуватися додавання значень, які не присутні в заданому списку, таблиці будуть записані порожні значення.
SET
Задає безліч допустимих значень. На відміну від попереднього типу, використовується для утримання 64 параметрів, які можуть бути проинициализировани будь-яким або декількома елементами з заданих аргументів.
Таблиця дробових типів даних
Дробові SQL типи даних використовуються для зберігання чисел з плаваючою точкою. На практиці, як правило, задають різні фінансові показники. Залежно від необхідної точності застосовують один з трьох представлених:FLOAT (size, d)
Дозволяє утримувати дробові числа йдеться точності d.
DOUBLE size, d)
Використовується для зберігання дробових чисел з подвійною точністю.
DECIMAL(size, d)
Зберігання дробових значень у вигляді рядків.
Наприклад, в банківських розрахунках точність дробової частини досягає значення у 8-й або 10-ть знаків. Перші два типи не можуть бути задіяні в даній області. Зберігання фінансових показників у вигляді рядків значно полегшує розв'язання багатьох завдань. Однак при вирішенні фінансових питань чи проведення різних операцій SQL перетворення типів даних має величезне значення. Розробники повинні обов'язково враховувати тип зберігання і способи обробки, щоб дані завжди залишалися незмінними.
Цілочисельний тип даних
Цілі числа – окрема група чисел, що утворює один з основних класів. Цілочисельні типи даних SQL ґрунтуються на використанні базового типу INTEGER з деяким розширенням його властивостей.INT (size)
Зберігання цілочисельних значень, що утворюють діапазон[-231; 231-1]
TINYINT (size)
Служить для зберігання чисел в діапазоні від -128 до 127
SMALLINT (size)
Характеризується збільшеним діапазоном збережених значень у розмірі від -32768 до 32767
MEDIUMINT (size)
Використовується для зберігання чисел розмірністю від -2 2 3 до 2 2 3 -1
BIGINT (size)
Охоплює діапазон цілих чисел, починаючи з -2 63 і закінчуючи 2 63 -1
Вибравши правильний тип даних, можна значно заощадити пам'ять і зменшити витрати серверного часу, коли виконуються необхідні SQL-запити. Типи даних, а точніше їх діапазон, визначають кількість необхідного місця для зберігання. Тому розробникам баз даних важливо пам'ятати, що використання великих діапазонів для атрибутів спричиняє збільшення витрат на пам'ять. Необхідно чітко аналізувати завдання, які вирішуються і виявляти випадки, де відомий приблизний діапазон та визначено умову використання чисел зі знаком. Якщо діапазон використовуваних аргументів невеликий, а всі числа будуть позитивними, то буде коректніше використовувати беззнаковий тип, утворений атрибутом UNSIGNED.
Типи даних дати й часу
При вивченні основ SQL типи даних дати й часу представляють особливий інтерес. Використання нижченаведених типів надає додаткові переваги при розробці систем, робота яких залежить від часових показників.DATE
Головне призначення - зберігання дати у форматі РІК-МІСЯЦЬ-ДЕНЬ ("РРРР-ММ-ДД" або "уууу-mm-dd" ). Зазвичай значення розділені через «-», проте в якості роздільника може бути задіяний будь-який символ, крім цифр.
TIME
Дозволяє заносити в клітинку таблиці тимчасові значення. Всі значення задаються форматом «hh:mm:ss»
DATETIME
Об'єднує функції попередніх двох типів. Формат зберігання представлений наступним чином: «уууу-mm-dd hh:mm:ss».
TIMESTAMP
Зберігає дату і час, який обчислюється кількістю секунд, що пройшли починаючи з півночі 1011970 року і до заданого значення.
YEAR (M)
Використовується для зберігання річних значень двох - або чотиризначному форматі.
Що ще потрібно знати?
Всі ці типи даних детально систематизовано компанією Microsoft. SQL типи даних нею розроблені більш детально. Наприклад, фірмою детально розписаний, який обсяг пам'яті в байтах виділяється при використанні кожного типу. Вивчивши наявну інформацію, розробникам простіше проектувати структуру таблиць і всієї бази виходячи з апаратних можливостей сервера.Спеціальний покажчик – NULL
Іноді при заповненні бази даних виникає ситуація, коли при додаванні записів у таблицю необхідність вносити інформацію в усі стовпці відсутня. Для цього застосовується спеціальний покажчик порожнього значення – NULL , який в якості допоміжного засобу використовують мову SQL. Типи даних стовпців, які не обов'язково повинні бути заповнені, при створенні таблиць вказуються з оператором, що дозволяє включення порожніх значень. В іншому випадку оператор NULL з додатковою приставкою NOT може бути задіяний для вказівки обов'язкового заповнення всіх значень. Покажчик NULL не має типу, а просто вказує на значення null в таблицях баз даних. Тому він може бути скомбінованим з будь-яким з перерахованих вище типів.Цікаво по темі
MySQL - запит у запиті. MySQL: приклади запитів. Вкладені запити MySQL
Основні особливості вкладених запитів. Як побудувати в MySQL запит в запиті. Для чого необхідні вкладені запити. Приклад вкладеного запиту MySQL.
Використання MySQL: insert into
Ефективне використання інформації часто визначається якістю структури бази даних і алгоритмів формування її змісту. Правильно додати запис в базу -
BigInteger Java: робота з великими числами
Для роботи з числами, які не можуть зберігається в стандартних примітивних типів, в Java є спеціальний клас BigInteger. Він не тільки інкапсулює їх
Java Узагальнення: опис і методи
Узагальнені типи або узагальнення в Java представляють собою потужний інструмент уніфікації коду та забезпечення безпеки типів даних. У даній статті
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів в Pascal дозволяє реалізувати більш широкий клас задач та виконувати операції над величинами різних типів.
Файрвол для «Андроїда»: типи додатків і їх можливості
Захист від стеження або збереження конфіденційності абсолютно для всіх комп'ютерних і мобільних пристроїв є нагальною проблемою. Для цього