Konfiguracja sprzętu i oprogramowania

Procent typu danych w sql. Standardowe typy danych SQL

Nazwy.

Operatorzy

Podstawowe pojęcia SQL

Każda instrukcja SQL zaczyna się od czasownika, tj. słowo kluczowe A opisujący akcję wykonaną przez operatora. Typowe czasowniki to SELECT (wybierz), CREATE (utwórz), INSERT (dodaj), DELETE (usuń), COMMIT (ukończ). Po czasowniku następuje jedno lub więcej zdań. Zdanie opisuje dane, z którymi pracuje operator lub zawiera informacje wyjaśniające o wykonanej przez operatora akcji. Każda klauzula zaczyna się również od słowa kluczowego, takiego jak WHERE (gdzie), FROM (skąd), INTO (dokąd) i HAVING (posiadanie). Niektóre zdania w operatorze są obowiązkowe, a inne nie. Specyficzna struktura i treść oferty może ulec zmianie. Wiele zdań zawiera nazwy tabel lub kolumn; niektóre z nich mogą zawierać dodatkowe słowa kluczowe, stałe i wyrażenia.

Norma ANSI/ISO definiuje słowa kluczowe używane jako czasowniki oraz w zdaniach operatorów. Zgodnie ze standardem te słowa kluczowe nie mogą być używane do nazywania obiektów bazy danych, takich jak tabele, kolumny i użytkownicy.

Każdy obiekt w bazie danych ma unikalną nazwę. Nazwy są używane w Instrukcje SQL i wskazać, na którym obiekcie bazy danych operator powinien wykonać akcję. Norma ANSI/ISO określa, że ​​tabele, kolumny i użytkownicy mają nazwy. Wiele implementacji SQL obsługuje również dodatkowe nazwane obiekty, takie jak procedury składowane, nazwane relacje klucz podstawowy-klucz obcy oraz formularze wprowadzania danych.

Zgodnie ze standardem ANSI/ISO, nazwy SQL muszą mieć od 1 do 18 znaków, zaczynać się od litery i nie mogą zawierać spacji ani specjalnych znaków interpunkcyjnych. W standardzie SQL2 maksymalna liczba znaków w nazwie została zwiększona do 128.

Pełna nazwa tabeli składa się z nazwy właściciela tabeli i jej własnej nazwy, oddzielonych kropką (.). Na przykład w pełni kwalifikowana nazwa tabeli Studenci, której właścicielem jest użytkownik o nazwie Administrator, jest następująca:

Jeśli w instrukcji podano nazwę kolumny, SQL określa, która z tabel określonych w tej samej instrukcji zawiera podana kolumna. Jeśli jednak chcesz dołączyć dwie kolumny z różnych tabel, ale o tej samej nazwie w instrukcji, musisz określić w pełni kwalifikowane nazwy kolumn, które jednoznacznie identyfikują ich lokalizację. W pełni kwalifikowana nazwa kolumny składa się z nazwy tabeli zawierającej kolumnę oraz nazwy kolumny (nazwa prosta) oddzielonych kropką (.). Na przykład w pełni kwalifikowana nazwa kolumny StName z tabeli Studenci to: Students.StName



Norma ANSI/ISO definiuje typy danych, które mogą być używane do reprezentowania informacji w: relacyjna baza danych dane. Typy danych dostępne w standardzie SQL1 stanowią jedynie minimalny zestaw i są obsługiwane we wszystkich komercyjnych systemach DBMS. Poniżej przedstawiono typy danych zdefiniowane w standardach SQL1 i SQL2:

CHAR (długość), CHARACTER (długość) Ciągi znaków o stałej długości

VARCHAR(długość), CHAR VARYING(długość), CHARACTER VARYING(długość) Ciągi znaków o zmiennej długości*

NCHAP(długość), ZNAK NARODOWY(długość), ZNAK NARODOWY(długość) Zlokalizowane ciągi znaków o stałej długości*

NCHAR VARYING(długość), NARODOWY CHAR VARYING(długość),

RÓŻNE ZNAKI NARODOWE(długość) Ciągi znaków zlokalizowanych o zmiennej długości*

INTEGER, INT Liczby całkowite

MAŁE Małe liczby całkowite

BIT(długość) Ciągi bitów o stałej długości*

BIT VARYNG(długość) Ciągi bitów o zmiennej długości*

NUMERYCZNE(precyzja, stopień) , DECIMAL(precyzja, stopień),

DEC(precyzja, stopień) Skalowalne liczby całkowite (dziesiętne)

FLOAT(precyzja) Liczby zmiennoprzecinkowe

REAL Liczby zmiennoprzecinkowe o niskiej precyzji

PODWÓJNA PRECYZJA Liczby zmiennoprzecinkowe wysoka precyzja

DATA Data kalendarza*

CZAS (precyzja) Czas

ZNACZNIK CZASU (dokładność) Data i godzina*

INTERWAŁ Przedział czasu*

SQL1 używa następujących typów danych:

1. Ciągi znaków o stałej długości. Kolumny, które mają ten typ danych, zwykle przechowują nazwy osób i firm, adresy, opisy itd.

2. Liczby całkowite. Kolumny, które mają ten typ danych, zwykle przechowują dane o kontach, ilościach, wieku i tak dalej. Kolumny liczb całkowitych są często używane również do przechowywania identyfikatorów, takich jak identyfikator klienta, pracownika lub zamówienia.

3. Skalowalne liczby całkowite. Kolumny tego typu przechowują numery, które mają część ułamkowa które muszą być dokładnie obliczone, takie jak kursy wymiany i wartości procentowe. Ponadto takie kolumny często przechowują) wartości pieniężne.

4. Liczby zmiennoprzecinkowe. Kolumny tego typu służą do przechowywania wartości, które można aproksymować, takich jak wagi i odległości. Liczby zmiennoprzecinkowe mogą reprezentować większy zakres wartości niż liczby dziesiętne, ale obliczenia mogą wprowadzać błędy zaokrąglania.

Oprócz typów danych zdefiniowanych w standardzie SQL1, większość komercyjnych DBMS ma wiele dodatkowych typów danych, z których większość jest zawarta w standardzie SQL2. Poniżej wymieniono najważniejsze z nich:

1. Ciągi znaków o zmiennej długości. Prawie wszystkie DBMS wspierają typ danych VARCHAR, który pozwala na przechowywanie łańcuchów znaków, których długość zmienia się w pewnym zakresie.Standardowe łańcuchy SQL1 o stałej długości, które są dopełnione spacjami po prawej stronie.

2. Wartości pieniężne. Wiele DBMS obsługuje typ danych MONEY lub CURRENCY, który jest zwykle przechowywany jako liczba dziesiętna lub zmiennoprzecinkowa. Obecność oddzielnego typu danych do reprezentowania wartości pieniężnych pozwala na ich prawidłowe sformatowanie podczas wyświetlania na ekranie.

3. Data i godzina. Obsługa wartości daty/czasu jest również szeroko rozpowszechniona w różnych DBMS, chociaż sposób jej implementacji jest dość różny. Z reguły na wartościach tego typu danych można wykonywać różne operacje. Standard SQL2 zawiera definicję typów danych DATE, TIME, TIMESTAMP i INTERVAL, w tym obsługę stref czasowych oraz możliwość określenia precyzji, reprezentacji czasu (takich jak dziesiąte lub setne części sekundy).

4. Dane logiczne. Niektóre DBMS wprost obsługują wartości logiczne (PRAWDA lub FAŁSZ).

Literatura: I.F. Astachowa, A.P. Tołstojow, W.M. Melnikov SQL w przykładach i problemach. Instruktaż: Nowa wiedza, 2002

Dziś na świecie istnieje ogromna liczba technologii i narzędzi przeznaczonych do przechowywania informacji. Bazy danych to jeden z najczęstszych sposobów. Do pracy z nimi wykorzystywane są różne systemy sterowania. Ta metoda przechowywania zakłada, że ​​wszystkie informacje są jasno ustrukturyzowane i wprowadzone specjalne stoły. Tabele z kolei składają się z kolumn atrybutów określonego typu informacji.

Co to jest typ danych?

Obecnie istnieje kilka definicji jednocześnie, które wyjaśniają istotę pojęcia „typu danych”. Każdy z nich ma jedno wspólne znaczenie. Zgodnie z konwencją typ danych można zdefiniować jako grupę danych charakteryzującą się wartościami — numerycznymi, znakowymi itd. — oraz operacjami, które można zastosować do danych wartości. Zakres stosowania różne rodzaje dane są bardzo wszechstronne. Dane mogą być wykorzystywane nie tylko do przechowywania informacji, ale także w programowaniu do rozwiązywania problemów. Podczas opracowywania programów praktyka używania rodzime typy dane z określonym zestawem operacji. U źródła Informacje o użytkowniku zawsze leżą podstawowe typy danych. Standard SQL opiera się na najczęściej spotykanych typach informacji, ale z kilkoma specyficznymi dodatkami.

Typy danych: klasyfikacja

Grupowanie danych według typu pojawiło się dawno temu. Spowodowane było to koniecznością uporządkowania wszystkich tomów informacji, aby zapewnić wygodę ich przetwarzania. Obecnie wszystkie istniejące typy danych oparte są na dwóch podstawowych: znakowym i numerycznym. Na podstawie tych danych opracowano nowoczesną klasyfikację, która obejmuje wskaźniki, typy całkowite, logiczne, zmiennoprzecinkowe i łańcuchowe. Wszystkie powyższe są w pełni objęte klasyfikacją SQL. Jednak dla nowoczesne systemy zarządzanie bazą danych istnieją specjalne dodatki. Należą do nich MySQL i Oracle.

Podstawowe typy danych

Typy danych używane podczas tworzenia atrybutów tabel, które spełniają standardy języka SQL, można podzielić na 4 klasy: wartości łańcuchowe, ułamki, wartości całkowite, wartości czasu i daty.

Typ danych ciągu

Pierwszy typ danych umożliwia przechowywanie dowolnych informacji reprezentowanych jako znaki. W tym przypadku mówimy o znakach specjalnych i literach, które razem będą przetwarzane w dowolnym Zapytanie SQL jak struny. Poniżej znajdują się typy danych, które tworzą pierwszą grupę:

- CHAR (rozmiar) - ten typ służy do przechowywania napisów. Parametr podany w nawiasach pozwala ustalić długość przechowywanego ciągu. Dla linii możesz ustawić największy rozmiar w bajtach - 255.

- VAR CHAR (rozmiar) - analogicznie do poprzedniego typu, ten typ pozwala na przechowywanie stringów, których długość nie przekracza 255 znaków. Główną różnicą między tym typem a CHAR jest to, że wymagana ilość pamięci jest tutaj przydzielana do przechowywania wartości tego typu. Zatem dla ciągu składającego się z 5 znaków potrzebne będzie 6 bajtów pamięci. W pierwszym przypadku pamięć do przechowywania wartości zostanie przydzielona zgodnie z określonym parametrem.

- TINY TEXT - ten typ służy do przechowywania informacji tekstowych, których objętość nie przekracza 65535 znaków.

- BLOB - ten typ jest podobny do typu TEXT. Pozwala na zapisanie w bazie danych informacji tekstowych, których objętość może wynosić do 65 535 znaków. Jednak w praktyce ten typ można wykorzystać do przechowywania rysunków, informacja dźwiękowa, dokumenty elektroniczne i inni.

- MEDIUM TEXT - ten typ został opracowany na podstawie typu TEXT. Ze względu na rozmiar zwiększony do 16777215 znaków, ten typ pozwala na przechowywanie większej ilości danych.

- MEDIU MBLOB - służy do przechowywania dokumentów elektronicznych w bazie danych, których rozmiar nie przekracza 16777215 znaków.

- DŁUGI TEKST - by funkcjonalność podobny do poprzednich typów danych, ale ma pojemność pamięci zwiększoną do 4 GB.

- LONG BLOB - umożliwia umieszczanie w bazie danych dużych ilości - 4294967295 znaków.

- ENUM to specjalny typ danych używany do definiowania listy różnych wartości. Ten typ umożliwia określenie 65535 wartości. Stringi tego typu mogą przyjmować tylko jedną ze wszystkich wartości określonych w zestawie. W przypadku, gdy zostanie przeprowadzone dodawanie wartości, które nie znajdują się na podanej liście, do tabeli zostaną zapisane wartości puste.

- SET - ten typ danych określa zestaw poprawnych wartości. W przeciwieństwie do poprzedniego typu jest używany do zawierania 64 parametrów, które można zainicjować wieloma elementami danych argumentów.

Tabela z ułamkowymi typami danych

typ ułamkowy dane SQL służy do przechowywania liczb zmiennoprzecinkowych. Z reguły w praktyce tego typu dane charakteryzują różne wskaźniki finansowe. W zależności od wymaganej dokładności można zastosować jeden z poniższych typów.

FLOAT (rozmiar) - służy do przechowywania liczb ułamkowych o określonej precyzji - d;

- DOUBLE (rozmiar) - służy do przechowywania ułamków z dokładnością binarną;

- DECIMAL (rozmiar, d) - służy do przechowywania wartości ułamkowych jako ciągów. Wykorzystywany jest w obliczeniach bankowych, gdzie dokładność części ułamkowej może sięgać 8 lub 10 cyfr.

Nie można używać dwóch pierwszych typów w tym obszarze. Przechowywanie wskaźników finansowych w postaci ciągów może znacznie ułatwić rozwiązanie wielu praktycznych problemów. Podczas prowadzenia operacji i rozwiązywania problemów finansowych duże znaczenie ma konwersja typów danych SQL. Deweloperzy muszą wziąć pod uwagę rodzaj metod przechowywania i przetwarzania informacji, aby dane pozostały niezmienione przez cały czas.

Dane typu liczb całkowitych

Osobną grupą liczb, tworzącą jedną z głównych klas, są liczby całkowite. Typy danych Integer są oparte na typie podstawowym INTEGER z pewnym rozszerzeniem właściwości.

  • INT (rozmiar) - odpowiada za przechowywanie danych całkowitych z zakresu [-231;231-1].
  • TINYINT (rozmiar) - służy do przechowywania numerów z zakresu -128 do 127.
  • SMALLINT (rozmiar) - charakteryzuje się nieznacznie zwiększonym zakresem przechowywanych danych od -32768 do 32767.
  • ŚREDNIA (rozmiar) - służy do przechowywania numerów o wymiarach od -223 do 223-1.
  • BIGINT (rozmiar) - obejmuje zakres wartości całkowitych od -263 do 263-1.

Jeśli wybierzesz odpowiedni typ danych, możesz zaoszczędzić dużo pamięci i jednocześnie skrócić czas serwera podczas wykonywania niezbędnych zapytań SQL. Typy danych i ich zakres określają ilość pamięci wymaganej do przechowywania. Deweloperzy muszą mieć świadomość, że używanie dużych zakresów atrybutów może zwiększyć koszty pamięci. Należy jasno przeanalizować zadania do rozwiązania i wskazać sytuacje, w których znany jest przybliżony zakres danych i określony jest warunek użycia cyfr ze znakiem. Jeśli jest mały zakres użytych argumentów, a wszystkie liczby będą dodatnie, to bardziej poprawne będzie użycie typu unsigned, dla którego przeznaczony jest atrybut UNSIGNED.

Typy danych czasu i daty

Rodzaje danych czasu i daty są bardzo interesujące podczas nauki Podstawy SQL. Zastosowanie poniższych typów może zapewnić dodatkowe korzyści w przypadku tworzenia systemów, których działanie jest bezpośrednio uzależnione od wskaźników czasu.

  • DATA - głównym celem tego typu jest przechowywanie daty w formacie rok-miesiąc-dzień. Wartości są zwykle oddzielone znakiem „-”. Czasami jednak jako separatora można użyć dowolnego znaku, z wyjątkiem cyfr.
  • CZAS - umożliwia wprowadzenie wartości tymczasowych w komórce tabeli. Wartości podane są w formacie „gg:mm:ss”.
  • DATA CZAS - ten typ łączy w sobie funkcje dwóch poprzednich. Format przechowywania danych w tym przypadku wygląda tak: "rrrr-mm-dd: gg: mm: ss".
  • ZNACZNIK CZASU — ten typ przechowuje datę i godzinę, obliczoną jako liczba sekund, które upłynęły od północy 01.01.2070 do określonej wartości.
  • ROK (M) - służy do przechowywania wartości rocznych w formacie dwu- lub czterocyfrowym.

Co jeszcze powinieneś wiedzieć? Wszystkie przedstawione powyżej typy danych zostały usystematyzowane przez firmę Microsoft. Opracowała również bardziej szczegółowo typy danych SQL. Na przykład formularz opisuje, ile pamięci jest alokowane przy użyciu każdego typu danych. Po przestudiowaniu wszystkich dostępnych informacji, deweloperom powinno być łatwiej zaprojektować strukturę bazy danych i tabel w oparciu o możliwości sprzętowe serwera.

NULL to specjalny wskaźnik

W niektórych przypadkach przy wypełnianiu bazy dochodzi do sytuacji, gdy podczas dodawania rekordu do tabeli nie ma potrzeby wprowadzania informacji we wszystkich kolumnach. Aby to zrobić, musisz użyć specjalnego wskaźnika przypisania zerowego lub NULL. Jako pomoc wykorzystuje język SQL. Typy danych kolumn, które nie muszą być wypełniane, są określane za pomocą operatora, aby umożliwić uwzględnienie wartości null podczas tworzenia tabel. Ponadto operator NULL, gdy używany jest opcjonalny prefiks NOT, może być użyty do wskazania, że ​​wszystkie wartości muszą być wypełnione. Wskaźnik NULL nie ma typu. Po prostu wskazuje w tabelach bazy danych, aby pusta wartość. Z tego powodu można go łączyć z jednym z powyższych typów danych.

DEFINICJA STRUKTURY DANYCH

Pytania:

1. Typy danych SQL zdefiniowane przez standard.. 1

2. Typy danych używane w SQL Server. 3

3. Wyrażenia i zmienne. pięć

4. Struktury sterujące SQL... 6

5. Podstawowe obiekty struktury bazy danych serwera SQL. 7

Typy danych SQL zdefiniowane przez standard

Dane to zbiór informacji przechowywanych w bazie danych jako jeden z kilku różnych typów. Typy danych określają podstawowe zasady dotyczące danych zawartych w określonej kolumnie tabeli, w tym ilość przydzielonej im pamięci.

Język SQL ma sześć skalarnych typów danych zdefiniowanych w standardzie. Ich krótki opis przedstawione w tabeli.

Dane znakowe

Dane znakowe składają się z sekwencji znaków zawartych w zestawie znaków zdefiniowanym przez twórców DBMS. Ponieważ zestawy znaków są specyficzne dla różnych dialektów języka SQL, lista znaków, które mogą być częścią wartości danych typu znaku, jest również zależna od implementacji. Najczęściej używane zestawy znaków to ASCII i EBCDIC. Do definiowania danych typu znaków używany jest następujący format:

<символьный_тип>::=

( ZNAK [ RÓŻNE][długość] | [długość])

Podczas definiowania kolumny o typie danych znakowych parametr length służy do określenia maksymalnej liczby znaków, które można umieścić w tej kolumnie (wartość domyślna to 1). Ciąg znaków może być zdefiniowany jako mający stałą lub zmienną (RÓŻNĄ) długość. Jeśli ciąg jest zdefiniowany o stałej długości wartości, to po wprowadzeniu mniejszej liczby znaków wartość jest dopełniana do określonej długości ze spacjami dodanymi po prawej stronie. Jeśli ciąg jest zdefiniowany ze zmienną długością wartości, to jeśli wprowadzisz do niego mniej znaków, tylko wprowadzone znaki zostaną zapisane w bazie danych, co pozwoli na osiągnięcie pewnych oszczędności pamięć zewnętrzna.

dane bitowe

typ bitu dane służą do definiowania ciągów bitów, tj. ciągi cyfr binarnych (bitów), z których każdy może mieć wartość 0 lub 1 . Dane typu bitowego są definiowane przy użyciu następującego formatu:

<битовый_тип>::=

BIT [długość]

Dokładne liczby

Precyzyjny numeryczny typ danych służy do określania liczb, które mają dokładną reprezentację, tj. liczby składają się z cyfr, opcjonalnego przecinka dziesiętnego i opcjonalnego znaku. Dokładne dane liczbowe są określane przez precyzję i długość części ułamkowej. Dokładność określa całkowitą liczbę znaczących cyfr dziesiętnych liczby, która obejmuje długość zarówno części całkowitej, jak i części ułamkowej, ale z wyłączeniem samego przecinka dziesiętnego. Skala wskazuje liczbę ułamkowych miejsc dziesiętnych w liczbie.

<фиксированный_тип>::=

(LICZBA[precyzja[,skala]]|(DZIESIĘTNY|ROK)

[precyzja[, skala]]

| (CAŁKOWITA|INT)| MAŁE)

Rodzaje NUMERYCZNE I DZIESIĘTNY przeznaczony do przechowywania liczb w formacie dziesiętnym. Domyślna długość części ułamkowej wynosi zero, a domyślna precyzja zależy od implementacji. Typ INTEGER (INT) służy do przechowywania dużych dodatnich lub ujemnych liczb całkowitych. Typ SMALLINT służy do przechowywania małych dodatnich lub ujemnych liczb całkowitych; w takim przypadku zużycie pamięci zewnętrznej jest znacznie zmniejszone.

Liczby zaokrąglone

Rodzaj zaokrąglonych liczb służy do opisu danych, których nie można dokładnie przedstawić w komputerze, w szczególności liczby rzeczywiste. Liczby zaokrąglone lub zmiennoprzecinkowe są reprezentowane w notacji naukowej, w której liczba jest zapisywana za pomocą mantysy pomnożonej przez określoną potęgę dziesiątki (wykładnik), na przykład: 10E3, +5,2E6, -0,2E-4 . Do zdefiniowania danych typu rzeczywistego stosuje się następujący format:

<вещественный_тип>::=

( FLOAT [dokładność]| REAL |

PODWÓJNA PRECYZJA)

Parametr precyzja określa liczbę cyfr znaczących mantysy. Precyzja typów REAL i DOUBLE PRECISION zależy od implementacji.

Data i godzina

Typ danych „data/godzina” służy do określania punktów w czasie z określoną dokładnością. Standard SQL obsługuje następujący format:

<тип_даты/времени>::=

(DATA | CZAS[precyzja]|

ZNACZNIK CZASU[precyzja])

Typ danych DATE służy do przechowywania dat kalendarzowych, które zawierają pola ROK (rok), MIESIĄC (miesiąc) i DZIEŃ (dzień). Typ danych CZAS służy do przechowywania znaczników czasu zawierających pola HOUR (godziny), MINUTE (minuty) i SECOND (sekundy). Typ danych TIMESTAMP służy do wspólnego przechowywania daty i godziny. Parametr Precision określa liczbę ułamkowych miejsc dziesiętnych, które określają dokładność przechowywania wartości w polu SECOND. Jeśli ten parametr zostanie pominięty, domyślnie dla kolumn TIME przyjmuje wartość zero (tzn. przechowywane są całe sekundy), natomiast dla pól TIMESTAMP domyślnie przyjmuje wartość 6. Obecność słowa kluczowego WITH TIME ZONE determinuje użycie pól TIMEZONE HOUR i TIMEZONE MINUTA, ustawia godzinę i minuty przesunięcia czasu strefy w odniesieniu do uniwersalnego czasu współrzędnych (czasu Greenwich).

Dane typu INTERVAL służą do reprezentowania okresów czasu.

Pojęcie domeny

Domena to zbiór poprawnych wartości jednego lub więcej atrybutów. Jeśli tabela bazy danych lub kilka tabel ma kolumny, które mają te same cechy, można opisać typ takiej kolumny i jej zachowanie w domenie, a następnie odwzorować każdą z identycznych kolumn na nazwę domeny. Domena definiuje wszystkie potencjalne wartości, które można przypisać do atrybutu.

Standard SQL pozwala zdefiniować domenę za pomocą następne stwierdzenie:

<определение_домена>::=

UTWÓRZ DOMENĘ nazwa_domeny

typ danych

[Domyślna wartość]

[ SPRAWDŹ(prawidłowe_wartości)]

Każdej tworzonej domenie jest przypisywana nazwa, typ danych, wartość domyślna oraz zestaw prawidłowych wartości. Należy zauważyć, że powyższy format operatora jest niekompletny. Teraz podczas tworzenia tabeli możesz określić nazwę domeny zamiast typu danych.

Usuwanie domen z bazy odbywa się za pomocą operatora:

DROP DOMAIN nazwa domeny [ OGRANICZ |

Jeśli określisz słowo kluczowe CASCADE, wszelkie kolumny tabeli utworzone przy użyciu usuwanej domeny zostaną automatycznie zmodyfikowane i opisane jako zawierające dane typu określonego w definicji usuwanej domeny.

Alternatywa dla domen w środowisku Serwer SQL to typy danych zdefiniowane przez użytkownika.

Typy danych używane w SQL Server

Typy danych systemowych

Jedną z najważniejszych cech procesu tworzenia tabeli jest zdefiniowanie typów danych dla jej pól. Typ danych pola tabeli określa typ informacji, które zostaną umieszczone w tym polu. Koncepcja typu danych w SQL Server jest w pełni adekwatna do koncepcji typu danych we współczesnych językach programowania. SQL Server obsługuje dużą liczbę różnych typów danych: tekstowe, numeryczne, binarne (patrz tabela).

Przynieśmy krótka recenzja Typy danych programu SQL Server.

używane do przechowywania informacji o postaci. typy danych znakowych, które obejmują CHAR (długość), VARCHAR (długość), NCHAR (długość), NVARCHAR (długość). Ostatnie dwa służą do przechowywania znaków Unicode. Maksymalna długość jest ograniczona do 8000 znaków (4000 dla znaków Unicode).

Przechowywanie danych o dużych znakach (do 2 GB) odbywa się za pomocą typów danych tekstowych TEXT i NTEXT.

DO typy danych całkowitych obejmują INT (INTEGER), SMALLINT, TINYINT, BIGINT. Do przechowywania danych typu integer, 4 bajty (zakres od -231 do 231-1), 2 bajty (zakres od -215 do 215-1), 1 bajt (zakres od 0 do 255) lub 8 bajtów (zakres od - 263) stosuje się odpowiednio do 263-1). Obiekty i wyrażenia typu integer mogą być używane w dowolnych operacjach matematycznych.

Liczby zawierające kropkę dziesiętną nazywane są liczbami niecałkowitymi. Dane niecałkowite podzielone na dwa rodzaje - dziesiętny I przybliżony.

DO dziesiętny typy danych obejmują DECIMAL [(precyzja[,skala])] lub DEC i NUMERIC [(precyzja[,skala])]. Typy danych DECIMAL i NUMERIC umożliwiają samodzielne zdefiniowanie formatu precyzji zmiennoprzecinkowej. Parametr precyzji określa maksymalna ilość cyfry tego typu danych wejściowych (przed i po przecinku w sumie), a parametrem skali jest maksymalna liczba cyfr znajdujących się po przecinku. W trybie normalnym serwer pozwala na wprowadzenie maksymalnie 28 cyfr używanych w typach DECIMAL i NUMERIC (od 2 do 17 bajtów).

DO przybliżony typy danych obejmują FLOAT (dokładność 15 cyfr, 8 bajtów) i REAL (dokładność 7 cyfr, 4 bajty). Te typy reprezentują dane w formacie zmiennoprzecinkowym, tj. liczby są reprezentowane za pomocą mantysy i wykładnika, co zapewnia taką samą precyzję obliczeń bez względu na to, jak mała lub duża jest wartość.

Aby przechowywać informacje o Data i godzina przeznaczone są typy danych, takie jak DATETIME i SMALLDATETIME, które używają odpowiednio 8 i 4 bajtów do reprezentowania dat i godzin.

Typy danych MONEY i SMALLMONEY umożliwiają przechowywanie informacji typu pieniężnego; zapewniają precyzję do 4 miejsc po przecinku i używają odpowiednio 8 i 4 bajtów.

typ danych BIT pozwala na zapisanie jednego bitu, który przyjmuje wartość 0 lub 1.

Środowisko SQL Server implementuje szereg specjalne typy danych.

Typ danych ZNAK CZASU używany jako wskaźnik zmiany wersji wiersza w bazie danych.

Typ danych UNIKALNY IDENTYFIKATOR służy do przechowywania globalnie unikalnych numerów identyfikacyjnych.

Typ danych NAZWA SYSTEMU dotyczy identyfikatorów obiektów.

Typ danych SQL_WARIANT umożliwia przechowywanie wartości dowolnych typów danych obsługiwanych przez SQL Server z wyjątkiem TEXT, NTEXT, IMAGE i TIMESTAMP.

Typ danych STÓŁ, podobnie jak tabele tymczasowe, zapewnia przechowywanie zestawu wierszy przeznaczonych do dalszego przetwarzania. Typ danych TABLE może być używany tylko do definiowania zmiennych lokalnych i zwracania funkcje niestandardowe wartości.

Typ danych KURSOR jest potrzebny do pracy z obiektami, takimi jak kursory, i może być wymagany tylko w przypadku zmiennych i parametrów procedur składowanych. Kursory SQL Server to mechanizm wymiany danych między serwerem a klientem. Kursor pozwala aplikacjom klienckim pracować z Pełen zestaw danych, ale tylko z jednym lub kilkoma wierszami.

Ostatnia aktualizacja: 07.12.2017

Podczas tworzenia tabeli należy określić określony typ danych dla wszystkich jej kolumn. Typ danych określa, jakie wartości można przechowywać w kolumnie, ile zajmą miejsca w pamięci.

Język T-SQL udostępnia wiele różnych typów. W zależności od charakteru wartości, wszystkie można podzielić na grupy.

Numeryczne typy danych

    BIT : przechowuje wartość 0 lub 1. W rzeczywistości jest to odpowiednik typu logicznego w językach programowania. Zajmuje 1 bajt.

    TINYINT : przechowuje liczby od 0 do 255. Zajmuje 1 bajt. Dobry do przechowywania małych liczb.

    SMALLINT : przechowuje numery od -32768 do 32767. Zajmuje 2 bajty

    INT : przechowuje numery od -2147483648 do 2147483647. Zajmuje 4 bajty. Najczęściej używany typ do przechowywania numerów.

    BIGINT : Przechowuje bardzo duże liczby od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807, które zajmują 8 bajtów pamięci.

    DECIMAL : przechowuje liczby o stałej precyzji. Zajmuje od 5 do 17 bajtów, w zależności od ilości liczb po przecinku.

    Ten typ może przyjmować dwa parametry precyzja i skalę: DECIMAL(precyzja, skala) .

    Parametr precyzji reprezentuje maksymalną liczbę cyfr, które może przechowywać liczba. Ta wartość musi zawierać się w przedziale od 1 do 38. Wartość domyślna to 18.

    Parametr skali reprezentuje maksymalną liczbę cyfr, jaką może zawierać liczba po przecinku. Ta wartość musi być z zakresu od 0 do wartości parametru precyzji. Domyślnie jest to 0.

    NUMERYCZNE : Ten typ jest podobny do typu DECIMAL.

    SMALLMONEY : przechowuje wartości ułamkowe od -214 748.3648 do 214 748.3647. Zaprojektowany do przechowywania pieniędzy. Zajmuje 4 bajty. Odpowiednik DECIMAL(10,4) .

    PIENIĄDZE : Przechowuje wartości ułamkowe od -922337203685477.5808 do 922337203685477.5807. Reprezentuje wartości pieniężne i zajmuje 8 bajtów. Odpowiednik DECIMAL(19,4) .

    FLOAT : przechowuje numery od -1,79E+308 do 1,79E+308. Zajmuje od 4 do 8 bajtów w zależności od części ułamkowej.

    Można zdefiniować jako FLOAT(n) , gdzie n reprezentuje liczbę bitów używanych do przechowywania części dziesiętnej liczby (mantysy). Domyślnie n = 53.

    REAL : przechowuje numery od -340E+38 do 3.40E+38. Zajmuje 4 bajty. Odpowiednik FLOAT(24) .

Przykłady kolumn liczbowych: Salary MONEY, TotalWeight DECIMAL(9,2), Age INT, Surplus FLOAT

Typy danych reprezentujące datę i godzinę

    DATA : Przechowuje daty od 0001-01-01 (1 stycznia 0001) do 9999-12-31 (31 grudnia 9999). Zajmuje 3 bajty.

    TIME : przechowuje czas w zakresie od 00:00:00.0000000 do 23:59:59,99999999. Zajmuje od 3 do 5 bajtów.

    Może mieć postać TIME(n) , gdzie n reprezentuje liczbę cyfr od 0 do 7 w ułamkach sekund.

    DATETIME : przechowuje daty i godziny od 01/01/1753 do 12/31/9999. Zajmuje 8 bajtów.

    DATETIME2 : Przechowuje daty i godziny w zakresie od 01/01/0001 00:00:00.0000000 do 12/31/9999 23:59:59,99999999. Zajmuje od 6 do 8 bajtów w zależności od dokładności czasu.

    Może mieć postać DATETIME2(n) , gdzie n reprezentuje liczbę cyfr od 0 do 7 w ułamkach sekund.

    SMALLDATETIME : przechowuje daty i godziny między 01.01.2000 a 06.06.2079, które są najbliższymi datami. Zajmuje 4 bajty.

    DATETIMEOFFSET : Przechowuje daty i godziny w zakresie od 0001-01-01 do 9999-12-31. Przechowuje szczegółowe informacje o czasie z dokładnością do 100 nanosekund. Zajmuje 10 bajtów.

Popularne formaty dat:

    rrrr-mm-dd-2017-07-12

    dd/mm/rrrr - 12.07.2017

    mm-dd-rr - 07-12-17

    W tym formacie liczby dwucyfrowe od 00 do 49 traktowane są jako daty z zakresu 2000-2049. A liczby od 50 do 90 jako zakres liczb 1950 - 1999.

    Miesiąc dd, rrrr - 12 lipca 2017 r.

Popularne formaty czasu:

  • gg:mi am/pm - 13:21

    hh:mi:ss - 1:21:34

    gg:mi:ss:mmm - 1:21:34:12

    gg:mi:ss:nnnnnnnn - 1:21:34:1234567

Typy danych ciągów

    CHAR : przechowuje ciąg znaków o długości od 1 do 8000 znaków. Przydziela 1 bajt na każdy znak. Nie nadaje się do wielu języków, ponieważ przechowuje znaki inne niż Unicode.

    Liczba znaków, które kolumna może przechowywać, jest podana w nawiasach. Na przykład dla kolumny CHAR(10) zostanie przydzielonych 10 bajtów. A jeśli zapiszemy w kolumnie ciąg zawierający mniej niż 10 znaków, to zostanie on uzupełniony spacjami.

    VARCHAR : przechowuje ciąg. Na każdy znak przypada 1 bajt. Możesz określić konkretną długość kolumny, od 1 do 8000 znaków, na przykład VARCHAR(10) . Jeśli ciąg musi mieć więcej niż 8000 znaków, ustawiony jest rozmiar MAX i do przechowywania ciągu można przydzielić do 2 GB: VARCHAR(MAX) .

    Nie nadaje się do wielu języków, ponieważ przechowuje znaki inne niż Unicode.

    W przeciwieństwie do typu CHAR, jeśli 5-znakowy ciąg jest przechowywany w kolumnie VARCHAR(10), dokładnie pięć znaków będzie przechowywanych w kolumnie.

    NCHAR : przechowuje ciąg Unicode zawierający od 1 do 4000 znaków. Na każdy znak przydzielone są 2 bajty. Na przykład NCHAR(15)

    NVARCHAR : przechowuje ciąg Unicode. Na każdy znak przydzielone są 2 bajty.Możesz ustawić określony rozmiar od 1 do 4000 znaków: . Jeśli ciąg musi mieć więcej niż 4000 znaków, ustawiany jest rozmiar MAX i do przechowywania ciągu można przydzielić do 2 GB.

Pozostałe dwa typy, TEXT i NTEXT, są przestarzałe i dlatego nie są zalecane. Zamiast tego używane są odpowiednio VARCHAR i NVARCHAR.

Przykłady definiowania kolumn ciągów:

E-mail VARCHAR(30), Komentarz NVARCHAR(MAX)

Binarne typy danych

    BINARY : przechowuje dane binarne jako sekwencję od 1 do 8000 bajtów.

    VARBINARY : Przechowuje dane binarne jako sekwencję od 1 do 8000 bajtów lub do 2^31-1 bajtów w przypadku używania wartości MAX (VARBINARY(MAX)).

Inny typ binarny, typ IMAGE, jest przestarzały i zamiast tego zaleca się użycie typu VARBINARY.

Inne typy danych

    UNIQUEIDENTIFIER : unikalny identyfikator GUID (zasadniczo ciąg znaków z unikalna wartość), który zajmuje 16 bajtów.

    TIMESTAMP : pewna liczba przechowująca numer wersji wiersza w tabeli. Zajmuje 8 bajtów.

    CURSOR : reprezentuje zestaw wierszy.

    HIERARCHIID : reprezentuje pozycję w hierarchii.

    SQL_VARIANT : może przechowywać dane dowolnego innego typu danych T-SQL.

    XML : przechowuje dokumenty XML lub fragmenty dokumentów XML. Zajmuje do 2 GB pamięci.

    TABLE : reprezentuje definicję tabeli.

    GEOGRAFIA : przechowuje dane geograficzne, takie jak szerokość i długość geograficzna.

    GEOMETRIA : przechowuje współrzędne lokalizacji na płaszczyźnie.

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
TAk
Nie
Dziękuję za opinię!
Coś poszło nie tak i Twój głos nie został policzony.
Dzięki. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!