Introduksjon til SQL-datatyper

Datatyper i SQL, akkurat som alle andre programmeringsspråk, definerer hvilken type data som kolonnen eller variabelen kan inneholde. Datatypen kan være alt fra et tegn, gjennom en serie tegn, gjennom tall, til dato og tid. En datatype er et veldig viktig konsept for tett koblet programmering. Det hjelper med å løse de fleste av typekompatibilitetsfeil under selve programkompilering.

Vi vil i stor grad kategorisere SQL-datatyper og deretter utforske forskjellige typer og eksempler under disse kategoriene.

Merk - Ikke alle databasesystemer støtter alle datatypene. For eksempel støtter ikke Oracle DateTime. Disse detaljene er gitt sammen med beskrivelsen av datatypen i artikkelen. Det anbefales å være oppmerksom på dette mens du designer databasen. Tilsvarende er det mange andre datatyper som er spesifikke for et bestemt databasesystem. For eksempel har MS SQL en penge-datatype. Slike typer er ikke generiske og er utenfor rammen for denne artikkelen.

Typer SQL-data

1. Binær

Binær datatype inneholder en sekvens av binære bytestrenger. I motsetning til de vanlige karakterstrengene, brukes de binære strengene til å lagre ukonvensjonelle data som bilder.

Binær (størrelse): Lagrer binære byte-strenger med kolonnelengde spesifisert av størrelsesparameteren. Størrelsen på kolonnen er fast. Hvis størrelsen er definert som 10 byte og data lagret er 5 byte, blir de resterende 5 byte fortsatt okkupert i minnet av kolonnen. Disse gjenværende byte er nullstoppet til høyre av de fleste SQL-parsere. Maksimal størrelse er 8000 byte.

Varbinary (størrelse): Lagrer binære byte-strenger med kolonnelengde spesifisert av størrelsesparameteren. Størrelsen på kolonnen er ikke fast. Hvis størrelsen er definert som 10 byte og data som er lagret er 5 byte, opptar kolonnen bare 5 byte i minnet. Maksimal størrelse er 8000 byte.

Varbinary (maks): Hvis du spesifiserer søkeordet maks i størrelsesparameteren, øker du den maksimale mulige størrelsen til 2 GB og tildeler variabel størrelse til kolonner basert på lagrede data. Denne datatypen støttes ikke av MySQL.

Eksempel:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

Feilen oppstår fordi vi hadde definert størrelsen på kolonnene bare som 5 byte.

2. Karakter / streng

Disse datatypene lagrer enten et enkelt tegn eller en serie tegn som danner en streng. Disse inkluderer tegn, tall og spesialtegn. Karakteren til karakterene er imidlertid begrenset til ikke-Unicode-tegn.

Char (størrelse): Lagrer tegnstrenger med fast lengde med lengden som er spesifisert av størrelsesparameteren. Størrelsen på kolonnen fungerer på samme måte som BINARY-datatypen. Standardstørrelsen er 1 tegn. Maksimumet er 255 i de fleste databasesystemer.

Varchar (størrelse): Lagrer karakterstrenger med variabel lengde. Imidlertid definerer lengden som er angitt av størrelsesparameteren maksimal lengde på kolonnen. Maksimal mulig lengde er 65535 tegn.

Varchar (maks): Hvis du angir søkeordet max i størrelsesparameteren, øker du den maksimale mulige størrelsen til 2 GB og tildeler variabel størrelse til kolonner basert på lagrede data. Denne datatypen støttes ikke av MySQL.

Tekst: MySQL støtter tekstdatatype i stedet for varchar (maks). Teksten øker også maksimal størrelse til 2 GB.

Eksempel:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Unicode-karakter / streng

Disse datatypene lagrer enten en enkelt eller en streng Unicode-tegn.

Nchar (størrelse): Dette ligner på char data-type og støtter også Unicode-tegn. Maksimalgrensen er imidlertid redusert til 4000 byte.

Nvarchar (størrelse): Dette ligner på datatypen nvarchar og støtter også Unicode-tegn. Maksimalgrensen er imidlertid redusert til 4000 byte.

Nvarchar (maks): Å spesifisere søkeordet maks i størrelsesparameteren øker den maksimale mulige størrelsen til 1 GB og tildeler variabel størrelse til kolonner basert på lagrede data. Denne datatypen støttes ikke av MySQL.

Ntext: MySQL støtter ntext-datatypen i stedet for nvarchar (maks). Ntext øker også maksimal størrelse til 1 GB.

Eksempel:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Numerisk

Numeriske datatyper støtter heltal og reelle / brøkdeler / desimaltall.

Bit / Bool / Boolean: Disse datatypene lagrer bare to verdier - 0 og 1. 0 betegner usant mens 1 betegner sant. Litt støttes av de fleste databaser. Noen avanserte databaser støtter også bool og boolean.

INT: Lagrer positive og negative tall på opptil 4 byte i størrelse. Dette betyr at verdien må være i området (-2147483648, 2147483647). Å spesifisere søkeordet som ikke er signert, begrenser kolonnen til bare å lagre positive verdier i området (0, 4294967295).

TINYINT: Lagrer positive og negative tall på opptil 1 byte. Dette betyr at verdien må være i området (-128, 127). Å spesifisere søkeordet som ikke er signert, begrenser kolonnen til bare å lagre positive verdier i området (0, 255).

Smallint: Lagrer positive og negative tall på opptil 2 byte i størrelse. Dette betyr at verdien må være i området (-32768, 32767). Å spesifisere søkeordet som ikke er signert, begrenser kolonnen til bare å lagre positive verdier i området (0, 65535).

Bigint: Lagrer positive og negative tall på opptil 8 byte i størrelse. Dette betyr at verdien må være i området (-2 63, 2 63 -1). Å spesifisere søkeordet som ikke er signert, begrenser kolonnen til bare å lagre positive verdier i området (0, 2 64 -1).

Desimal (størrelse, D): Lagrer et fastpunktsnummer. Parameterstørrelsen spesifiserer det totale antall sifre, mens d spesifiserer antall sifre som følger desimalet. Standardverdier for størrelse og d er henholdsvis 10 og 0.

Float (størrelse, D) / Dobbel (størrelse, D): Lagrer et flytpunktnummer. Float brukes til mindre antall opptil 4 byte i størrelse. Dobbelt lagrer større antall. Dobbelt støttes imidlertid ikke av alle databaser.

Kunnskap utenfor pensum - Forskjellen mellom faste og flytende tall er at desimalpunktet er fast i et og flytende i et annet. Fastpunkt betyr at antall sifre er faste etter og før desimalet. Flytende punkt betyr at antall sifre før og etter desimaltegnet kan variere relativt til betydningen av sifrene i tallet.

Eksempel:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Dato og tid

  1. Dato: Lagrer dataene i formatet YYYY-MM-DD, begrenset fra 1000-01-01 til 9999-12-31.
  2. Tid: Lagrer tiden i formatet tt: mm: ss.
  3. DateTime: Lagrer både dato og klokkeslett.
  4. TimeStamp: Tidstempel brukes til å markere en tidsstempel når en rad legges inn eller oppdateres i tabellen. Dette gjøres vanligvis gjennom nøkkelord DEFAULT CURRENT_TIMESTAMP og ON UPDATE CURRENT_TIMESTAMP.

Eksempel:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Diverse-SQL-datatyper

  • CLOB: CLOB står for Character Large Objects. De kan inneholde karakterdata for opptil 2 GB. Støttes ikke av MySQL. MySQL bruker tekst for å oppnå det samme.
  • BLOB: BLOB står for Binary Large Objects. De brukes til lagring av binære objekter i størrelse opptil 2 GB. Vanligvis blir bilder konvertert til binære objekter og lagret i BLOB-kolonner.
  • XML: Brukes til lagring av XML-data.
  • JSON: Brukes til lagring av JSON-data. Støttes ikke av MySQL.

Konklusjon - SQL-datatyper

SQL-datatypene hjelper mye med å strategisk optimalisere databasen. I en digital verden, der data vokser stadig med en eksponentiell hastighet, må en utvikler klokt velge typen for hver bit av data. Dette hjelper med å redusere kostnadene som oppstår på grunn av massiv datalagring.

Anbefalte artikler

Dette er en guide til SQL-datatyper. Her diskuterer vi introduksjonen, typer SQL-data, karakter / streng, Unicode-karakter / -streng og numerisk. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. PostgreSQL-datatyper
  2. Typer OLAP
  3. Typer av skadelig programvare
  4. SQL HVOR klausul
  5. PHP nøkkelord
  6. C ++ nøkkelord
  7. Topp 3 datatyper av PHP med eksempler
  8. Eksempler på implementering av INSERT-uttalelse