mysql data types what are different data types mysql
Lær om forskellige MySQL-datatyper, dvs. numerisk, streng, datatype, JSON, boolsk osv. Med eksempler:
I denne vejledning lærer vi om forskellige datatyper, der understøttes af MySQL. Datatyper specificeres i forhold til hver kolonne, når en tabel oprettes, og også under opdatering / ændring af tabellen for at tilføje en ny kolonne til den eksisterende tabel
Vi lærer om datatyperne i tre forskellige kategorier, dvs. numeriske datatyper, strengdatatyper og datatydstyper.
Hvad du vil lære:
MySQL datatyper
Forudsætninger
Vi lærer alle datatyper med arbejdseksempler i MySQL. Derfor anbefales det at have MySQL installeret til at udføre forespørgslerne sammen med detaljer for en bedre forståelse af konceptet.
Du kan også oprette en eksempeldatabase med navnet sql_data_types, der indeholder alle de tabeller, som vi vil bruge til eksempler.
create database sql_data_types; use sql_data_types;
Numeriske datatyper
Numeriske datatyper kan opdeles i 3 typer:
- Heltalsdatatyper
- Faste punkttyper
- Flydende punkttyper
Lad os diskutere hver af disse:
Heltalsdatatyper
Disse datatyper understøtter hele tal uden nogen decimalrepræsentation. Der er forskellige undertyper som - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Syntaks:
INT((width)) (UNSIGNED) (ZEROFILL)
Fakta:
Beskrivelse | Rækkevidde | Hukommelse | Muligheder |
---|---|---|---|
MEDIUMBLOB | 0-16,777,215 (16MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Mest anvendte numeriske type. Gemmer hele tal STANDARD - Usignerede værdier | –2.147.483.648 til 2.147.483.647 | 4 byte | Hvis det bruges med UNSIGNED option - Området ændres til 0 til 4.294.967.295 Breddemulighed kan bruges med ZEROFILL til at placere posterne med nul for værdier mindre end bredden |
Eksempler:
Vi opretter en tabel med 1 kolonne med INT-datatype og forskellige muligheder.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Output af SELECT-kommandoen:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
Output af ovenstående kommando:
Andre variationer af INT:
Der er flere muligheder for INT afhængigt af de specifikke krav. Disse bruges typisk, når hukommelse eller plads er et problem, men til alle praktiske formål er INT den mest udbredte.
De forskellige variationer af den tilgængelige datatype INT er angivet nedenfor:
Datatype | Rækkevidde | Eksempel | Hukommelse / Bytes brugt |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | to |
MEDIUMINT | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
STOR | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Flydende punkttyper
Flydepunkttyper er omtrentlige værdityper, og dette afhænger af nr. med decimalpræcision specificeret under kolonnetypedeklarationen.
Der er to typer datatyper med flydende punkt: FLOAT og DOUBLE, som understøtter forskellige områder og bruger hukommelse / lager.
FLOAT & DOBBELT
I henhold til den nye anbefalede syntaks - både FLOAT og DOUBLE præcision kan specificeres ved hjælp af kun FLOAT-datatyper.
Syntaks:
FLOAT(p)
Her, s -> præcision
Fakta:
Beskrivelse | Hukommelse | Muligheder | Eksempler |
---|---|---|---|
FLOAT / DOUBLE repræsenterer flydende numre med omtrentlige værdier Dvs. når MySQL gemmer disse værdier, tilnærmes disse værdier til nærmeste præcision i henhold til den angivne type. Præcision mellem 0-23 repræsenterer FLOAT-typen, mens 24 til 53 vil generere en dobbelt type, der forbruger 8 byte | -Præcision - 0-23 => 4 byte -Præcision -24-53 => 8 byte | Flydende numre kan underskrives såvel som UNSIGNED -FLOAT er generelt nøjagtigt op til 7 decimaler, mens DOUBLE er nøjagtigt op til 14 decimaler -Der er også en anden ikke-standard måde at erklære FLOAT og DOUBLE med specifikationen af præcisionspunkter FLOAT (n, d) - hvor n er de samlede cifre og d er antallet af decimaler | -Opret tabel med en kolonne DOUBLE datatype CREATE TABLE numbers_double (double_col FLOAT (30)); -Opret tabel med en kolonne DOUBLE datatype og præcisionstal som 5 Opret TABEL numre_dobbelt (dobbeltkol DOUBLE (20,5)); |
Lad os se nogle eksempler på at hente værdierne for dobbelt typer:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Output af SELECT-sætningen:
Vi kan her se, at værdierne er gemt op til 5 decimaler som angivet under datatypedeklarationen.
Faste punkttyper
Disse datatyper bruges til at gemme en nøjagtig værdi med bestemt præcision. Disse datatyper bruges normalt, når der kræves nøjagtig præcisionslagring. For eksempel, bankkonti er det et krav at opretholde saldi med 2 decimaler, vi har brug for data, der skal gemmes med nøjagtig præcision.
DECIMAL / NUMERISK
Syntaks:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fakta:
Beskrivelse | Rækkevidde | Hukommelse | Muligheder |
---|---|---|---|
DECIMAL er en numerisk datatype i MySQL og gemmer nøjagtige værdier med den specificerede præcision. Standardskalaen eller bredden for datatypen DECIMAL er præcision 10 og 0. Vær opmærksom på, at typerne DECIMAL og NUMERIC kan bruges om hverandre. | Afhænger af det angivne interval For eksempel DECIMAL (5,2) vil have en rækkevidde på -999,99 til 999,99 | MySQL-brugere binært format til at gemme DECIMAL datatype - Det kræver fire byte for hver 9 cifre - Så for eksempel, hvis vi har DECIMAL (14,2) - ville kræve i alt - 9 (4) + 2 (1) => 7 byte | -Maks. Værdi af bredde kan være 265 -Antallet af decimaler er valgfrit, og standardværdien er 0 |
Eksempel:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
DateTime-datatyper
DateTime-datatyper i MySQL bruges, som navnet antyder, til at gemme dato- og tidsværdier i MySQL-databasen.
Der er 2 tidsmæssige typer understøttet af MySQL - DATETIME og TIMESTAMP
Lad os diskutere begge disse i nedenstående afsnit.
DATO TID
Syntaks:
DATETIME(n)
Her er n -> præcision / brøkdel af sekunder del (Maks. Understøttet præcision er 6).
Fakta:
Beskrivelse | Rækkevidde | Hukommelse | Eksempler |
---|---|---|---|
Bruges til at gemme dato og tid i MySQL-kolonnen Når du bliver spurgt, kolonnedataene viser datatid i nedenstående format: ÅÅÅÅ-MM-DD HH: MM: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 byte Når en brøkdel er inkluderet, forbruges der for hver 2 brøkdel en ekstra byte. | CREATE table datetime_example(date_col DATETIME); // OUTPUT dato_col 2020-08-08 22:22:53 |
TIDSSTEMPEL
Syntaks:
TIMESTAMP(n)
Her er n -> præcision / brøkdel af sekunder del (Maks. Understøttet præcision er 6)
Fakta:
Beskrivelse | Rækkevidde | Hukommelse | Eksempler |
---|---|---|---|
En anden tidsmæssig datatype, der bruges til at gemme datetime. Dette gemmer datoen som UTC også med et begrænset interval mellem 1970 og 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 byte | CREATE table timestamp_example(ts_col TIMESTAMP); PRODUKTION ts_col 2020-08-08 22:19:11 |
Strengdatatyper
Strengdatatyper, som navnet antyder, bruges til at gemme strenge / tekster eller klatter af tekstinformation i databasen. Afhængig af brugen er der forskellige sådanne datatyper tilgængelige - CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Lad os forstå hver af disse forskellige datatyper med eksempler.
CHAR og VARCHAR
Begge disse typer bruges til at gemme strengværdier i kolonnerne i MySQL, men de adskiller sig i, hvordan værdier gemmes og hentes.
CHAR & VARCHAR erklæres med længde, hvilket angiver den maksimale længde af den streng, du vil gemme i kolonnen.
Syntaks:
CHAR(n) VARCHAR(n)
Her er n -> maks. Nr. af tegn, der skal gemmes i kolonnen
Fakta:
Type | Beskrivelse | Rækkevidde | Eksempler |
---|---|---|---|
CHAR Syntaks - CHAR (n) | CHAR kan gemme 'n' længde streng som defineret under erklæringen. Hvis strengen er mindre end n tegn, er den polstret med mellemrum. | Længden af datatypen CHAR kan variere fra 0 - 255 Afhængigt af længde vil hukommelsesforbruget variere fra 0 - 255 bytes. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Syntaks - VARCHAR (n) | VARCHAR giver dig mulighed for at gemme strengene med variabel længde og forbruge hukommelse mod den faktiske størrelse af den lagrede streng i stedet for den maksimale værdi, der er angivet under kolonnedefinitionen. | Længden af VARCHAR-datatypen kan variere fra 0 - 65535 Afhængigt af længde vil hukommelsesforbruget variere fra 0 - 65535 bytes. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINÆR OG VARBINÆR
Svarende til CHAR og VARCHAR - disse datatyper gemmer strenge, men i binært format.
Længden af BINÆRE og VARBINÆRE datatyper måles i bytes i modsætning til antallet af tegn i datatyperne CHAR og VARCHAR.
Syntaks:
BINARY(n) VARBINARY(n)
Her er n -> maks. Nr. af bytes, der skal gemmes i kolonnen.
Fakta:
Type | Beskrivelse | Rækkevidde | Eksempler |
---|---|---|---|
BINÆR Syntaks - BINÆR (n) | BINARY kan gemme 'n' binære byte. For værdier mindre end n er de polstret med 0 byte og gemt | Længden af BINÆR datatype kan variere fra 0 - 255 Afhængigt af længde vil hukommelsesforbruget variere fra 0 - 255 bytes. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINÆR Syntaks - VARBINÆR (n) | VARBINÆR giver dig mulighed for at gemme binære strenge med variabel længde op til 'n længde (som specificeret i kolonnedefinition) | Længden på VARBINÆR datatype kan variere fra 0 - 65535 Afhængigt af længde vil hukommelsesforbruget variere fra 0 - 65535 bytes. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Lad os forstå den BINÆRE datatype mere detaljeret. Vi opretter en tabel med hver kolonne af binær og varbinær datatype og inspicerer indholdet.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Nu har vi set output som BLOB, hvilket betyder - B inary L dårligt OB ject - og disse er intet andet end binær / hex-repræsentation af strengværdierne, som vi har indsat i kolonnerne.
Nu vil vi inspicere værdierne for disse binære strenge og se, hvordan de er gemt.
Lad os først se værdien til stede i 'binary_col', som er af BINÆR datatype.
Lad os forstå, hvad der er de værdier, der bliver gemt - Hvis du bemærker værdierne i forhold til de første 5 poster - dvs. første række og første 5 kolonner (0-4)
Dette er kun HEX-repræsentationerne for tegnene i streng 'hej', som vi har gemt.
Nu da det er en BINÆR datatype af længde 50, kan vi se, at resten af byte er polstret med '00' -værdier, hvilket ikke er andet end byte-repræsentation for ciffer '0'.
Se værdien til stede i 'varbinary_col', som er af VARBINÆR datatype.
Her, for VARBINÆR, kan du se, at værdierne bare er udfyldt med en længde på 5, hvilket svarer til den strenglængde, vi lagrede. Der er ingen Zero polstring, selvom vi erklærede en VARBINÆR kolonne med længde 50.
BLOB OG TEKST
BLOB- og TEKST-datatyper svarer til datatyperne BINARY og CHAR med den forskel, at de kan understøtte større størrelser i forhold til deres grundlæggende modstykker.
Det er vigtigt at bemærke, at BLOB gemmer data som binære strenge, mens TEXT-datatypen gemmer som ikke-binære strenge. Desuden kræver alle disse datatyper ikke at specificere længden, mens datatypen nævnes. De har i sagens natur variabel længde i naturen og forbruger kun hukommelse mod den, der er gemt som den faktiske kolonneværdi.
BLOB-datatyper bruges generelt til at gemme filer som billeder, pdf-dokumenter osv. Som binære strenge på en sikker og effektiv måde.
Detaljer om forskellige varianter af BLOB- og TEXT-datatyper er angivet nedenfor:
Type | Rækkevidde | Beskrivelse | Eksempler |
---|---|---|---|
TINYTEXT | 0-255 (255 byte) | Området er det samme som VARCHAR - Bruges til lagring af mindre info som titler, forfatternavne osv. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TEKST | 0-65535 (64KB) | Denne datatype er tilstrækkelig til at gemme tekst til en lille til mellemstor artikel. | CREATE TABLE text_example(text_col TEXT); |
MEDIUMTEXT | 0-16,777,215 (16MB) | Denne datatype kan være tilstrækkelig til at gemme tekst til en hel lærebog | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
LONGTEXT | 0 - 4.294.967.295 (4GB) | LONGTEXT bruges sjældent specifikt i tilfælde, hvor MEDIUMTEXT ikke er tilstrækkelig. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 byte) | Alle BLOB-datatyper bruges til at gemme binære strenge og foretrækkes generelt til lagring af filer som billeder, pdf-dokumenter eller små applikationer i sig selv. Afhængigt af størrelseskravene kan de forskellige BLOB-datatyper vælges og bruges. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4.294.967.295 (4GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM er en strengdatatype, der foruddefinerer de tilladte værdier, som en kolonne kan have. Det svarer til ENUM-datatyper, der findes i forskellige programmeringssprog som JAVA, C # osv.
ENUM-værdier, når de er gemt, konverteres til tal mod hver søjleværdi, hvilket resulterer i en betydelig hukommelsesbesparelse for tabeller, der har et stort antal poster, dvs. antag, at vi har en ENUM, der har værdier - værdi1, værdi2 og værdi3, så vil den aktuelle hukommelseslagring være numerisk indekserer 1,2,3 bag kulisserne.
Syntaks:
ENUM({comma separated enum values})
Eksempel på forespørgsler:
Opret en tabel med 2 kolonner til lagring af mobile modeller som streng og virksomhedsnavne som ENUM-datatyper med værdier - APPLE, SAMSUNG og NOKIA. Lad os også se forespørgsler for at hente data mod en bestemt ENUM-værdi.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
I ovenstående forespørgsel kan du se, at vi har brugt Enum-navne såvel som numeriske indekser begge under indsættelse.
Lad os prøve at forespørge alle mobile enheder med mærkenavnet 'SAMSUNG' samt forespørgsel mod det numeriske indeks for SAMSUNG, som er '1'.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
Output af begge ovenstående forespørgsler vil være den samme som nævnt nedenfor:
SÆT
MySQL SET-datatype er et strengobjekt, der kan have en eller flere værdier fra et tilladt område som beskrevet under kolonnedefinition. Det svarer til ENUM, men det tillader, at flere værdier fra den definerede liste tilknyttes som kolonneværdier.
SET-datatyper gemmes også som nummerindekser, der starter 2 ^ 0 - dvs. 1,2,4,8 osv.
Syntaks:
SET({comma separated list of allowed values})
Eksempel:
Lad os prøve at forstå SET-datatypen med eksempler. Vi opretter en tabel med navnet mobile_details med en kolonnemodel af strengtype og en kolonne med navnet understøttet OS, der er en sæt datatype og indeholder en liste over understøttede operativsystemversioner.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Vi kan se, at vi har angivet operativsystemværdier som en del af en kolonne med SET-datatype. De tilsvarende DECIMAL-værdier, der er tildelt disse, er angivet nedenfor:
Hvis vi nu vil tildele SET-værdi, for eksempel, 'Android8, android9' til en række, vi kan simpelthen tildele tilføjelsen af de tildelte decimalværdier, dvs. 12 for at have den samme effekt.
Se INSERT-forespørgslen ovenfor for tildeling til række med modelnavn 'GALAXYM1'
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Output af ovenstående kommando:
Vi kan også forespørge SET-kolonnen mod deres decimalrepræsentation - antag, at vi vil forespørge efter 'ios9, ios10' - summen af decimalrepræsentation er 3, så vi kan spørge som:
SELECT * from mobile_details where supported_os=3
Produktion:
Særlige datatyper
BOOLEAN
MySQL Boolean datatype gemmer en kolonneværdi som SAND eller FALSK. Denne datatype er generelt velegnet til lagring af flagværdier i MySQL-tabellerne. For eksempel - En bankkontotabel med en kolonne ved navn is_savings_account kan gemme enten sand eller falsk.
BOOLEAN-værdien er gemt i MySQL som henholdsvis 1 eller 0 for henholdsvis SAND og FALSK.
Syntaks:
columnName BOOLEAN
Eksempel:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Når vi indsætter eller henter værdier for BOOLEAN-datatypen, kan vi enten bruge SAND eller FALSK eller deres numeriske repræsentationer - dvs. 1 eller 0.
select * from account_details where is_savings=1;
Output af ovenstående kommando:
JSON
MySQL understøtter native JSON som en datatype for objekter i JSON-notation. Det gør opbevaring, forespørgsel og hentning let for JSON-dokumenter i stedet for at gemme som tekststrenge eller binære klatter.
Syntaks:
columnName JSON
Fakta:
Definition | Rækkevidde | Eksempler |
---|---|---|
JSON-datatypen bruges til at gemme dokumenter, der er i JSON-format. Enhver kolonne defineret som JSON vil kaste en fejl, hvis en ugyldig JSON er gemt af en INSERT-forespørgsel. | Omfanget eller størrelsen af JSON-datatypen svarer til LONGTEXT eller LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Eksempel:
MySQL giver forskellige funktioner til forespørgsel om JSON-data. Lad os prøve at indsætte nedenfor JSON, og så vil vi se MySQL-funktioner, der skal forespørges.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
Lad os se kommandoer til at oprette tabel og indsætte JSON-data.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
Forespørg bordet, og udskriv fornavn og e-mail-felter fra de JSON-data, der er gemt i tabelrækkerne.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Produktion:
Ofte stillede spørgsmål
Q # 1) Hvordan kan vi ændre datatypen for en MySQL-kolonne, når den først er tildelt?
Svar: Datatypen for kolonnen kan ændres ved hjælp af ALTER TABLE Kommando .
Overvej en tabel student_info med henholdsvis 2 kolonners navn og alder på typerne VARCHAR og INT. Dette kan opnås ved hjælp af følgende CREATE TABLE-kommando:
CREATE TABLE student_info(name CHAR(20), age INT);
Der er et par variationer i denne kommando
gratis virtualiseringssoftware til Windows 10
- Hvis vi kun vil ændre kolonnens datatype - Vi kan bruge MODIFY-kommandoen sammen med ALTER
Antag i ovenstående tabel, at vi vil ændre datatypen for alderskolonne, vi kan bruge følgende kommando
ALTER TABLE student_info MODIFY age TINYINT
- Hvis vi ønsker at ændre kolonnens navn såvel som kolonnens datatype - Vi kan bruge kommandoen SKIFT sammen med ALTER
Antag i ovenstående tabel, at vi vil ændre kolonnens navn fra 'navn' til 'sname' og datatype fra CHAR til VARCHAR (50), vi kan bruge følgende kommando:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Q # 2) Hvad er datatypen for et billede i mysql?
Svar: Til lagring af en hvilken som helst af filtyperne i MySQL som billeder, pdf osv. BLOB eller binær datatype er den mest velegnede type. Der er forskellige varianter af BLOB-datatype til rådighed afhængigt af størrelsen på den målfil, som vi vil gemme. Vi kan bruge varianter af BLOB som - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
Spørgsmål nr. 3) Hvilken datatype er mere velegnet til lagring af dokumenter i mysql?
Svar: Svarende til BLOB til billeder eller pdf-filer, til lagring af tekstdokumenter / artikler kan TEXT-datatype bruges. Dette er en udvidelse til CHAR-datatypen med understøttelse af ekstra tegnlagring.
De forskellige varianter af TEXT-datatype, der er tilgængelige, er - TEKST, TINYTEXT, MEDIUMTEXT & LONGTEXT
Spørgsmål nr. 4) Hvad er datatypen for valuta i MySQL?
Svar: Den mest egnede datatype er DECIMAL til lagring af data til valutaværdier. Det bruges til at gemme datatyper med nøjagtig præcision. For eksempel, et kolonnenavn med typen DECIMAL (4,2), gemmer værdier i intervallet -99,99 til 99,99 og returnerer værdien med samme præcision ved hentning i modsætning til. tilnærmelse til flydende nummer.
Q # 5) Hvad sker der, hvis nogen prøver at indsætte negative tal for UNSIGNED heltalskolonner?
Svar: MySQL genererer en fejl for sådanne indsætningserklæringer
Lad os prøve at oprette en tabel med en INT-kolonne, der har UNSIGNED-mulighed.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
Spørgsmål nr. 6) Hvordan får jeg aktuelle datadata i mysql?
Svar: MySQL leverer 2 indbyggede dato-tidsfunktioner til at hente aktuelle værdier
CURDATE () -funktionen returnerer den aktuelle dato
SELECT CURDATE();
Produktion
2020-08-10
NU () -funktionen returnerer den aktuelle dato med tidsstempel.
SELECT NOW();
Produktion
2020-08-10 00:42:54
Spørgsmål nr. 7) Uden for CHAR og VARCHAR - hvilken er mere egnet?
Svar: VARCHAR står for variabel karakter og har en vigtig fordel ved at forbruge mindre hukommelse i forhold til CHAR af samme længde. For eksempel, En kolonne med VARCHAR (50), hvis lagre strenge med længde 20 ville resultere i kun 20 bytes i modsætning til en datatype, der er angivet med CHAR (50)
Q # 8) Hvordan opdateres ENUM-værdien i MySQL?
Svar: For at opdatere en ENUM-kolonne i MySQL skal du ændre omtale af de eksisterende kolonneværdier, så de eksisterende poster forbliver intakte.
Lad os prøve at forstå dette med et eksempel.
Antag, at vi har en tabel med navnet mobile_details, der har et modelfelt som String (VARCHAR) og brandkolonnen som ENUM med startværdier som 'APPLE', SAMSUNG 'og' NOKIA '
Antag nu, at vi vil tilføje et andet mærke 'MOTOROLA' til det eksisterende enum. Lad os se de forespørgsler, som vi har brug for at udføre.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Når du er oprettet, kan du få detaljer om originale ENUM-værdier ved hjælp af DESCRIBE-kommandoen
DESCRIBE mobile_details;
Lad os nu køre kommandoen for at opdatere ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Vi kan igen køre kommandoen DESCRIBE for at se, om opdateringerne anvendes med succes.
DESCRIBE mobile_details
Her er output fra ovenstående kommando:
Konklusion
I denne vejledning lærte vi om de forskellige datatyper, der understøttes af MySQL.
Vi lærte om datatyper for numerisk, flydende, streng og dato samt syntaks og forskellige eksempler.
MySQL-datatyper er grundstenene til at komme i gang og et af de mest afgørende aspekter under MySQL Schema Design.
Anbefalet læsning
- C ++ datatyper
- Python-datatyper
- C # Datatyper og variabler med eksempler
- PL SQL-datatyper, variabler, konstanter og bogstaver
- Array-datatyper - int Array, Double array, Array of Strings Etc.
- MySQL Delete Statement - Slet kommandosyntaks og eksempler
- MySQL indsæt i tabel - Indsæt erklæringens syntaks og eksempler
- MySQL JOIN Tutorial: Indre, ydre, kryds, venstre, højre og selv