Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
102
Добавлен:
12.02.2016
Размер:
347.02 Кб
Скачать
    1. Типи даних, використовувані в sql –сервері

Системні типи даних

Один з основних моментів процесу створення таблиці - визначення типів даних для її полів. Тип даних поля таблиці визначає тип інформації, яка розміщуватиметься в цьому полі. Поняття типу даних в SQL Server повністю адекватно поняттю типу даних в сучасних мовах програмування. SQL -сервер підтримує велике число різних типів даних : текстові, числові, двійкові (див. таблицю 2.2).

Таблиця 2.2.

image

smalldatetime

bit

binary

text

real

decimal

char

uniqueidentifier

money

numeric

timestamp

tinyint

datetime

smallmoney

nvarchar

smallint

float

varbinary

nchar

int

ntext

varchar

sysname

Приведемо короткий огляд типів даних SQL Server.

Для зберігання символьної інформації використовуються символьні типи даних, до яких відносяться CHAR (довжина), VARCHAR (довжина), NCHAR (довжина), NVARCHAR (довжина). Останні два призначені для зберігання символів Unicode. Максимальне значення довжини обмежене 8000 знаками ( 4000 - для символів Unicode).

Зберігання символьних даних великого об'єму (до 2 Гб) здійснюється за допомогою текстових типів даних TEXT і NTEXT.

До цілочисельних типів даних відносяться INT ( INTEGER ), SMALLINT, TINYINT, BIGINT. Для зберігання даних цілочисельного типу використовується, відповідно, 4 байти (діапазон від - 231 до 231-1 ), 2 байти (діапазон від - 215 до 215-1 ), 1 байт (діапазон від 0 до 255 ) або 8 байт (діапазон від - 263 до 263-1 ). Об'єкти і вирази цілочисельного типу можуть застосовуватися у будь-яких математичних операціях.

Числа, у складі яких є десяткова точка, називаються нецілочисельними. Нецілочисельні дані розділяються на два типи - десяткові і приблизні.

До десяткових типів даних відносяться типи DECIMAL [(точність[,масштаб])] чи DEC і NUMERIC [(точність[,масштаб])]. Типи даних DECIMAL і NUMERIC дозволяють самостійно визначити формат точності числа з плаваючою комою. Параметр точність вказує максимальна кількість цифр даних цього типу (до і після десяткової точки в сумі), що вводяться, а параметр масштаб - максимальна кількість цифр, розташованих після десяткової точки. У звичайному режимі сервер дозволяє вводити не більше 28 цифр, використовуваних в типах DECIMAL і NUMERIC (від 2 до 17 байт).

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

Для зберігання інформації про дату і час призначені такі типи даних, як DATETIME і SMALLDATETIME, що використовують для представлення дати і часу 8 і 4 байти відповідно.

Типи даних MONEY і SMALLMONEY роблять можливим зберігання інформації грошового типу ; вони забезпечують точність значень до 4 знаків після коми і використовують 8 і 4 байти відповідно.

Тип даних BIT дозволяє зберігати один біт, який набуває значень 0 або 1.

У середовищі SQL Server реалізований ряд спеціальних типів даних.

Тип даних TIMESTAMP застосовується в якості індикатора зміни версії рядка в межах бази даних.

Тип даних UNIQUEIDENTIFIER використовується для зберігання глобальних унікальних ідентифікаційних номерів.

Тип даних SYSNAME призначений для ідентифікаторів об'єктів.

Тип даних SQL_VARIANT дозволяє зберігати значення будь-якого з підтримуваних SQL Server типів даних за винятком TEXT, NTEXT, IMAGE і TIMESTAMP.

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

Тип даних CURSOR потрібний для роботи з такими об'єктами, як курсори, і може бути затребуваний тільки для змінних і параметрів процедур, що зберігаються. Курсори SQL Server є механізмом обміну даними між сервером і клієнтом. Курсор дозволяє клієнтським застосуванням працювати не з повним набором даних, а лише з однією або декількома рядками. Приклади використання даних типу CURSOR ми розглянемо в лекціях, присвячених курсорам і процедурам, що зберігаються.

Створення користувацького типу даних

У системі SQL -сервера є підтримка призначених для користувача типів даних. Вони можуть використовуватися при визначенні якого-небудь специфічного або часто вживаного формату.

Створення користувацького типу даних здійснюється виконанням системної процедури :

sp_addtype [@typename=]type,[@phystype=]

system_data_type

[,[@nulltype=]'null_type']

Тип даних system_data_type вибирається з наступної таблиці.

Таблиця 2.3.

image

smalldatetime

decimal

bit

text

real

'decimal[(p[,s])]'

'binary(n)'

uniqueidentifier

datetime

numeric

'char(n)'

smallint

float

'numeric[(p[,s])]'

'nvarchar(n)'

int

'float(n)'

'varbinary(n)'

ntext

'varchar(n)'

'nchar(n)'

EXEC sp_addtype bir, DATETIME, 'NULL'

чи

EXEC sp_addtype bir, DATETIME, 'NOT NULL'

Приклад 2.1. Створення користувацького типу даних bir.

CREATE TABLE tab

((id_n INT IDENTITY(1,1) PRIMARY KEY

names VARCHAR(40),

birthday BIR)

Приклад 2.2. Використання користувацького типу даних bir при створенні таблиці.

Видалення користувацького типу даних відбувається в результаті виконання процедури sp_droptype type : EXEC sp_droptype 'bir'

Отримання інформації про типи дані

Отримати список усіх типів даних, включаючи призначені для користувача, можна з системної таблиці systypes :

SELECT * FROM systypes

Перетворення типів

Нерідко вимагається конвертувати значення одного типу в значення іншого. Найчастіше виконується конвертація чисел в символьні дані і навпаки, для цього використовується спеціалізована функція STR. Для виконання інших перетворень SQL Server пропонує універсальні функції CONVERT і CAST, за допомогою яких значення одного типу перетворюються в значення іншого типу, якщо такі зміни взагалі можливі. CONVERT і CAST приблизно однакові і можуть бути взаємозамінними.

CAST(вираження AS тип_даних)

CONVERT(тип_даних[(довжина)]

вираження [, стиль])

За допомогою аргументу стиль можна управляти стилем представлення значень наступних типів даних : дата/час, грошовий або нецілочисельний.

DECLARE @d DATETIME

DECLARE @s CHAR(8)

SET @s='29.10.01'

SET @d=CAST(@s AS DATETIME)

Приклад 2.3. Перетворення даних символьного типу до даних типу дата/час.

Разом з типами даних засадничими поняттями при роботі з мовою SQL в середовищі MS SQL Server являються вирази, оператори, змінні, що управляють конструкції.

    1. Вирази

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

Вираження складається з операндів (власне даних ) і операторів (знаків операцій, вироблюваних над операндами ). Операндами можуть виступати константи, змінні, імена стовпців, функції, підзапити.

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

    1. Змінні

У середовищі SQL Server існує декілька способів передання даних між командами. Один з них - передача даних через локальні змінні. Перш ніж використовувати яку-небудь змінну, її слід оголосити. Оголошення змінної виконується командою DECLARE, що має наступний формат :

DECLARE {@ім'я_змінної тип_даних }

[,..n]

Значення змінної можна присвоїти за допомогою команд SET і SELECT. За допомогою команди SELECT змінній можна присвоїти не лише конкретне значення, але і результат обчислення вираження.

DECLARE @a INT

SET @a=10

Приклад 2.4. Використання SET для надання значення локальній змінній.

DECLARE @k INT

SELECT @k=SUM(кількість) FROM Товар

Приклад 2.5. Використання SELECT для привласнення локальної змінної результату обчислень.

Соседние файлы в папке бідак