sql >> Database >  >> RDS >> Mysql

MySQL-gegevenstypen:weet welke u moet gebruiken en hoe

Wanneer u een tabel in een database maakt, moet deze zowel een naam als een gegevenstype hebben. Het gegevenstype van een kolom definieert de waarden die de kolom bevat, zoals geheel getal, geld, binair getal, teken, datum en tijd. Daarom is het de taak van een ontwikkelaar om te bepalen welke gegevenstypen in elke kolom worden opgeslagen tijdens het maken van databases en tabellen.

In eenvoudige bewoordingen zijn gegevenstypen richtlijnen die SQL helpen te begrijpen welk type gegevens in een kolom vereist is. Het is ook efficiënt in het identificeren van de interactie van SQL met de opgeslagen gegevens.

Een punt om op te merken is dat gegevenstypen verschillende namen in verschillende databases kunnen bevatten, en in gevallen waarin de namen hetzelfde zijn, zullen andere aspecten en details, zoals grootte, verschillen. Daarom wordt aanbevolen dat u altijd de documentatie raadpleegt wanneer u soortgelijke gevallen tegenkomt.

De volgende kenmerken kunnen gegevenstypen in MySQL identificeren:

  • De waarden van gegevenstypen die kunnen worden geïndexeerd en die niet kunnen worden geïndexeerd
  • Het type waarden dat ze vertegenwoordigen
  • De ruimte die ze innemen, of de waarden nu een variabele of een vaste lengte hebben
  • Hoe MySQL zich verhoudt tot de verschillende waarden van specifieke gegevenstypen

Voordat we erin duiken en MySQL-gegevenstypen behandelen, is het essentieel om de conventies te leren en te begrijpen die worden gebruikt door de gegevenstypebeschrijvingen, zoals hieronder aangegeven:

  • (M ):Voor typen gehele getallen geeft dit de maximale breedte aan die het gegevenstype kan weergeven.
    :Het geeft het totale aantal cijfers aan dat kan worden opgeslagen voor typen met vaste komma en typen met drijvende komma.
    :Voor stringtypes toont het de maximale lengte

Opmerking:M De maximaal toegestane waarde is afhankelijk van het gegevenstype

• (D ):Alleen van toepassing op typen met vaste komma en typen met drijvende komma. Het geeft de schaal aan (het aantal cijfers dat volgt op de komma). De maximaal mogelijke waarde is 10, terwijl deze niet significanter mag zijn dan M -2

• De vierkante haken ([en]) tonen de optionele onderdelen van het definitietype.

f sp: deze conventie is van toepassing op timestamp-, DateTime- en tijdtypen. Het vertegenwoordigt de precisie van de fractionele seconden (het aantal cijfers dat de decimale punt volgt voor fractionele seconden). De gegeven fsp waarde moet variëren van 0-6. Waarde 0 betekent dat er geen fractionele delen aanwezig zijn in de gegeven waarde. Als de waarde echter wordt weggelaten, wordt de precisie aangegeven als 0.

In MySQL zijn er drie hoofdcategorieën van gegevenstypen die subcategorieën bevatten. De primaire gegevenstypen zijn:

  1. Tekenreeksgegevenstypen
  2. Datum- en tijdgegevenstypen.
  3. Numerieke gegevenstypen

Er worden andere gegevenstypen ondersteund door MySQL, zoals ruimtelijke gegevenstypen en JSON-gegevenstypen.

In dit artikel worden alle bovengenoemde gegevenstypen uitgebreid behandeld. Houd u daarom aan dit artikel om een ​​duidelijk begrip te krijgen van gegevenstypen.

String gegevenstypen

De string-gegevenstypen worden voornamelijk gebruikt om binaire gegevens en platte tekst zoals afbeeldingen en bestanden te bevatten. Bovendien heeft MYSQL de mogelijkheid om tekenreekswaarden te vergelijken en te zoeken op basis van het overeenkomende patroon, zoals reguliere expressies en operators.

Hieronder vindt u een gedetailleerde illustratie van alle string-gegevenstypen die MySQL ondersteunt:

CHAR ( maat ): Dit is de vaste lengte van een string. Het kan letters, speciale tekens of cijfers bevatten. De parameter grootte geeft de lengte van de kolom in tekens aan en kan variëren van 0-255. De standaardgrootte is 1.

VARCHAR ( maat ): Dit is de variabele lengte van een string. Het bevat cijfers, speciale tekens of letters. De parameter grootte toont de maximale lengte van de kolom in tekens en kan variëren van 0-65535.

BINAIR ( maat ): Deze zijn gelijk aan CHAR (), waarbij alleen binaire bytestrings worden opgeslagen. De parameter grootte specificeert de lengte van de kolom in bytes. De standaard is 1

VARBINARY ( maat ): Dit is gelijk aan VARCHAR (), alleen dat het binaire bytestrings opslaat. De parameter grootte specificeert de maximale lengte van de kolom in bytes.

TINYTEXT: Bevat tekenreeksen met een maximale lengte van 255 tekens.

TEKST ( maat ): Bevat strings met een maximale lengte van 65.535 bytes.

BLOB ( maat ): Voor binaire grote objecten (BLOB's). Ze kunnen tot 65.535 databytes bevatten.

TINYBLOB: Voor binaire grote objecten (BLOB's). Het bevat een maximale lengte van 255 bytes.

LONGLOB: Voor binaire grote objecten (BLOB's). Ze kunnen tot 4.294.967.295 databytes bevatten.

LONGTEXT: Bevat strings met een maximale lengte van 4.294.967.295 tekens.

MEDIUMTEKST: Bevat tekenreeksen met een maximale lengte van 16.777.215 tekens.

MEDIUMBLOB: Voor binaire grote objecten (BLOB's). Ze kunnen maximaal 16.777.215 databytes bevatten.

SET ( val1, val2, val3, … ): Dit is een tekenreeksobject dat meer dan één waarde bevat (tekenreeksen die 0 of meer waarden bevatten). Ze worden net als ENUM gekozen uit een lijst met mogelijke waarden. In een SET-lijst kunt u echter maximaal 64 waarden weergeven.

ENUM ( val1, val2, val3, … ): Dit is een tekenreeksobject dat slechts één waarde kan bevatten die is gekozen uit een lijst met alle mogelijke waarden. In een ENUM-lijst kunt u maximaal 65535 waarden weergeven. Als een waarde wordt ingevoegd die niet in de lijst staat, is de ingevoegde waarde blanco. Het is ook essentieel om op te merken dat de waarden worden gesorteerd afhankelijk van de volgorde waarin de gebruiker ze heeft ingevoerd.

Datum- en tijdgegevenstypen

De datum- en tijdgegevenstypen specificeren de tijdelijke waarden zoals DateTime, timestamp, jaar, tijd en datum. Elk van de genoemde tijdelijke typen heeft waarden die nul zijn. Telkens wanneer een ongeldige waarde wordt ingevoegd, kan MySQL deze niet weergeven. Daarom is gekozen voor een nul.

Hieronder vindt u een uitgebreide illustratie van de datum- en tijdgegevenstypen die door MySQL worden ondersteund:

DATUM: Het standaard datumformaat is respectievelijk jaren, maanden en dagen (JJJJ-MM-DD), en het ondersteunde bereik is '1000-01-01' tot '9999-12-31'.

DATETIME ( fsp ): Dit is de combinatie van zowel datum als tijd. Het standaardformaat is in dit geval respectievelijk jaren, maanden, dagen, uren, minuten en seconden (JJJJ-MM-DD uu:mm:ss)

Opmerking: Het toevoegen van een DEFAULT en ON UPDATE in een kolom is essentieel om de automatische initialisatie te starten, en het werkt de huidige tijd en datum bij.

TIMESTAMP ( fsp ): Sinds het Unix-tijdperk worden tijdstempelwaarden opgeslagen als het aantal seconden, zoals ('1970-01-01 00;00;00' UTC). Het standaardformaat is respectievelijk jaren, maanden, dagen, uren, minuten en seconden (JJJJ-MM-DD uu:mm:ss) terwijl het ondersteunde bereik tussen '('1970-01-01 00;00;01' UTC ligt tot ('2038-01-09 03;14;07' UTC. De DEFAULT_CURRENT_TIMESTAMP en ON UPDATE CURRENT_TIMESTAMP zijn essentieel voor het automatisch initialiseren en bijwerken van de huidige datum en tijd.

TIJD ( fsp ): Het standaard ondersteunde tijdformaat is respectievelijk uren, minuten, seconden (uu:mm:ss) en het ondersteunde bereik is '-838:59:59' tot '838:59:59'.

JAAR: Een jaar wordt weergegeven in een viercijferig formaat:de toegestane waarden in het viercijferige formaat lopen van 1902 tot 2155 en 0000.

Opmerking: De nieuwste versie van MySQL (8.0) ondersteunt het tweecijferige jaartal niet.

Numerieke gegevenstypen

De numerieke gegevenstypen omvatten alle exacte numerieke gegevenstypen, zoals geheel getal, decimaal en numeriek. Het bevat ook de geschatte numerieke gegevenstypen zoals float, double, double precision en real. Numerieke gegevenstypen slaan bitwaarden op omdat ze de BIT-gegevenstypen ondersteunen. Gewoonlijk zijn numerieke gegevenstypen in MySQL onderverdeeld in twee categorieën:Ondertekende gegevenstypen en Niet-ondertekende gegevenstypen; dit is echter een uitzondering op bit-gegevenstypen.

Hieronder vindt u een gedetailleerde illustratie met alle numerieke gegevenstypen die door MySQL worden ondersteund en hun beschrijving:

BIT ( maat ): Dit is een type bitwaarde waarbij het aantal bits per waarde wordt aangegeven in termen van grootte . De parameter grootte heeft de mogelijkheid om waarden van 1 tot 64 vast te houden, en de standaardwaarde voor grootte is 1.

TINYINT ( maat ): Dit is een heel klein geheel getal waarvan het bereik met teken varieert van -128 tot 127, terwijl het bereik zonder teken varieert van 0 tot 255. De parameter grootte geeft de maximale breedte aan die moet worden weergegeven, wat ongeveer 255 is.

BOOLEAN: Het is gelijk aan een BOOL

BOOL: In een BOOL worden de niet-nulwaarden als waar beschouwd. Tegelijkertijd worden de nulwaarden als onwaar beschouwd.

INT ( maat ): Dit is een gemiddeld geheel getal waarvan het bereik met teken varieert van -2147483648 tot 2147483647, terwijl het bereik zonder teken varieert van 0 tot 4294967295. De parameter grootte specificeert de maximale breedte die moet worden weergegeven, wat ongeveer 255 is.

MEDIUMINT ( maat ): Dit is ook een gemiddeld geheel getal waarvan het bereik met teken varieert van -32768 tot 32767, terwijl het bereik zonder teken varieert van 0 tot 65535. De parameter size specificeert de maximale breedte die moet worden weergegeven, wat ongeveer 255 is.

SMALLINT ( maat ): Dit is een klein geheel getal waarvan het bereik met teken tussen -32768 en 32767 ligt, terwijl het bereik zonder teken tussen 0 en 16777215 ligt. De grootte parameter wordt in dit geval gebruikt om de maximale weergavebreedte te specificeren, waarvan het bereik ongeveer 255 is.

FLOAT ( maat, d ): Het is een getal met drijvende komma waarvan het totale aantal cijfers in grootte wordt aangegeven. De d parameter helpt bij het specificeren van het aantal cijfers achter de komma.

Opmerking: deze parameter is gedeprecieerd in MySQL-versie 8.0.17. Daarom zal het niet worden gereproduceerd in toekomstige versies van MySQL.

INTEGER ( maat ): Dit komt overeen met een INT (maat ).

FLOAT( p ): Het is een getal met drijvende komma. De P parameter wordt gebruikt om te bepalen of een FLOAT of een DOUBLE zal worden gebruikt in een resulterend gegevenstype. Wanneer de P -waarde varieert van 0 tot 24, de gegevens staan ​​bekend als een FLOAT (). Terwijl wanneer de P -waarde varieert van 25 tot 53, waarna het gegevenstype verandert in een DUBBEL ().

DEC ( maat, d ): Dit is een equivalent van een DECIMAAL (grootte, d )

DUBBELE ( maat, d ): Dit duidt op een standaard maat getal met drijvende komma waarvan het totale aantal cijfers in grootte wordt gegeven. De d parameter helpt bij het specificeren van het aantal cijfers achter de komma.

DECIMAAL ( maat, d ): Het is een exact getal met een vaste komma waarvan het totale aantal cijfers is gespecificeerd in termen van grootte . De d parameter specificeert het aantal cijfers achter de komma. De maximale maat nummer is 65, terwijl de d maximum aantal is 30. Daarom is de standaardwaarde voor d is 0, terwijl de standaardwaarde voor grootte is 10.

Opmerking: alle numerieke typen bevatten extra opties; ZEROFILL en NIET ONDERTEKEND. Als de optie UNSIGNED is toegevoegd, zal MySQL de negatieve waarden in de kolom niet toestaan. Aan de andere kant, als de ZEROFILL-optie wordt toegevoegd, zal MySQL automatisch het UNSIGNED-attribuut aan de genoemde kolom toevoegen.

Andere gegevenstypen

Booleaans gegevenstype

Het kleinste gehele type TINYINT (1) wordt gebruikt om Booleaanse waarden in MySQL weer te geven, aangezien MySQL geen ingebouwd BOOL- of BOOLEAN-gegevenstype bevat. Daarom moet u, wanneer u met BOOLs en BOOLEANs werkt, ze gelijkstellen aan de TINYINT (1).

Ruimtelijk gegevenstype

MySQL biedt ondersteuning voor verschillende typen ruimtelijke gegevens die verschillende soorten geografische en geometrische waarden hebben, zoals hieronder aangegeven:

GEOMETRIE: Dit is een aggregaat of punt dat de ruimtelijke waarde van elk type kan bevatten, zolang ze een locatie hebben.

POLYGON: Dit is een vlak oppervlak dat wordt weergegeven door een meerzijdige geometrie. Het kan worden gedefinieerd door nul of slechts één buitengrens en meer binnengrenzen.

MULTILINESTRING: Dit is een geometrie met meerdere krommen die een verzameling LINESTRING-waarden bevat.

MULTIPOLYGON: Dit is een object met meerdere oppervlakken dat wordt vertegenwoordigd door een verzameling van verschillende polygoonelementen, en het is een tweedimensionale geometrie

PUNT: Dit is een punt of een paar dat de X- en Y-coördinaten bevat. Men kan zeggen dat het een punt in een geometrie is dat een enkele locatie vertegenwoordigt.

GEOMETRIECOLLECTIE: Dit is een verzameling GEOMETRIE-waarden

LINESTRING: Dit is een curve die een of meer puntwaarden bevat. In gevallen waarin een lijnreeks slechts twee punten bevat, betekent dit dat het een lijn vertegenwoordigt.

MULTIPOINT: Dit is een verzameling POINT-waarden waarbij het punt op geen enkele manier kan worden besteld of verbonden.

JSON-gegevenstype

MYSQL ondersteunt het native JSON-gegevenstype sinds het begin van versie 5.7.8, waardoor opslag en beheer van JSON-documenten veel snel en effectief mogelijk was. Bovendien is het native JSON-gegevenstype verantwoordelijk voor het bieden van een optimaal opslagformaat en automatische validatie van JSON-documenten.

Conclusie

Dit artikel heeft alle aspecten met betrekking tot MySQL-gegevenstypen uitgebreid behandeld, zodat u begrijpt welke gegevenstypen moeten worden gebruikt en hoe ze moeten worden gebruikt. We denken dat het artikel ook zal helpen om uw kennis van MySQL te verbeteren.


  1. Python from scratch:maak een dynamische website

  2. Nieuwe release:Spotlight Tuning Pack 7.1.9

  3. hoe de standby-database te herstellen van een ontbrekend archieflogboek

  4. Hoe (null) waarden te vervangen door 0 output in PIVOT