MySQL -datatyper

MySQL -datatyper
Mange tabeller finnes i en MySQL -database som inneholder flere kolonner eller felt for å lagre forskjellige datatyper. Det er veldig viktig å få riktig kunnskap om de støttede datatypene til MySQL for å lage strukturen i databasetabellegenskapen. Hver datatype MySQL kan lagre data i forskjellige størrelser. Hver datatype kan lagre dataene i nummer eller strengformat. Størrelsen og bruken av de forskjellige MySQL -datatypene for å lage en databasetabell er beskrevet i denne opplæringen.

Kategorier av MySQL -datatyper:

MySQL -datatyper er delt inn i følgende kategorier.

  1. Strengdata
  2. Numeriske data
  3. Binære store objektdata
  4. Dato og tidsdata
  5. Romlige data
  6. JSON -data

Datatypene relatert til hver gruppe har forklart nedenfor med eksempler.

Strengdatatype:

Strengdatatypen kan inneholde eventuelle alfabetiske og numeriske tegn for å definere en streng med liten og stor tekst, for eksempel navn, adresse, beskrivelse osv. Det binære innholdet, for eksempel et bilde eller lydfil, kan lagres innen strengdatatype. Strengdatatypene støttet i MySQL er vist nedenfor med størrelse og beskrivelse.

Strengdatatype Beskrivelse
Char (N) Det brukes til å lagre en streng med et fast antall tegn. Den kan inneholde maksimalt 255 tegn. Argumentverdien definerer lengden på strengen. Hvis verdien av røyefeltet inneholder mindre karakter enn n Verdi, da vil plassverdien bli lagt til for de gjenværende tegnene.
Varchar (n) Det brukes til å lagre en streng med variabelt antall tegn. Den kan også inneholde maksimalt 255 tegn. Argumentverdien definerer lengden på strengen. Det kaster ikke bort plass som char -datatypen.
TinyText (n) Det fungerer som en Varchar -datatype og kan lagre maksimalt 255 tegn.
Tekst (n) Den brukes til å lagre større strengverdier som inneholder maksimalt 65 535 tegn.
MediumText (N) Den lagrer en større tekstverdi enn tekstdatatypen som kan inneholde maksimalt 16 777 215 tegn.
LongText (N) Den lagrer større tekstverdier enn mediumtekstdatatypen som inneholder maksimalt 4 GB eller 4.294.967.295 tegn.
Binær (n) Den brukes til å lagre binære tegn, og disse datets lengde er løst. Den kan lagre maksimalt 255 tegn.
Varbinary (n) Det fungerer som den binære datatypen, men lengden er ikke løst.
Enum (v1, v2, v3, ..., vn) Den fulle form for enum er oppregning som brukes til å velge en enkelt verdi fra flere verdier. Den numeriske indeksen brukes til å definere strengverdiene. Det kan ha maksimalt 65 535 verdier.
Sett (v1, v2, v3, ..., vn) Den brukes til å velge 0 eller flere verdier fra listen over verdier. Det kan lagre maksimalt 64 verdier.

Numerisk datatype:

Numerisk datatype -felt lagrer hele nummeret som ID, sikkerhetsnummer osv., eller brøknummeret, for eksempel pris, cgpa osv. Ulike typer numeriske datatyper har beskrevet nedenfor.

Numerisk datatype Beskrivelse
Bit (n) Det brukes til å lagre bitverdier. Antall biter per verdi er definert av n her. Den kan lagre verdier fra 1 til 64. Standardverdien er 1.
Bool/boolsk Det brukes til å lagre sanne eller falske verdier. 0 verdi regnes som en Falsk verdi, og ethvert ikke-null nummer anses som et ekte verdi.
Tinyint (N) Det brukes til å lagre en veldig liten heltallverdi. Den kan lagre verdier fra -128 til 127 for signerte heltall og 0 til 255 for et usignert heltall. De n definerer lengden på tallet.
SmallInt (n) Det brukes til å lagre en liten størrelse heltallverdi. Den kan lagre verdier fra - -32768 til 32767 for signerte heltall og 0 til 65535 for et usignert heltall. De n definerer lengden på tallet.
MediumInt (N) Det brukes til å lagre en mellomstor heltallverdi. Den kan lagre verdier fra -8388608 til 8388607 for signerte heltall og 0 til 16777215 for et usignert heltall. De n definerer lengden på tallet.
Int (n)/ heltall (n) Det brukes til å lagre en heltallverdi. Den kan lagre verdier fra -2147483648 til 2147483647 for signerte heltall og 0 til 4294967295 for et usignert heltall. De n definerer lengden på tallet.
Bigint (N) Det brukes til å lagre en stor størrelse heltallverdi. Den kan lagre verdier fra -9223372036854775808 til 9223372036854775807 for signerte heltall og 0 til 18446744073709551615 for et usignert heltall. De n definerer lengden på tallet.
FLOAT (N, D) Det brukes til å lagre brøknummer i små størrelser. Her, n definerer lengden på hele tallet, og d definerer lengden på tallet etter desimalpunktet. Det krever 2 byte for å lagre dataene, og 24 sifre kan legges til etter desimalpunktet. Standardverdien på n er 10 og er 2.
Dobbelt (N, D) Det brukes til å lagre store brøknummer. Her, n definerer lengden på hele tallet, og d definerer lengden på tallet etter desimalpunktet. Det krever 8 byte for å lagre dataene, og 53 sifre kan legges til etter desimalpunktet. Standardverdien på n er 16 og er 4.
Desimal (n, d) Det brukes til å definere et brøkdeltall med fast punkt som kan lagre et stort brøkantall enn float og dobbelt. Her, den maksimale verdien av n kan være 65, og den maksimale verdien av d kan være 30.

Binær stor objektdatatype (BLOB):

Denne datatypen brukes til å lagre den variable mengden binære data. Fire forskjellige typer BLOB -datatyper er beskrevet nedenfor.

Blob -datatype Beskrivelse
Tinyblob Det kan brukes til å lagre data om maksimalt 255 byte.
Blob (n) Det kan brukes til å lagre data om maksimalt 65 535 byte.
Mediumblob Det kan brukes til å lagre data om maksimalt 16 777 215 byte.
Longblob Det kan brukes til å lagre data om maksimalt 4 GB eller 4 294 967 295 byte.

Dato og tidsdatatype:

Denne datatypen brukes til å lagre dato- og tidsrelaterte verdier. Feltet for dato og klokkeslett for datatype kan lagre dato, tid, datetime, år og tidsstempelverdier. Hvis det er gitt ugyldige data for feltverdien på dato og tid, vil nullverdien bli satt inn. Ulike datatyper av datatyper av datoer og klokkeslett har beskrevet nedenfor.

Dato og tid datatype Beskrivelse
DATO Den brukes til å vise datoen i formatet, 'yyyy-mm-dd.' Det kan lagre verdier fra '1000-01-01' til '9999-12-31'.
TID Den brukes til å vise tiden i formatet, 'HH-MM-SS.' Det kan lagre verdier fra '-838: 59: 59' til '838: 59: 59'.
DATO TID Den brukes til å vise tiden i formatet, 'yyyy-mm-dd hh-mm-ss'. Det kan lagre verdier fra '1000-01-01 00:00:00' til '9999-12-31 23:59:59'.
År [(2 | 4)] Den lagrer 2 eller 4 sifre års verdi. 2 -sifre -årverdien støttes ikke fra MySQL versjon 8.0.
Tidsstempel (m) Det brukes til å vise tiden i formatet, 'yyyy-mm-dd hh-mm-ss'. Det kan lagre verdier fra '1970-01-01 00:00:01' UTC til '2038-01-19 03:14:07' UTC.

Romlig datatype:

Denne typen datatype lagrer geografiske og geometriske data. Ulike romlige datatyper er beskrevet nedenfor.

Romlig datatype Beskrivelse
PUNKT Det brukes til å lagre verdiene til x- og y -koordinatene til et punkt.
Multipunkt Det brukes til å lagre en samling av flere punkter.
Polygon Det brukes til å representere multisidert geometri. 0 eller flere innvendige grenser og en utvendig grense kan defineres av polygon -datatype.
Multiplygon Det brukes til å lagre en samling av flere polygonelementer.
Linestring Det brukes til å representere en kurve med en eller flere poengverdier.
Multilinestring Det representerer multikurvegeometri som inneholder en samling av linestringverdier.
Geometri Det brukes til å lagre et punkt eller en aggregat av punkter av romlige verdier av enhver type.
GeometryCollection Det brukes til å lagre en samling av 0 eller flere geometriverdier.

JSON -datatype:

Datatypen brukes til å lagre og få tilgang til JSON -dokumenter enkelt. Denne datatypen brukes til å validere JSON -data og gi optimal lagringsplass automatisk. Når det er gitt ugyldige data for JSON -feltet, vil de gi en feil.

Forutsetninger:

Du må opprette en databasetabell med dataene i en MySQL -database for å sjekke bruken av MySQL -datatyper. Åpne terminalen og koble til MySQL -serveren ved å utføre følgende kommando.

$ sudo mysql -u root

Kjør følgende kommando for å opprette en database som heter test_db.

Opprette databasetest_db;

Kjør følgende kommando for å velge databasen.

Bruk test_db;

Bruk av MySQL -datatyper:

I denne delen av opplæringen har flere eksempler vist noen bruk av MySQL -datatyper for å lage databasetabeller.

Eksempel-1: Bruk av streng og numerisk datatype

Følgende spørsmål vil lage en tabell med fem felt. Datatypen til Produkt ID Feltet er int, og den primære nøkkelen vil bli automatisk inkrementert. Datatypen til Navn Feltet er varchar. Datatypen til vekt Feltet er Smallint. Datatypen til enhet Feltet er enum. Datatypen til pris Feltet er desimal. Kjør følgende spørsmål for å opprette Produkter bord.

Lag bordprodukter (
produkt_id int ikke null auto_increment,
Navn varchar (45) ikke null,
vekt Smallint ikke null,
enhet enum ('kg', 'pund', 'gram'),
Pris desimal (6, 2) ikke null,
Primær nøkkel (produkt_id));

Kjør følgende kommando for å sjekke strukturen til Produkter bord.

Beskrive produkter;

Produksjon:


Følgende utgang vises etter å ha utført kommandoen ovenfor.

Kjør følgende spørsmål for å lese innholdet i Produkter bord.

Sett inn 'Products' ('Product_id', 'Name', 'Weight', 'Unit', 'Price') Verdier (Null, 'Cake', '500', 'Pound', '199.99 ');

Kjør følgende kommando for å lese innholdet i Produkter bord.

Velg * fra produkter;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Eksempel-2: Bruk av datatype for dato og tid

Følgende spørring oppretter en tabell med fire felt. Datatypen på Produkt ID Feltet er liten og primær nøkkel. Datatypen til Produksjonsdato Feltet er datetime. Datatypen til utgått på dato Feltet er datetime. Datatypen til Påmeldingsfrist Feltet er tidsstempel. Kjør følgende spørsmål for å opprette PRODUKT_VALITET bord.

Lag tabellprodukt_validitet (
PRODUKT_ID Smallint (4),
produksjon_date datetime ikke null,
expired_date datetime ikke null,
entry_date tidsstempel,
Primær nøkkel (produkt_id));

Kjør følgende kommando for å sjekke strukturen til PRODUKT_VALITET bord.

Beskrive produkt_validitet;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Kjør følgende spørsmål for å lese innholdet i PRODUKT_VALITET bord.

Sett inn 'Product_Validity' ('Product_id', 'Manufacturing_date', 'expired_date', 'entry_date') verdier ('1234', '2022-01-03 17:01:35.000000 ',' 2022-01-31 22:01:35 ', current_timestamp ());

Kjør følgende kommando for å lese innholdet i PRODUKT_VALITET bord.

Velg * fra produkt_Validitet;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Eksempel-3: Bruk av romlig datatype

Følgende spørring oppretter en tabell med tre felt. Datatypen på id Feltet er Smallint. Datatypen til beskrivelse Feltet er tekst. Datatypen til geo Feltet er geometri. Kjør følgende spørsmål for å opprette geo_table bord.

Lag tabell Geo_Table (ID SmallInt (3), Beskrivelse Tekst, Geo Geometry);
Set @g = 'poeng (10 3)';

Kjør følgende kommando for å sjekke strukturen til geo_table bord.

Beskrive geo_table;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Kjør følgende spørsmål for å sette inn en post i geo_table bord.

Sett inn i geo_table verdier (123, "Testdata", ST_PointFromText (@G));

Kjør følgende spørsmål for å lese innholdet i geo_table bord.

Velg * fra geo_table;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Eksempel-4: Bruk av JSON-datatype

Følgende spørsmål vil opprette en tabell med JSON -data. Datatypen til jdata Feltet er JSON. Kjør følgende spørsmål for å opprette JSontable bord.

Lag tabell JSontable (JData JSON);

Kjør følgende kommando for å sjekke strukturen til JSontable bord.

Beskrive JSontable;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Kjør følgende spørsmål for å sette inn JSON -dataene.

Sett inn i jsontable verdier ('"id": 1209, "navn": "mir sabbir"');

Kjør følgende spørsmål for å lese postene fra JSontable bord.

Velg JData fra JSontable;

Produksjon:

Følgende utgang vises etter å ha utført kommandoen ovenfor.

Konklusjon:

De mest brukte MySQL -datatypene er blitt forklart i denne opplæringen ved å lage flere tabeller for å fjerne MySQL -datatyper -konseptet for de nye MySQL -brukerne.