Introduktion till SQL-datatyper

Datatyper i SQL, precis som alla andra programmeringsspråk, definierar vilken typ av data som kolumnen eller variabeln kan innehålla. Datatypen kan vara allt från ett tecken, genom en serie tecken, genom siffror, till datum och tid. En datatyp är ett mycket viktigt begrepp för tätt kopplad programmering. Det hjälper till att lösa de flesta typkompatibilitetsfel under själva programkompileringen.

Vi skulle i stort sett kategorisera SQL-datatyper och sedan utforska olika typer och exempel under dessa kategorier.

Obs - Alla databashanteringssystem stöder inte alla datatyper. Till exempel stöder Oracle inte DateTime. Dessa detaljer ges tillsammans med beskrivningen av datatypen i artikeln. Det rekommenderas att vara medveten om detta när du utformar databasen. På liknande sätt finns det många andra datatyper som är specifika för ett visst databashanteringssystem. Till exempel har MS SQL en pengatyp. Sådana typer är inte generiska och ligger utanför denna artikel.

Typer av SQL-data

1. Binär

Binär datatyp har en sekvens av binära bytesträngar. Till skillnad från de vanliga teckensträngarna används de binära strängarna för att lagra okonventionella data som bilder.

Binär (storlek): Lagrar binära byte-strängar med kolumnlängd specificerad av storleksparametern. Storleken på kolumnen är fast. Om storleken definieras som 10 byte och data som lagras är 5 byte, är de återstående 5 bytena ockuperade i minnet av kolumnen. Dessa återstående byte är noll vadderade till höger av de flesta SQL-parsers. Maximal möjlig storlek är 8000 byte.

Varbinary (storlek): Lagrar binära byte-strängar med kolumnlängd specificerad av storleksparametern. Storleken på kolumnen är inte fast. Om storleken definieras som 10 byte och lagrad data är 5 byte, upptar kolumnen endast 5 byte i minnet. Maximal möjlig storlek är 8000 byte.

Varbinary: Denna datatyp stöds inte av MySQL.

Exempel:

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);

Felet inträffar eftersom vi hade definierat storleken på kolumnerna endast som 5 byte.

2. Karaktär / sträng

Dessa datatyper lagrar antingen ett enda tecken eller en serie tecken som bildar en sträng. Dessa inkluderar tecken, siffror och specialtecken. Karaktären hos karaktär (er) är emellertid begränsad till endast tecken som inte är Unicode.

Char (storlek): Lagrar teckensträngar med fast längd med den längd som anges av storleksparametern. Storleken på kolumnen fungerar på liknande sätt som BINARY-datatypen. Standardstorleken är 1 tecken. Maximumet är 255 i de flesta databashanteringssystem.

Varchar (storlek): Lagrar teckensträngar med variabel längd. Den längd som anges av storleksparametern definierar dock kolumnens maximala längd. Den maximala möjliga längden är 65535 tecken.

Varchar (max): Att ange sökordet max i storleksparametern ökar den maximala möjliga storleken till 2 GB och tilldelar variabelstorlek till kolumner baserat på lagrade data. Denna datatyp stöds inte av MySQL.

Text: MySQL stöder textdatatyp istället för varchar (max). Texten ökar också maximal möjlig storlek till 2 GB.

Exempel:

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-karaktär / sträng

Dessa datatyper lagrar antingen en enda eller en sträng Unicode-tecken.

Nchar (storlek): Detta liknar char-datatyp och stöder också Unicode-tecken. Maxgränsen reduceras dock till 4000 byte.

Nvarchar (storlek): Detta liknar datatypen nvarchar och stöder också Unicode-tecken. Maxgränsen reduceras dock till 4000 byte.

Nvarchar: Denna datatyp stöds inte av MySQL.

Ntext: MySQL stöder ntextdatatypen istället för nvarchar (max). Ntext ökar också maximal möjlig storlek till 1 GB.

Exempel:

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

4. Numerisk

Numeriska datatyper stöder heltal och verkliga / fraktionella / decimaler.

Bit / Bool / Boolean: Dessa datatyper lagrar endast två värden - 0 och 1. 0 betecknar falskt medan 1 betecknar sant. Lite stöds av de flesta databaser. Vissa avancerade databaser stöder också bool och boolean.

INT: Lagrar positiva och negativa heltal upp till 4 byte i storlek. Detta betyder att värdet måste ligga inom intervallet (-2147483648, 2147483647). Att ange sökordet som inte är signerad begränsar kolumnen för att bara lagra positiva värden i intervallet (0, 4294967295).

TINYINT: Lagrar positiva och negativa heltal upp till 1 byte i storlek. Detta betyder att värdet måste ligga inom intervallet (-128, 127). Att ange sökordet som inte är signerad begränsar kolumnen för att bara lagra positiva värden i intervallet (0, 255).

Smallint: Lagrar positiva och negativa heltal upp till 2 byte i storlek. Detta betyder att värdet måste ligga inom intervallet (-32768, 32767). Att ange sökordet som inte är signerad begränsar kolumnen för att bara lagra positiva värden i intervallet (0, 65535).

Bigint: Lagrar positiva och negativa heltal upp till 8 byte i storlek. Detta betyder att värdet måste ligga inom intervallet (-2 63, 2 63 -1). Att ange sökordet som inte är signerad begränsar kolumnen för att bara lagra positiva värden i intervallet (0, 2 64 -1).

Decimal (storlek, D): Lagrar ett fastpunktsnummer. Parameterstorleken anger det totala antalet siffror, medan d anger antalet siffror efter decimalpunkten. Standardvärden för storlek och d är 10 respektive 0.

Float (storlek, D) / Double (storlek, D): Lagrar ett flytpunktsnummer. Float används för mindre antal upp till 4 Bytes i storlek. Dubbel lagrar större antal. Dock stöds dock inte alla databaser.

Kunskap utanför kursplanen - Skillnaden mellan fastpunkts- och flytpunktsnummer är att decimalpunkten är fixerad i en och flyter i en annan. Fast punkt betyder att antalet siffror är fixerade efter och före decimalpunkten. Flytande punkt betyder att antalet siffror före och efter decimalpunkten kan variera relativt siffrans betydelse.

Exempel:

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. Datum och tid

  1. Datum: Lagrar data i formatet YYYY-MM-DD, begränsat från 1000-01-01 till 9999-12-31.
  2. Tid: Lagrar tiden i formatet hh: mm: ss.
  3. DateTime: Lagrar både datum och tid.
  4. TimeStamp: Tidsstämpeln används för att markera en tidsstämpel när en rad anges eller uppdateras i tabellen. Detta görs vanligtvis via nyckelord DEFAULT CURRENT_TIMESTAMP och ON UPDATE CURRENT_TIMESTAMP.

Exempel:

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 för Character Large Objects. De kan hålla teckeninformation för upp till 2 GB. Stöds dock inte av MySQL. MySQL använder Text för att uppnå samma sak.
  • BLOB: BLOB står för Binary Large Objects. De används för att lagra binära objekt i storlek upp till 2 GB. Vanligtvis konverteras bilder till binära objekt och lagras i BLOB-kolumner.
  • XML: Används för att lagra XML-data.
  • JSON: Används för att lagra JSON-data. Stöds inte av MySQL.

Slutsats - SQL-datatyper

SQL-datatyperna hjälper mycket till strategiskt att optimera databasutrymmet. I en digital värld, där data växer ständigt med en exponentiell hastighet, måste en utvecklare klokt välja vilken typ för varje bit av data. Detta hjälper till att minska kostnaderna på grund av massiv datalagring.

Rekommenderade artiklar

Detta är en guide till SQL-datatyper. Här diskuterar vi introduktionen, typer av SQL-data, karaktär / sträng, Unicode-karaktär / -sträng och numerisk. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. PostgreSQL-datatyper
  2. Typer av OLAP
  3. Typer av skadlig programvara
  4. SQL VAR klausul
  5. PHP-nyckelord
  6. C ++ Nyckelord
  7. Topp 3 datatyper av PHP med exempel
  8. Exempel på implementera INSERT-uttalande