Gegevenstypen in MYSQL voor gebruik in databases

Ben je iets aan het leren over databasemanagers? In dat geval moet u zich informeren over de gegevenstypen in MySQL, een van de beste en meest gebruikte ter wereld. Mis deze kans niet!.

Gegevenstypen-in-Mysql-2

Gegevenstypen in MySQL

Elke keer dat we een tabel moeten maken die kan worden gebruikt om gegevens voor een toepassing op te slaan, moeten we weten hoe we kunnen identificeren welk type gegevens ons helpt om alles wat we moeten archiveren beter op te slaan. We kunnen kiezen uit drie: numerieke gegevens, strings (alfanumeriek) en datums en tijden.

In deze velden van de MYSQL-tabellen hebben we de mogelijkheid om te kiezen tussen drie soorten inhoud, en hoewel het voor de hand liggend lijkt, te bepalen waar onze gegevens naartoe moeten worden gestuurd, tot welk type groep de opslag zal behoren, hier hebben we een voorbeeld om onszelf te plaatsen in context: ja we hebben een veld nodig waarmee we de leeftijd van een persoon kunnen opslaan, dan zou het een numeriek gegevensveld zijn.

Maar voordat ik verder ga met uitleggen, weet je wat MySQL is? Het staat bekend als een van de meest gebruikte open source databasemanagers ter wereld. Om een ​​idee te krijgen van hoe populair het is, zullen we u vertellen dat: WordPress de beheerder is van verschillende soorten inhoud, die sinds 2003 bestaat, en dat ongeveer 55% tot 60% van de webpagina's die bestaan, worden hierdoor gemaakt en het gebruikt MySQL als database, dus dit bewijst hoe nuttig het kan zijn en de reikwijdte ervan.

MySQL is eigendom van het bedrijf Oracle Corporation, dat het in 2010 kocht. Deze manager heeft meerdere toepassingen, zoals: praktijken, installaties uitvoeren, webpagina's wijzigen, gegevens lezen, enz.

Dit stuurprogramma kan eenvoudig worden gedownload en heeft verschillende versies, afhankelijk van het Windows dat u gebruikt, op dezelfde manier is het heel eenvoudig te installeren.

De overgrote meerderheid van de databasestuurprogramma's wordt gebruikt via een programmeertaal. Laten we zeggen dat bijvoorbeeld de informatie die we op onze computers hebben beschikbaar is in de database, maar wanneer we deze moeten visualiseren en beheren, het een programmeertaal gebruikt; In het geval van MySQL gaat het vergezeld van php, dat bekend staat als een webontwikkeltaal, hetzelfde waarmee WordPress is ontwikkeld.

We veronderstellen dat we kunnen aanbevelen om de XAMPP-tool te downloaden, die beschikbaar is voor verschillende versies van Windows. XAMPP wordt geleverd met een reeks componenten, waaronder we hebben:

  • Apache: Dit zou een webserver zijn.
  • PHP: de webontwikkeltaal.
  • Fillezilla: Hij is verantwoordelijk voor het mobiliseren van de bestanden.
  • Mercury: Het is de mailserver die de tests moet uitvoeren.
  • MySQL: Zoals we eerder vermeldden, is dit de databaseserver.

Nadat u XAMPP hebt geïnstalleerd, kunt u genieten van al deze componenten, inclusief MySQL, die u direct kunt starten en verbinden met de grafische interface. Daarom is XAMPP buitengewoon handig, naast de andere componenten.

Nu dit alles duidelijk was, wilden we uitleggen dat we binnen onze opties voor soorten tabellen om onze gegevens op te slaan, en sprekend over het numerieke gegevensveld, binnen deze zelfde andere typen hebben, en we moeten weten welke het beste zou zijn, wat zou geeft ons de mogelijkheid om minder fysieke opslagruimte te verbruiken en geeft ons de mogelijkheid om gegevens op te slaan die we in dat veld hopen op te slaan. De enige manier om deze vragen te begrijpen, zijn de verschillende soorten gegevens die MySQL ons biedt, hieronder zullen we die informatie verstrekken om het meest geschikte gebruik van elke groep te begrijpen.

We nodigen je uit om in de onderstaande video een intensieve cursus over gegevenstypen in MySQL en alles wat je erover moet weten te zien. Mis deze kans niet om te leren!:

Numerieke data

Het verschil dat we konden vinden tussen het ene type gegevens en het andere in MySQL is gewoon het bereik van waarden dat het kan bevatten. Binnen de numerieke gegevens moeten we zien dat we twee grote takken kunnen onderscheiden: gehele getallen en decimalen; Nu willen we de soorten numerieke gegevens uitleggen die we kunnen hebben op basis van de situatie die ons wordt gepresenteerd en wat we nodig hebben:

Numerieke gehele getallen

Het eerste dat we op dit punt willen uitleggen, is dat de opties die we hebben om dit soort gegevens op te slaan, leeftijden, hoeveelheden en grootheden zonder decimalen zijn. We willen ook een voorbeeld geven om beter te begrijpen welk type gegevens we voor elk veld moeten kiezen:

We presenteren TINYINT, een gegevenstype waarmee we een maximale waarde van 127 kunnen opslaan. Dus als we een veld moeten definiëren voor de leeftijd van onze gebruikers, is dit het veld dat we zouden kunnen gebruiken, omdat de normale leeftijdscategorie binnen dat aantal ligt , en tenzij we in de tijd van het bijbelse Oude Testament leven, heeft niemand dat aantal biologisch overtroffen; Dus nee, met dit type gegevens kunnen we bijvoorbeeld geen 567 opslaan, zelfs geen 128, als de limiet 127 bereikt.

Als we nu een veld willen definiëren voor een identificatie van een grote markt om duizenden verschillende en gevarieerde dingen te verkopen, zou dit exponentieel veranderen, het is duidelijk dat TINYINT ons niet langer dient, daarnaast moeten we heel precies het aantal items weten het verkoopt, maar niet alleen met wat we nu hebben, maar proberen een voorspelling te doen voor onze nabije toekomst, op deze manier zal ons opslagsysteem niet snel verouderd raken.

We zouden iets als SMALLINT kunnen gebruiken waarmee we tot 32,000 artikelen kunnen nummeren, maar als we het voorbeeld veranderen en van een markt naar een ID-veld gaan dat moet worden gebruikt voor een klantentabel van een telefoonmaatschappij met 5 miljoen gebruikers, zou niet langer SMALLINT kunnen hebben, maar van een ander zoals MEDIUMINT, en we gaan verder, in het geval dat ons bedrijf 200 miljoen klanten had, zouden we een veld van het type INT moeten gebruiken. De kwestie verandert in het geval dat we grillig worden en een veld willen definiëren dat elk van de menselijke wezens die op planeet aarde leven identificeert, dan moeten we een BIGNIT-veld om hulp vragen, aangezien het INT-type slechts tot tweeduizend miljoen verschillende gegevens, en die zouden ons duidelijk niet bereiken.

We willen ook het bestaan ​​van negatieve waarden bevestigen, die we zouden kunnen vinden wanneer we de score van een spel willen opslaan, of het cijfer onder nul dat onder andere een tafel zou kunnen markeren.

Niet-ondertekende waarden

Laten we het zo bekijken: een negatieve leeftijd hebben zou helemaal geen zin hebben. Als de mogelijkheid bestaat om de limiet van de maximale positieve waarde van elke gegevens te verdubbelen, waardoor de mogelijkheid wordt geëlimineerd dat dat veld negatieve waarden kan opslaan, zouden we de positieve opslaglimiet verdubbelen en het veld van het type TINYINT dat normaal gesproken waarden mag opslaan ​​van 127, kunt u nu waarden opslaan van 0 tot 255.

En hoe definiëren we een veld zonder teken? Via de UNSIGNED modifier kunnen we een numeriek veld definiëren. Hiermee zouden we een kolom moeten vinden die Attributen en de waarde van UNSIGNED leest en dit veld kan geen negatieve waarden meer bevatten, waardoor de opslagcapaciteit wordt verdubbeld.

Het is vermeldenswaard dat het belangrijk is dat bij het definiëren van een veld in de kolom dat we zouden vinden als Lengte, we een getal schrijven dat consistent is met de opslagcapaciteit die we zojuist hebben gekozen. Als we verder gaan met het leeftijdsvoorbeeld, als we met TINYNIT werken, moeten we een drie als lengte plaatsen, niet een groter of kleiner getal.

Getallen met decimalen

Onder andere prijzen, salarissen, bankrekeningbedragen zijn we overgestapt op numerieke waarden met decimalen en hebben we hele getallen achter gelaten, en ondanks het feit dat deze datatypes "floating point" worden genoemd omdat de komma het deel integer scheidt en het decimale deel, eigenlijk tussen de MySQL-gegevenstypen, slaat ze op en scheidt ze met een punt; vanaf hier zouden we drie soorten gegevens hebben: FLOAT, DOUBLE en DECIMAL.

Met FLOAT kunnen we minimaal de waarde -999.99 en maximaal 999.99 opslaan. Houd er rekening mee dat het teken - niet telt, maar het punt dat ze scheidt, dat wil zeggen, de komma, ja, daarom zouden ze in totaal zes cijfers zijn, hoewel we opmerken dat twee ervan decimalen zijn; Maar we hebben iets dat een eenvoudig precisiebereik wordt genoemd, wat ons dwingt om decimale hoeveelheden tussen 0 en 24 te hebben.

Aan de andere kant laat DOUBLE, dat tweemaal de precisie is, alleen het aantal decimalen tussen 25 en 23 definiëren. Het gebruik van FLOAT, wat eenvoudige precisie is, kan afrondingsproblemen en verlies van de resterende decimalen veroorzaken. Degene die nog moet worden uitgelegd, is DECIMAL, wat het beste is voor het opslaan van geldwaarden waar minder lengte nodig is maar maximale nauwkeurigheid, en zonder afronding kent dit type gegevens een vaste breedte toe aan het op te slaan nummer. Het maximale aantal cijfers voor dit soort gegevens is 64, waarvan 30 het maximaal toegestane aantal decimalen is, meer dan genoeg om prijzen, lonen en valuta op te slaan.

decimale punt-1

Alfanumerieke gegevens

Ten slotte verlaten we de categorie numerieke gegevens om een ​​nieuwe in te voeren. Hier zullen we het hebben over het opslaan van tekenreeksen, om het op een betere manier uit te leggen, en onder de gegevenstypen in MySQL hebben we het volgende: CHAR, VARCHAR, BINARY, VARBINARY, TINYBLOB, TINYTEXT, BLOB, TEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT , ENUM en SET, elk heeft zijn eigen kenmerken en zijn eigen voordelen, afhankelijk van welke gegevens we willen opslaan.

Datum- en tijdgegevens

Dit zou onze laatste categorie zijn als het gaat om gegevenstypen in MYSQL. We zullen zien dat we verschillende opties hebben om verwezen gegevens, datums en tijden op te slaan, het verschil tussen de ene en de andere en hun belangrijkste gebruik zien, op deze manier zullen we in elk geval het juiste type gegevens kunnen kiezen.

DATUM

Dit type gegevens in MySQL stelt ons in staat om datums op te slaan waarbij de eerste vier cijfers bij het jaar horen, de volgende twee bij de maand en de laatste twee bij de dag, hoewel we in Spaanssprekende landen gewend zijn om de datums eerst te ordenen door de dag, dan voor de maand, en dan voor het jaar, voor MYSQL is het helemaal andersom.

Het is belangrijk om te weten dat bij het lezen van een DATE-veld, hoewel het wordt weergegeven met streepjes die het jaar van de maand en de maand van de dag scheiden, we bij het invoegen van deze gegevens alles continu kunnen doen, we kunnen het bijvoorbeeld zien als dit: 2018-06-04 en voeg het in op deze manier 20180604. Het datumbereik dat DATE ons toelaat, is 1000-01-01 tot en met 9999-12-31.

Tenzij we iets te maken hebben met een gebeurtenis die tweeduizend jaar geleden heeft plaatsgevonden en we die moeten onthullen, zullen we geen problemen hebben met dit formaat; anderzijds hebben we met het oog op de toekomst meer kansen, aangezien we met deze formule bijna het jaar 10,000 bereikten.

DATUM TIJD

Als we een veld hebben gedefinieerd als DATETIME, kunnen we informatie opslaan, niet van een datum, maar van een moment, een moment in de tijd, afgezien van de datum, ook het schema, eerst zouden we het jaar hebben, dan de maand en dan de dag , dan zouden we ook het uur, de minuten en zelfs de seconden hebben, het formaat ziet er als volgt uit:

  • JJJJ- MM- DD UU: MM: SS

Het datumgedeelte heeft een bereik dat vergelijkbaar is met dat van het type DATE (10,000 jaar), dat wil zeggen van 1000-01-01 tot 9999-12-31. Het deel van het schema zou als volgt gaan: van 00:00:00 tot 23:53:53. Alles compleet zou er als volgt uitzien: 1000-01-01 00:00:00 tot 9999-12-31 23:59:59.

TIJD

Hier mogen we uren, minuten en seconden opslaan, en ja, het vorige gegevenstype deed het ook, maar met TIME hebben we een toegestaan ​​bereik dat loopt van: -839: 59: 59 tot 839: 59: 59; dit zou ongeveer 35 dagen heen en weer zijn op een huidige datum. Dit type gegevens is ideaal voor het berekenen van de verstreken tijd tussen twee nauwe momenten.

TIJDSTAMP

Hier hebben we een gegevenstype dat erg lijkt op DATETIME, maar het formaat en bereik zijn anders, hoewel het nog steeds handig is voor het opslaan van een datum en een tijd. Met het veld van dit formaat kunnen drie opties aan ons worden gepresenteerd, de eerste is: JJJJ-MM-DD HH: MM: SS, de tweede is: JJJJ-MM-DD, en de derde is eenvoudiger: JJ-MM- DD.

Hier hebben we de mogelijkheid om een ​​lengte van 14, 8 of 6 cijfers te hebben, het hangt allemaal af van de informatie die we verstrekken. Dit formaat is niet zo historisch of futuristisch als de andere, aangezien het bereik dat dit veld behandelt alleen loopt van 1970-01-01 tot het jaar 2037.

Bovendien, als een merkwaardig feit, kunnen we vaststellen dat de waarde ervan automatisch wordt bijgewerkt telkens wanneer een record wordt ingevoegd of bijgewerkt, op deze manier zullen we altijd in dit veld de datum en tijd bewaren van onze laatste update van die gegevens, die is echt ideaal om de controle over te nemen zonder iets te hoeven programmeren.

Als we dit willen definiëren vanuit de phpMyAdmin, hoeven we alleen maar in Attributen de optie "bij update" CURRENT_TIMESTAMP te selecteren, en als de standaardwaarde CURRENT_TIMESTAMP. Veld waarvan de waarde automatisch kan worden bijgewerkt bij het invoegen of wijzigen van een record.

JAAR

In het geval dat we de noodzaak moeten inzien om een ​​veld als JAAR te definiëren, kunnen we een jaar opslaan, zowel met twee als met vier cijfers. In het geval dat we het in twee cijfers doen, van 70 tot 99 (met 70 tot 99 zullen we begrijpen dat deze overeenkomen met het bereik van jaren van 1970 tot 1999, en als we de cijfers van 00 tot 69 hebben, kunnen we begrijpen dat verwijst naar de jaren 2000 tot 2069), in zo'n geval van het verstrekken van de vier cijfers, dan zouden we ontdekken dat het mogelijke bereik zou toenemen en dan zou gaan van 1901 naar 2155.

We hebben ook een extra mogelijkheid, hoewel niet gerelateerd aan datatypes in MySQL, maar gerelateerd aan datums en tijden. Deze extra mogelijkheid is om een ​​tijdstempelwaarde te genereren met de PHP-tijdfunctie (nogmaals willen we verduidelijken dat we het niet langer over MYSQL hebben, hoewel het terecht is om in de war te raken vanwege het hebben van vrij gelijkaardige namen).

Hoe dan ook, we zouden die waarde in een 10-cijferig INT-veld kunnen opslaan, op deze manier wordt het heel eenvoudig om de waarden van ons veld te ordenen (we kunnen de datum van een nieuwsbericht als voorbeeld zetten) en dan kunnen we kan die datum laten zien door die waarde-tijdstempel om te zetten in iets dat we leesbaar kunnen maken met behulp van PHP's eigen datumverwerkingsfuncties.

datum-tijd-1

Ik hoop dat we met dit artikel over gegevenstypen in MySQL alles wat we wilden uitleggen voldoende duidelijk hebben kunnen maken en dat je hebt geleerd hoe je een database en een tabel kunt maken volgens al onze informatie, waarbij je met totale precisie hun velden definieert ze gebruiken als gegevenstypes en attributen, daarom in de hoedanigheid of in de omstandigheden om goed te beginnen met programmeren, nu we een duidelijk idee hebben van welk formaat we precies nodig hebben, wat past bij onze behoefte volgens wat we moeten programmeren.

We nodigen u uit om te genieten van een van onze andere artikelen over programmeren: Polymorfisme in objectgeoriënteerd programmeren.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Actualidad Blog
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.