Inleiding tot SQL-gegevenstypen

Gegevenstypen in SQL definiëren, net als elke andere programmeertaal, welk type gegevens de kolom of de variabele kan bevatten. Het type gegevens kan alles zijn, van een karakter, via een reeks tekens, door cijfers, tot datum en tijd. Een gegevenstype is een zeer cruciaal concept van strak gekoppeld programmeren. Het helpt bij het oplossen van de meeste type compatibiliteitsfouten tijdens het compileren van het programma zelf.

We zouden SQL-gegevenstypen in grote lijnen categoriseren en vervolgens verschillende typen en voorbeelden onder die categorieën verkennen.

Opmerking - Niet alle databasebeheersystemen ondersteunen alle gegevenstypen. Oracle biedt bijvoorbeeld geen ondersteuning voor DateTime. Deze bijzonderheden worden gegeven samen met de beschrijving van het gegevenstype in het artikel. Het is aan te raden hier rekening mee te houden bij het ontwerpen van de database. Evenzo zijn er veel andere gegevenstypen die specifiek zijn voor een bepaald databasebeheersysteem. MS SQL heeft bijvoorbeeld een gegevenstype voor geld. Dergelijke typen zijn niet generiek en vallen buiten het bestek van dit artikel.

Typen SQL-gegevens

1. Binair

Binair gegevenstype bevat een reeks binaire byte-strings. In tegenstelling tot de gebruikelijke tekenreeksen, worden de binaire tekenreeksen gebruikt om onconventionele gegevens zoals afbeeldingen op te slaan.

Binair (grootte): slaat binaire bytereeksen op met kolomlengte die zijn opgegeven door de parameter size. De grootte van de kolom is vast. Als de grootte is gedefinieerd als 10 bytes en de opgeslagen gegevens 5 bytes zijn, worden de resterende 5 bytes nog steeds in het geheugen bezet door de kolom. Deze resterende bytes worden door de meeste SQL-parsers null naar rechts opgevuld. De maximaal mogelijke grootte is 8000 bytes.

Varbinary (grootte): slaat binaire byte-reeksen op met kolomlengte die zijn opgegeven met de parameter size. De grootte van de kolom staat niet vast. Als de grootte is gedefinieerd als 10 bytes en de opgeslagen gegevens 5 bytes zijn, neemt de kolom slechts 5 bytes in het geheugen in. De maximaal mogelijke grootte is 8000 bytes.

Varbinary (max): als u het trefwoord max opgeeft in de parameter size, wordt de maximale grootte vergroot tot 2 GB en wordt de variabele grootte toegewezen aan kolommen op basis van de opgeslagen gegevens. Dit gegevenstype wordt niet ondersteund door MySQL.

Voorbeeld:

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

De fout treedt op omdat we de grootte van kolommen alleen als 5 bytes hadden gedefinieerd.

2. Teken / tekenreeks

Deze gegevenstypen slaan een enkel teken of een reeks tekens op die een string vormen. Deze omvatten tekens, cijfers en speciale tekens. De aard van de tekens is echter beperkt tot niet-Unicode-tekens.

Char (grootte): slaat tekenreeksen met een vaste lengte op met de lengte die is opgegeven door de parameter size. De grootte van de kolom werkt op dezelfde manier als het gegevenstype BINARY. De standaardgrootte is 1 teken. Het maximum is 255 in de meeste databasebeheersystemen.

Varchar (grootte): slaat tekenreeksen met variabele lengte op. De lengte die wordt opgegeven door de parameter size bepaalt echter de maximale lengte van de kolom. De maximaal mogelijke lengte is 65535 tekens.

Varchar (max): als u het trefwoord max opgeeft in de parameter size, wordt de maximale grootte vergroot tot 2 GB en wordt de variabele grootte toegewezen aan kolommen op basis van de opgeslagen gegevens. Dit gegevenstype wordt niet ondersteund door MySQL.

Tekst: MySQL ondersteunt tekstgegevenstype in plaats van varchar (max). De tekst vergroot ook de maximale grootte tot 2 GB.

Voorbeeld:

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-teken / tekenreeks

In deze gegevenstypen wordt een enkele of een reeks Unicode-tekens opgeslagen.

Nchar (grootte): dit is vergelijkbaar met het gegevenstype char en ondersteunt ook Unicode-tekens. De maximale limiet is echter verlaagd tot 4000 bytes.

Nvarchar (grootte): dit is vergelijkbaar met het gegevenstype nvarchar en ondersteunt ook Unicode-tekens. De maximale limiet is echter verlaagd tot 4000 bytes.

Nvarchar (max): als u het trefwoord max opgeeft in de parameter size, wordt de maximale grootte vergroot tot 1 GB en wordt de variabele grootte toegewezen aan kolommen op basis van de opgeslagen gegevens. Dit gegevenstype wordt niet ondersteund door MySQL.

Ntext: MySQL ondersteunt het gegevenstype ntext in plaats van nvarchar (max). Ntext vergroot ook de maximale grootte tot 1 GB.

Voorbeeld:

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

4. Numeriek

Numerieke gegevenstypen ondersteunen gehele getallen en reële / fractionele / decimale getallen.

Bit / Bool / Boolean: deze gegevenstypen slaan slechts twee waarden op - 0 en 1. 0 geeft false aan, terwijl 1 true aangeeft. Een beetje wordt ondersteund door de meeste databases. Sommige geavanceerde databases ondersteunen ook Bool en Boolean.

INT: Slaat positieve en negatieve gehele getallen op tot maximaal 4 Bytes. Dit betekent dat de waarde binnen het bereik moet liggen (-2147483648, 2147483647). Als u het trefwoord niet-ondertekend opgeeft, wordt de kolom beperkt zodat alleen positieve waarden in het bereik worden opgeslagen (0, 4294967295).

TINYINT: Slaat positieve en negatieve gehele getallen op tot 1 byte groot. Dit betekent dat de waarde binnen het bereik moet liggen (-128, 127). Als u het trefwoord niet-ondertekend opgeeft, wordt de kolom beperkt zodat alleen positieve waarden in het bereik worden opgeslagen (0, 255).

Smallint: Slaat positieve en negatieve gehele getallen op tot maximaal 2 Bytes. Dit betekent dat de waarde binnen het bereik moet liggen (-32768, 32767). Als u het trefwoord niet-ondertekend opgeeft, wordt de kolom beperkt zodat alleen positieve waarden in het bereik worden opgeslagen (0, 65535).

Bigint: Slaat positieve en negatieve gehele getallen op tot maximaal 8 Bytes. Dit betekent dat de waarde binnen het bereik moet liggen (-2 63, 2 63 -1). Als u het trefwoord niet-ondertekend opgeeft, wordt de kolom beperkt zodat alleen positieve waarden in het bereik worden opgeslagen (0, 2 64 -1).

Decimaal (grootte, D): slaat een nummer met een vast punt op. De parametergrootte geeft het totale aantal cijfers aan, terwijl d het aantal cijfers na de komma aangeeft. Standaardwaarden voor grootte en d zijn respectievelijk 10 en 0.

Float (maat, D) / Double (maat, D): slaat een floating-point nummer op. Float wordt gebruikt voor kleinere aantallen tot 4 bytes groot. Dubbel slaat grotere aantallen op. Dubbel wordt echter niet door alle databases ondersteund.

Kennis buiten syllabus - Het verschil tussen cijfers met een vast punt en met een drijvend punt is dat de decimale punt in de ene is vastgelegd en in een andere is zwevend. Fixed-point betekent dat het aantal cijfers vast is achter en voor de komma. Drijvende-komma betekent dat het aantal cijfers voor en na de komma kan variëren ten opzichte van de betekenis van de cijfers in het nummer.

Voorbeeld:

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 & tijd

  1. Datum: slaat de gegevens op in het formaat YYYY-MM-DD, beperkt van 1000-01-01 tot 9999-12-31.
  2. Tijd: slaat de tijd op in het formaat hh: mm: ss.
  3. DateTime: slaat zowel de datum als de tijd op.
  4. TimeStamp: de tijdstempel wordt gebruikt om een ​​tijdstempel te markeren wanneer een rij wordt ingevoerd of bijgewerkt in de tabel. Dit gebeurt meestal via trefwoorden DEFAULT CURRENT_TIMESTAMP en OP UPDATE CURRENT_TIMESTAMP.

Voorbeeld:

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. Diversen-SQL gegevenstypen

  • CLOB: CLOB staat voor Character Large Objects. Ze kunnen karaktergegevens tot 2 GB bevatten. Maar niet ondersteund door MySQL. MySQL gebruikt Tekst om hetzelfde te bereiken.
  • BLOB: BLOB staat voor Binary Large Objects. Ze worden gebruikt voor het opslaan van binaire objecten met een maximale grootte van 2 GB. Meestal worden afbeeldingen geconverteerd naar binaire objecten en opgeslagen in BLOB-kolommen.
  • XML: wordt gebruikt voor het opslaan van XML-gegevens.
  • JSON: Gebruikt voor het opslaan van JSON-gegevens. Niet ondersteund door MySQL.

Conclusie - SQL-gegevenstypen

De SQL-gegevenstypen helpen veel bij het strategisch optimaliseren van de databaseruimte. In een digitale wereld, waar data steeds exponentieel groeit, moet een ontwikkelaar verstandig het type kiezen voor elk beetje data. Dit helpt bij het verlagen van de kosten als gevolg van enorme gegevensopslag.

Aanbevolen artikelen

Dit is een handleiding voor SQL-gegevenstypen. Hier bespreken we de introductie, soorten SQL-gegevens, teken / tekenreeks, Unicode-teken / tekenreeks en numeriek. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. PostgreSQL-gegevenstypen
  2. Soorten OLAP
  3. Soorten malware
  4. SQL WAAR clausule
  5. PHP-zoekwoorden
  6. C ++ Trefwoorden
  7. Top 3 gegevenstypen van PHP met voorbeelden
  8. Voorbeelden om de INSERT-verklaring te implementeren