Introduktion til SQL-datatyper

Datatyper i SQL definerer, ligesom ethvert andet programmeringssprog, hvilken type data, som kolonnen eller variablen kan indeholde. Datatypen kan være alt fra et tegn, gennem en række tegn, gennem tal, til dato og tid. En datatype er et meget afgørende koncept for tæt koblet programmering. Det hjælper med at løse de fleste af typen kompatibilitetsfejl under selve programkompilationen.

Vi vil i vidt omfang kategorisere SQL-datatyper og derefter udforske forskellige typer og eksempler under disse kategorier.

Bemærk - Ikke alle databasestyringssystemer understøtter alle datatyper. For eksempel understøtter Oracle ikke DateTime. Disse detaljer gives sammen med beskrivelsen af ​​datatypen i artiklen. Det tilrådes at være opmærksom på dette, mens du designer databasen. Tilsvarende er der mange andre datatyper, der er specifikke for ethvert specifikt databasestyringssystem. For eksempel har MS SQL en penge-datatype. Sådanne typer er ikke generiske og er uden for denne artikels rækkevidde.

Typer af SQL-data

1. Binær

Binær datatype indeholder en sekvens af binære byte-strenge. I modsætning til de sædvanlige karakterstrenge, bruges de binære strenge til at gemme ukonventionelle data såsom billeder.

Binær (størrelse): Gemmer binære byte-strenge med kolonnelængde specificeret af størrelsesparameteren. Størrelsen på søjlen er fast. Hvis størrelsen defineres som 10 byte, og data, der er gemt, er 5 byte, besættes de resterende 5 byte stadig i hukommelsen af ​​kolonnen. Disse resterende bytes er nullpolstret til højre af de fleste SQL-parsere. Den maksimale mulige størrelse er 8000 bytes.

Varbinary (størrelse): Gemmer binære byte-strenge med kolonnelængde specificeret af størrelsesparameteren. Størrelsen på søjlen er ikke fast. Hvis størrelsen defineres som 10 byte, og data, der er gemt, er 5 byte, optager kolonnen kun 5 byte i hukommelsen. Den maksimale mulige størrelse er 8000 bytes.

Varbinary (max): Angivelse af nøgleordet max i parameteren Størrelse øger den maksimale mulige størrelse til 2 GB og tildeler variabel størrelse til kolonner baseret på de lagrede data. Denne datatype understøttes ikke af 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);

Fejlen opstår, fordi vi kun havde defineret størrelsen på kolonner som 5 byte.

2. Karakter / streng

Disse datatyper gemmer enten et enkelt tegn eller en række tegn, der danner en streng. Disse inkluderer tegn, tal og specialtegn. Karakteren af ​​karakter (er) er imidlertid begrænset til kun ikke-Unicode-tegn.

Char (størrelse): Gemmer tegnstrenge med fast længde af den længde, der er specificeret af størrelsesparameteren. Størrelsen på kolonnen fungerer på lignende måde som BINARY-datatypen. Standardstørrelsen er 1 karakter. Det maksimale er 255 i de fleste databasestyringssystemer.

Varchar (størrelse): Gemmer tegnstrenge med variabel længde. Den længde, der er specificeret af størrelsesparameteren, definerer imidlertid den maksimale længde på kolonnen. Den maksimale mulige længde er 65535 tegn.

Varchar (max): Når du specificerer nøgleordet max i størrelsesparameteren øges den maksimale mulige størrelse til 2 GB og tildeler variabel størrelse til kolonner baseret på de lagrede data. Denne datatype understøttes ikke af MySQL.

Tekst: MySQL understøtter tekstdatatype i stedet for varchar (max). Teksten øger også den maksimale mulige 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 datatyper gemmer enten en enkelt eller en streng Unicode-tegn.

Nchar (størrelse): Dette ligner char-datatype og understøtter også Unicode-tegn. Den maksimale grænse er dog reduceret til 4000 bytes.

Nvarchar (størrelse): Dette ligner nvarchar-datatypen og understøtter også Unicode-tegn. Den maksimale grænse er dog reduceret til 4000 bytes.

Nvarchar (max): Hvis du angiver nøgleordets maks i størrelsesparameteren, øges den maksimale mulige størrelse til 1 GB og tildeler variabel størrelse til kolonner baseret på de lagrede data. Denne datatype understøttes ikke af MySQL.

Ntext: MySQL understøtter ntext-datatypen i stedet for nvarchar (max). Ntext øger også den maksimale mulige 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 understøtter heltal og reelle / brøkdel / decimaler.

Bit / Bool / Boolean: Disse datatyper gemmer kun to værdier - 0 og 1. 0 betegner forkert, mens 1 betegner sandt. En bit understøttes af de fleste databaser. Nogle avancerede databaser understøtter også bool og boolean.

INT: Gemmer positive og negative heltal op til 4 bytes i størrelse. Dette betyder, at værdien skal være i intervallet (-2147483648, 2147483647). Specificering af nøgleordet, der ikke er signeret, begrænser kolonnen til kun at gemme positive værdier i området (0, 4294967295).

TINYINT: Gemmer positive og negative heltal op til 1 byte i størrelse. Dette betyder, at værdien skal være i området (-128, 127). Specificering af usigneret nøgleord begrænser kolonnen til kun at gemme positive værdier i området (0, 255).

Smallint: Gemmer positive og negative heltal op til 2 Bytes i størrelse. Dette betyder, at værdien skal være i området (-32768, 32767). Specificering af nøgleordet, der ikke er signeret, begrænser kolonnen til kun at gemme positive værdier i området (0, 65535).

Bigint: Gemmer positive og negative heltal op til 8 bytes i størrelse. Dette betyder, at værdien skal være i området (-2 63, 2 63 -1). Angivelse af usigneret nøgleord begrænser kolonnen til kun at gemme positive værdier i området (0, 2 64 -1).

Decimal (størrelse, D): Gemmer et fastpunktsnummer. Parameterstørrelsen specificerer det samlede antal cifre, mens d specificerer antallet af cifre, der følger efter decimalpunktet. Standardværdier for størrelse og d er henholdsvis 10 og 0.

Float (størrelse, D) / Dobbelt (størrelse, D): Gemmer et flydepunktnummer. Float bruges til mindre antal op til 4 Bytes i størrelse. Dobbelt gemmer større antal. Dobbelt understøttes dog ikke af alle databaser.

Viden uden for pensum - Forskellen mellem faste og flydende numre er, at decimalpunktet er fast i et og flyder i et andet. Fastpunkt betyder, at antallet af cifre er fast efter og før decimalpunktet. Flydende punkt betyder, at antallet af cifre før og efter decimalpunktet kan variere i forhold til betydningen af ​​cifrene i antallet.

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: Gemmer dataene i formatet YYYY-MM-DD, begrænset fra 1000-01-01 til 9999-12-31.
  2. Tid: Gemmer tiden i formatet tt: mm: ss.
  3. DateTime: Gemmer både dato og klokkeslæt.
  4. TimeStamp: Tidsstemplet bruges til at markere en tidsstempel, hver gang en række indtastes eller opdateres i tabellen. Dette gøres normalt gennem nøgleord 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 indeholde karakterdata for op til 2 GB. Understøttes dog ikke af MySQL. MySQL bruger tekst til at opnå det samme.
  • BLOB: BLOB står for Binary Large Objects. De bruges til opbevaring af binære objekter i størrelse op til 2 GB. Normalt konverteres billeder til binære objekter og gemmes i BLOB-kolonner.
  • XML: Bruges til lagring af XML-data.
  • JSON: Bruges til lagring af JSON-data. Understøttes ikke af MySQL.

Konklusion - SQL-datatyper

SQL-datatyper hjælper meget med strategisk at optimere databasepladsen. I en digital verden, hvor data vokser konstant med en eksponentiel hastighed, skal en udvikler klogt vælge typen for hver bit af data. Dette hjælper med at reducere omkostninger, der opstår på grund af massiv datalagring.

Anbefalede artikler

Dette er en guide til SQL-datatyper. Her diskuterer vi introduktion, typer af SQL-data, karakter / streng, Unicode-karakter / -streng og numerisk. Du kan også gennemgå vores andre foreslåede artikler for at lære mere–

  1. PostgreSQL-datatyper
  2. Typer af OLAP
  3. Typer af malware
  4. SQL HVOR klausul
  5. PHP-nøgleord
  6. C ++ Nøgleord
  7. Top 3 datatyper af PHP med eksempler
  8. Eksempler på implementering af INSERT-erklæring