Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типи даних мови SQL




Мова SQL/89 підтримує наступні типи даних:

· CHARACTER (n) или CHAR(n) — символьні рядки постійної довжини в n символів. При завданні даного типа під кожне значення завжди відводиться n символів, і якщо реальне значення займає менш, ніж n символів, то СУБД автоматично доповнює бракуючі символи пропусками.

· NUMERIC [(n,m)] — точні числа, тут n — загальна кількість цифр в числі, m — кількість цифр зліва від десяткової крапки.

· DECIMAL [(non)] — точні числа, тут n — загальна кількість цифр в числі, m — кількість цифр зліва від десяткової крапки. DEC [(n,m)] - то же, что и DECIMAL[(n,m)].

· INTEGER або INT — цілі числа.

· SMALLINT — цілі числа меншого діапазону.

 

Не дивлячись на те, що в стандарті Sql1 не визначається точно, що мається на увазі під типом INT і SMALLINT (це віддано на відкуп реалізації), вказано лише співвідношення між цими типами даних, в більшості реалізацій тип даних INTEGER відповідає цілим числам, що зберігаються в чотирьох байтах, а SMALLINT — відповідає цілим числам, що зберігаються в двох байтах. Вибор одного з цих типів визначається розміром числа.FLOAT [(n)] — числа большой точности, хранимые в форме с плавающей точ­кой. Здесь n — число байтов, резервируемое под хранение одного числа. Диа­пазон чисел определяется конкретной реализацией.

· REAL — речовий тип чисел, який відповідає числам з плаваючою крапкою, меншої точності, ніж FLOAT.

· DOUBLE PRECISION специфікує типа даних з визначеною в реалізациії точністю більшою, ніж визначена в реалізації точність для REAL.

 

У стандарті SQL92 додані наступні типи даних:

· VARCHAR (n) — строки символів змінної довжини.

· NCHAR (N) — строки локальних символів постійної довжини.

· NCHAR VARYING (n) — строки локальних символів змінної довжини.

· ВIТ (n) — строка бітів постійної довжини.

· BIT VARYING (n) — строка бітів змінної довжини.

· DATE — календарна дата.

· ТIМЕSТАМР(точность) — дата і час.

· INTERVAL — часовий інтервал.

Більшість комерційних СУБД підтримують ще додаткові типи даних, які не специфіковані в стандарті. Так, наприклад, практично всі СУБД в тому або іншому вигляді підтримують типи даних для представлення неструктурованого тексту великого об'єму. Цей тип аналогічний типу МЕМО в настільних СУБД. Називаються ці типи по-різному, наприклад в ORACLE цей тип називається LONG, в Db2 - LONG VARCHAR, в SYBASE і MS SQL Server — TEXT.

Однак слід зазначити, що специфіка реалізації окремих типів даних серйозним чином впливає на результати запитів до БД. Особливо це стосується реалізації типів даних DATE і TIMESTAMP. Тому при переносі додатків будьте уважні, на різних платформах вони можуть працювати по-різному, і однією з причин може бути розходження в інтерпретації типів даних.

При виконанні порівнянь в операціях фільтрації можуть використовуватися константи заданих типів. У стандарті визначені наступні константи. Для числових типів даних визначені константи у вигляді послідовності цифр з необов'язковим завданням знака числа і десяткового точкою. Тобто правильними будуть константи:

213-314 612.716 + 551.702

Константи з плаваючою комою задаються, як і в більшості мов програмування, шляхом завдання мантиси і порядку, розділених символом Е, наприклад:

2.9Е-4 -134.235Е7 G.54267E1S

Рядкові константи повинні бути укладені в одинарні лапки:

'Крмпое Ю.Д.' 'Саикт-Петербург'

У деяких реалізаціях, наприклад MS SQL Server і Informix, припустимі подвійні лапки в строкових константах:

"Москва" "New York'

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

Константи дати, часу та часового інтервалу в реляційних СУБД представляються у вигляді строкових констант. Формати цих констант відрізняються в різних СУБД. Крім того, формат представлення дати різний у різних країнах.

Крім користувальницьких констант у СУБД можуть існувати й спеціальні системні константи. Стандарт SQL1 визначає тільки одну системну констант USER, яка відповідає імені користувача, під яким ви під ключ до БД.

В операторах SQL можуть використовуватися вирази, які будуються за стандартними правилами застосування знаків арифметичних операцій додавання (), віднімання (-), множення (*) і ділення (/). Проте у ряді СУБД операція ділення (/) інтерпретується як розподіл без остачі, тому при побудові складних вираженні ви можете отримати результат, не відповідний традиційній інтерпретації виразу. У стандарт SQL2 включена можливість виконання операції додавання і віднімання над датами. У більшості СУБД також визначена операція конкатенації над рядковими даними, позначаються, на жаль, по-різному. Так, наприклад, для DB2 операція конкатенації позначається подвійною вертикальною рисою, в MS SQL Server - знаком складання (), тому два вирази, створені в різних СУБД, еквівалентні:

"Mr./Mrs. ' || NAME || ' LAST_NAME

"Mг./Mrs. ' + NAME + ' LAST_NAME

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...