DatovΘ typy (SQL)

Datov² typ se uvßdφ v definici sloupce v tabulce, v deklaraci prom∞nnΘ, v popisu parametr∙ rutiny nebo hodnoty funkce. Typ urΦuje, jak²ch hodnot m∙₧e prom∞nnß, sloupec atd. nab²vat.

typ ::= °et∞zec_znak∙ | binßrnφ_objekt | °et∞zec_bit∙ | p°esn²_Φφseln²_typ | p°ibli₧n²_Φφseln²_typ | BOOLEAN | DATE | TIME | TIMESTAMP | specifick²_typ_WinBase602
°et∞zec_znak∙ ::= CHAR [( dΘlka )] | CHAR VARYING ( dΘlka ) | VARCHAR ( dΘlka ) | NCHAR [( dΘlka )] | NCHAR VARYING ( dΘlka ) | CLOB [( dΘlka )]
binßrnφ_objekt ::= BLOB [( dΘlka )]
°et∞zec_bit∙ ::= BINARY ( dΘlka ) | VARBINARY ( dΘlka ) | BIT [( dΘlka )] | BIT VARYING ( dΘlka )
p°esn²_Φφseln²_typ ::= INT | SMALLINT | TINYINT | BIGINT | DEC [( p°esnost [, decim ] )] | NUMERIC [( p°esnost [, decim ] )]
p°ibli₧n²_Φφseln²_typ ::= REAL | DOUBLE PRECISION | FLOAT [( p°esnost )]
specifick²_typ_WinBase602 ::= AUTOR | AUTHOR | DATIM | HISTORY | SIGNATURE | POINTER | BIPTR

Ve v²Üe uveden²ch pravidlech lze beze zm∞ny v²znamu mφsto INT psßt INTEGER, mφsto DEC psßt DECIMAL, mφsto CHAR psßt CHARACTER, mφsto NCHAR psßt NATIONAL CHAR nebo NATIONAL CHARACTER, mφsto CLOB psßt CHAR LARGE OBJECT nebo CHARACTER LARGE OBJECT a mφsto BLOB psßt BINARY LARGE OBJECT.

Kv∙li kompatibilit∞ s ODBC lze mφsto CLOB psßt takΘ LONG VARCHAR a mφsto BLOB psßt LONG VARBINARY, mφsto BIT VARYING psßt VARBINARY.

WinBase602, stejn∞ jako ka₧d² systΘm °φzenφ bßze dat, disponuje vlastnφ mno₧inou öfyzick²chö datov²ch typ∙ pou₧φvan²ch p°i skuteΦnΘm ulo₧enφ dat. Tyto fyzickΘ typy jsou p°φmo p°φstupnΘ z v²vojov²ch nßstroj∙ WinBase602 a v jejφm vnit°nφm programovacφm jazyce.

Jazyk SQL specifikuje mno₧inu öideßlnφchö typ∙, kterΘ se budou pou₧φvat v p°φkazech SQL a kterΘ by m∞ly b²t na serveru reprezentovßny fyzick²mi typy. Nφ₧e uvedenß tabulka definuje vzßjemnou souvislost obou mno₧in typ∙.

Popis typu v SQL fyzick² typ WinBase602
CHAR, NCHAR Char
CHAR(n), CHAR VARYING(n), VARCHAR(n), NCHAR(n), NCHAR VARYING(n) pro n<256 String, CSString, CSIString dΘlky n bajt∙
CLOB, CLOB(n) nebo

CHAR(n), CHAR VARYING(n), VARCHAR(n), NCHAR(n), NCHAR VARYING(n) pro n>=256

Text
BLOB, BLOB(n) Nospec
VARBINARY(n), BINARY(n) pro n>=256 Raster
BINARY(n) pro n<256 Binary dΘlky n bajt∙
BIT, BIT(1), BOOLEAN Boolean
BIT(n), BIT VARYING(n) pro 1<n<=2048 Binary dΘlky (n-1) / 8 + 1 bajt∙
BIT(n), BIT VARYING(n) pro n>2048 Raster
INT Integer
SMALLINT Short
TINYINT Tinyint
BIGINT Bigint
DEC(n, 0), NUMERIC(n, 0) pro n <= 2 Tinyint
DEC(n, 0), NUMERIC(n, 0) pro 2 < n <= 4 Short
DEC(n, 0), NUMERIC(n, 0) pro 4 < n <= 9 Integer
DEC(n, 0), NUMERIC(n, 0) pro 9 < n Bigint
DEC(n, d), NUMERIC(n, d) pro 10<=n<=14 a d=2 Money
DEC(n, d), NUMERIC(n, d) jinak Numeric (pouze na serveru)
REAL, DOUBLE PRECISION, FLOAT, FLOAT(n) Real
DATE Date
TIME Time
TIMESTAMP Timestamp
AUTOR, AUTHOR Autorizace
DATIM Datumovka
HISTORY Historie
SIGNATURE Podpis
POINTER Ukazatel
BIPTR Obousm∞rn² ukazatel

Odchylky od Intermediate level sm∞rem k Entry level

Odchylky od Intermediate level sm∞rem k Full level nebo k SQL 3

Implementacφ definovanΘ vlastnosti SQL ve WinBase602