mysql data types what are different data types mysql
Obteniu més informació sobre diferents tipus de dades MySQL, és a dir, numèriques, cadenes, tipus de dades, JSON, booleà, etc., amb exemples:
En aquest tutorial, coneixerem els diferents tipus de dades compatibles amb MySQL. Els tipus de dades s’especifiquen a cada columna quan es crea una taula i també mentre s’actualitza / modifica la taula per afegir una nova columna a la taula existent
Coneixerem els tipus de dades en tres categories diferents, és a dir, tipus de dades numèriques, tipus de dades de cadenes i tipus de dades Datetime.
Què aprendreu:
Tipus de dades MySQL
Prerequisits
Aprendrem tots els tipus de dades amb exemples de treball a MySQL. Per tant, es recomana tenir MySQL instal·lat per executar les consultes juntament amb detalls per a una millor comprensió del concepte.
A més, podeu crear una base de dades d’exemple anomenada sql_data_types que contingui totes les taules que faríem servir com a exemples.
create database sql_data_types; use sql_data_types;
Tipus de dades numèriques
Els tipus de dades numèriques es poden dividir en 3 tipus:
- Tipus de dades sencers
- Tipus de punts fixos
- Tipus de punt flotant
Anem a parlar de cadascun d'aquests:
Tipus de dades sencers
Aquests tipus de dades admeten nombres enters sense cap representació decimal. Hi ha diversos subtipus com: INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Sintaxi:
INT((width)) (UNSIGNED) (ZEROFILL)
Fets:
Descripció | Rang | Memòria | Opcions |
---|---|---|---|
MEDIUMBLOB | 0-16.777.215 (16 MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Tipus numèric més utilitzat. Emmagatzema nombres enters DEFAULT: valors sense signar | –2.147.483.648 a 2.147.483.647 | 4 bytes | Si s'utilitza amb l'opció UNSIGNED: l'interval canvia a De 0 a 4.294.967.295 L'opció Amplada es pot utilitzar amb ZEROFILL per tapar les entrades amb zero per a valors inferiors a l'amplada |
Exemples:
Crearem una taula amb 1 columna amb tipus de dades INT i diferents opcions.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Sortida de l'ordre SELECT:
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;
Sortida de l'ordre anterior:
Altres variacions de INT:
Hi ha diverses opcions disponibles per a INT segons els requisits específics. Normalment s’utilitzen quan la memòria o l’espai són preocupants, però, a tots els efectes pràctics, INT és el més utilitzat.
A continuació es detallen les diferents variacions del tipus de dades INT disponibles:
DataType | Rang | Exemple | Memòria / Bytes utilitzats |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32.768-32.767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | 2 |
MEDIUMINT | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
BIGINT | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Tipus de punt flotant
Els tipus de coma flotant són tipus de valor aproximats i això depèn del núm. de precisió de punt decimal especificat durant la declaració del tipus de columna.
Hi ha 2 tipus de tipus de dades de punt flotant: FLOTANT i DOBLE que admeten diferents rangs i consumeixen memòria / emmagatzematge.
FLOTANT I DOBLE
Segons la nova sintaxi recomanada: tant la precisió FLOAT com la DOBLE es poden especificar utilitzant només tipus de dades FLOAT.
Sintaxi:
FLOAT(p)
Aquí, pàg -> precisió
Fets:
Descripció | Memòria | Opcions | Exemples |
---|---|---|---|
FLOTANT / DOBLE representa números de coma flotant amb valors aproximats És a dir, quan MySQL emmagatzema aquests valors, aquests valors s'aproximen a la precisió més propera segons el tipus declarat. La precisió entre 0-23 representa el tipus FLOAT, mentre que el 24 al 53 generaria un tipus doble que consumeix 8 bytes | -Precisió - 0-23 => 4 bytes -Precisió -24-53 => 8 bytes | -Els números de punts flotants es poden signar i no signar -FLOAT és generalment precís fins a 7 posicions decimals, mentre que DOBLE és precís fins a 14 punts decimals -També hi ha una altra forma no estàndard de declarar FLOTANT i DOBLE amb l’especificació de punts de precisió FLOTAR (n, d): on n és un total de dígits i d no és un nombre decimal | -Crear taula amb una columna DOBLE tipus de dades CREA TAULA números_doble (doble_col FLOAT (30)); -Crear taula amb una columna DOBLE tipus de dades i dígits de precisió com a 5 CREA TAULA números_doble (doble_col DOBLE (20,5)); |
Vegem alguns exemples de recuperació de valors de tipus dobles:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Sortida de la sentència SELECT:
Aquí podem veure que els valors s’emmagatzemen fins a 5 decimals tal com s’especifica durant la declaració del tipus de dades.
Tipus de punts fixos
Aquests tipus de dades s’utilitzen per emmagatzemar un valor exacte amb una precisió determinada. Aquests tipus de dades se solen utilitzar quan es requereix un emmagatzematge de precisió exacte. Per exemple, Els comptes bancaris són obligatoris per mantenir els saldos amb 2 decimals. Necessitem que les dades s’emmagatzemin amb exactitud.
DECIMAL / NUMÈRIC
Sintaxi:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fets:
Descripció | Rang | Memòria | Opcions |
---|---|---|---|
DECIMAL és un tipus de dades numèriques a MySQL i emmagatzema valors exactes amb la precisió especificada. L'escala o amplada per defecte per al tipus de dades DECIMAL és de precisió 10 i 0. Tingueu en compte que els tipus DECIMAL i NUMERIC es poden utilitzar indistintament. | Depèn de l'interval especificat Per exemple DECIMAL (5,2) tindria un interval d'entre -999,99 i 999,99 | Usuaris de MySQL en format binari per emmagatzemar tipus de dades DECIMAL - Requereix quatre bytes per cada 9 dígits - Per tant per exemple, si tenim DECIMAL (14,2) - requeriríem un total de - 9 (4) + 2 (1) => 7 bytes | -El valor màxim de l'amplada pot ser 265 -El nombre de decimals és opcional i el valor per defecte és 0 |
Exemple:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Tipus de dades de data i hora
Els tipus de dades DateTime a MySQL, com el seu nom indica, s’utilitzen per emmagatzemar valors de data i hora a la base de dades MySQL.
Hi ha 2 tipus temporals compatibles amb MySQL - DATETIME i TIMESTAMP
Analitzem tots dos a les seccions següents.
DATETIME
Sintaxi:
DATETIME(n)
Aquí, n -> precisió / part fraccionària de la part de segons (la precisió màxima admesa és de 6).
Fets:
Descripció | Rang | Memòria | Exemples |
---|---|---|---|
S’utilitza per emmagatzemar la data i l’hora a la columna MySQL Quan es consulta, les dades de la columna mostren la data i hora en el format següent: AAAA-MM-DD HH: MM: SS | 1000.01.01 00:00:00 - 9999-12-31 23:59:59 | 5 bytes Quan s'inclou una part fraccionària, per cada 2 dígits fraccionaris es consumeix un byte addicional. | CREATE table datetime_example(date_col DATETIME); // SORTIDA data_col 2020-08-08 22:22:53 |
TIMESTAMP
Sintaxi:
TIMESTAMP(n)
Aquí, n -> precisió / part fraccionària de la part de segons (la precisió màxima admesa és de 6)
Fets:
Descripció | Rang | Memòria | Exemples |
---|---|---|---|
Un altre tipus de dades temporals que s’utilitza per emmagatzemar la data i hora. Aquesta data emmagatzema l’hora UTC també amb un rang limitat entre 1970 i 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 bytes | CREATE table timestamp_example(ts_col TIMESTAMP); SORTIDA ts_col 2020.08.08 22:19:11 |
Tipus de dades de cadenes
Els tipus de dades de cadenes, com el seu nom indica, s’utilitzen per emmagatzemar cadenes / textos o blobs d’informació textual a la base de dades. En funció del cas d’ús, hi ha diferents tipus de dades disponibles: CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Comprenem cadascun d’aquests tipus de dades diferents amb exemples.
CHAR I VARCHAR
Aquests dos tipus s’utilitzen per emmagatzemar valors de cadena a les columnes de MySQL, però difereixen en la manera com s’emmagatzemen i recuperen els valors.
CHAR & VARCHAR es declaren amb longitud, que indica la longitud màxima de la cadena que voleu emmagatzemar a la columna.
Sintaxi:
CHAR(n) VARCHAR(n)
Aquí, n -> màx. de caràcters que ha d’emmagatzemar la columna
Fets:
Tipus | Descripció | Rang | Exemples |
---|---|---|---|
CHAR Sintaxi - CHAR (n) | CHAR pot emmagatzemar una cadena de longitud 'n' tal com es defineix durant la declaració. Si la cadena té menys de n caràcter, aleshores estarà encoixinada amb espais. | La longitud del tipus de dades CHAR pot variar de 0 a 255 Depenent de la longitud, el consum de memòria oscil·laria entre 0 i 255 bytes. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Sintaxi - VARCHAR (n) | VARCHAR us permet emmagatzemar cadenes de longitud variable i consumir memòria en funció de la mida real de la cadena emmagatzemada en lloc del valor màxim especificat durant la definició de columna. | La longitud del tipus de dades de VARCHAR pot variar de 0 a 65535 Depenent de la longitud, el consum de memòria oscil·laria entre 0 i 65535 bytes. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINARI I VARBINARI
Similar a CHAR i VARCHAR: aquests tipus de dades emmagatzemen cadenes però en format binari.
La longitud dels tipus de dades BINARY i VARBINARY es mesura en bytes en comparació amb el nombre de caràcters dels tipus de dades CHAR i VARCHAR.
Sintaxi:
BINARY(n) VARBINARY(n)
Aquí, n -> màx. de bytes que ha d’emmagatzemar la columna.
Fets:
Tipus | Descripció | Rang | Exemples |
---|---|---|---|
BINARI Sintaxi - BINARY (n) | BINARY pot emmagatzemar 'n' bytes binaris. Per a valors inferiors a n, estan emmagatzemats correctament amb 0 bytes | La longitud del tipus de dades BINARY pot variar de 0 a 255 Depenent de la longitud, el consum de memòria oscil·laria entre 0 i 255 bytes. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINARI Sintaxi - VARBINARI (n) | VARBINARY us permet emmagatzemar cadenes binàries de longitud variable fins a 'n longitud (com s'especifica a la definició de columna) | La longitud del tipus de dades VARBINARI pot variar de 0 a 65535 Depenent de la longitud, el consum de memòria oscil·laria entre 0 i 65535 bytes. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Comprenem el tipus de dades BINARY amb més detall. Crearem una taula amb una columna cadascun de tipus de dades binari i varbari i inspeccionarem el contingut.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Ara hem vist la sortida com BLOB, que significa: B inari L dolent OB ject - i no són res més que representació binària / hexadecimal dels valors de cadena que hem inserit a les columnes.
Ara inspeccionarem els valors d’aquestes cadenes binàries i veurem com s’emmagatzemen.
En primer lloc, vegem el valor present a 'binary_col', que és del tipus de dades BINARY.
Comprenem quins són els valors que s’emmagatzemen - Si observeu els valors de les 5 primeres entrades, és a dir, la primera fila i les primeres 5 columnes (0-4)
Aquestes són només les representacions HEX dels personatges de la cadena 'hola' que hem emmagatzemat.
Ara, ja que es tracta d’un tipus de dades BINARY de longitud 50, podem veure que la resta de bytes estan encoixinats amb valors ‘00’ que no són altra cosa que representació de bytes per al dígit ‘0’.
Consulteu el valor present a 'varbinary_col', que és del tipus de dades VARBINARI.
Aquí, per a VARBINARY, podeu veure que els valors s’acaben d’emplenar per a una longitud de 5 que equival a la longitud de la cadena que hem emmagatzemat. No hi ha farciment zero tot i que hem declarat una columna VARBINÀRIA de longitud 50.
BLOB I TEXT
Els tipus de dades BLOB i TEXT són similars als tipus de dades BINARY i CHAR, amb la distinció que poden admetre mides més grans que les seves contraparts bàsiques.
És important tenir en compte que BLOB emmagatzema dades com a cadenes binàries mentre que el tipus de dades TEXT s’emmagatzema com a cadenes no binàries. A més, tots aquests tipus de dades no requereixen especificar la longitud mentre s’esmenta el tipus de dades. Són naturalment de longitud variable i consumeixen memòria només contra la que s’emmagatzema com a valor de columna real.
Els tipus de dades BLOB s’utilitzen generalment per emmagatzemar fitxers com imatges, documents pdf, etc. com a cadenes binàries d’una manera segura i eficient.
A continuació es detallen detalls sobre diferents variants dels tipus de dades BLOB i TEXT:
Tipus | Rang | Descripció | Exemples |
---|---|---|---|
TINYTEXT | 0-255 (255 Bytes) | L’interval és el mateix que VARCHAR: s’utilitza per emmagatzemar informació petita com ara títols, noms d’autors, etc. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TEXT | 0-65535 (64 KB) | Aquest tipus de dades és suficient per emmagatzemar text per a un article de mida petita a mitjana. | CREATE TABLE text_example(text_col TEXT); |
MEDIUMTEXT | 0-16.777.215 (16 MB) | Aquest tipus de dades pot ser suficient per emmagatzemar text per a un llibre de text sencer | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
LONGTEXT | 0 - 4.294.967.295 (4 GB) | LONGTEXT poques vegades s’utilitza específicament en casos en què MEDIUMTEXT no és suficient. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 Bytes) | Tots els tipus de dades BLOB s’utilitzen per emmagatzemar cadenes binàries i generalment es prefereixen per emmagatzemar fitxers com imatges, documents pdf o petites aplicacions. Depenent dels requisits de mida, es poden triar i utilitzar els diferents tipus de dades BLOB. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64 KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4.294.967.295 (4 GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM és un tipus de dades de cadena que defineix prèviament els valors permesos que pot tenir una columna. És similar als tipus de dades ENUM que existeixen en diferents llenguatges de programació com JAVA, C #, etc.
Els valors ENUM, quan s’emmagatzemen, es converteixen en números contra cada valor de columna, cosa que comporta un estalvi de memòria considerable per a les taules amb un gran nombre de registres, és a dir, suposem que tenim un ENUM que té valors: valor1, valor2 i valor3, l’emmagatzematge de memòria real seria numèric índexs 1,2,3 entre bastidors.
Sintaxi:
ENUM({comma separated enum values})
Consultes d'exemple:
Creeu una taula amb 2 columnes per emmagatzemar models mòbils com a noms de cadenes i empreses com a tipus de dades ENUM amb valors: APPLE, SAMSUNG i NOKIA. Vegem també consultes per obtenir dades amb un valor ENUM concret.
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) ;
A la consulta anterior, podeu veure que hem utilitzat noms Enum i índexs numèrics durant la inserció.
Intentem consultar tots els dispositius mòbils amb la marca 'SAMSUNG', així com consultar l'índex numèric de SAMSUNG que és '1'.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
La sortida de les consultes anteriors serà la mateixa que s’esmenta a continuació:
CONJUNT
El tipus de dades MySQL SET és un objecte de cadena que pot tenir un o més d’un valor d’un interval permès tal com es descriu durant la definició de columna. És similar a ENUM, però permet associar diversos valors de la llista definida com a valors de columna.
A més, els tipus de dades SET s’emmagatzemen com a índexs numèrics a partir de 2 ^ 0, és a dir, 1,2,4,8, etc.
Sintaxi:
SET({comma separated list of allowed values})
Exemple:
Intentem comprendre el tipus de dades SET amb exemples: crearem una taula anomenada mobile_details amb un model de columna de tipus String i una columna anomenada SO compatible que és un tipus de dades establert i que conté una llista de versions del sistema operatiu admeses.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Podem veure que hem llistat els valors del sistema operatiu com a part d’una columna que té tipus de dades SET. A continuació es detallen els valors DECIMAL corresponents que s’assignen a aquests:
Ara, si volem assignar el valor SET, per exemple, 'Android8, android9' a una fila, simplement podem assignar l'addició dels valors decimals assignats, és a dir, 12 per tenir el mateix efecte.
Consulteu la consulta INSERT més amunt per assignar una fila amb el nom del model 'GALAXYM1'.
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Sortida de l'ordre anterior:
També podem consultar la columna SET en funció de la seva representació decimal - suposem que volem consultar 'ios9, ios10' - la suma de la representació decimal és 3, de manera que podem consultar com:
SELECT * from mobile_details where supported_os=3
Sortida:
Tipus de dades especials
BOOLEAN
El tipus de dades booleanes MySQL emmagatzema un valor de columna com a TRUE o FALSE. Aquest tipus de dades generalment és adequat per emmagatzemar valors de bandera a les taules MySQL. Per exemple - Una taula de compte bancari amb una columna anomenada is_savings_account pot emmagatzemar vertader o fals.
El valor BOOLEAN s'emmagatzema a MySQL com a 1 o 0 per a TRUE i FALSE, respectivament.
Sintaxi:
columnName BOOLEAN
Exemple:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
En inserir o recuperar valors per al tipus de dades BOOLEAN, podem utilitzar TRUE o FALSE o les seves representacions numèriques, és a dir, 1 o 0.
select * from account_details where is_savings=1;
Sortida de l'ordre anterior:
JSON
MySQL admet JSON natiu com a tipus de dades per a objectes en notació JSON. Facilita l’emmagatzematge, la consulta i la recuperació de documents de tipus JSON en lloc d’emmagatzemar-los com a cadenes de text o blobs binaris.
Sintaxi:
columnName JSON
Fets:
Definició | Rang | Exemples |
---|---|---|
El tipus de dades JSON s’utilitza per emmagatzemar documents en format JSON. Qualsevol columna definida com a JSON generaria un error si una consulta INSERT emmagatzema un JSON no vàlid. | L'interval o mida del tipus de dades JSON és similar a LONGTEXT o LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Exemple:
MySQL proporciona diferents funcions per consultar dades JSON. Intentem inserir a sota JSON i, a continuació, veurem les funcions MySQL per consultar.
{ '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', } }
Vegem les ordres per crear una taula i inserir les dades JSON.
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' }}');
Consulteu la taula i imprimiu el nom i els camps de correu electrònic de les dades JSON que s’emmagatzemen a les files de la taula.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Sortida:
Preguntes freqüents
Q # 1) Com podem canviar el tipus de dades d'una columna MySQL un cop assignada?
Resposta: Es pot canviar el tipus de dades de la columna mitjançant Ordre ALTER TABLE .
Penseu en una taula student_info que tingui el nom i l'edat de 2 columnes dels tipus VARCHAR i INT respectivament. Això es pot aconseguir mitjançant l'ordre CREATE TABLE següent:
CREATE TABLE student_info(name CHAR(20), age INT);
Hi ha un parell de variacions en aquesta ordre
com utilitzar l'ordre find a unix
- Si volem canviar només el tipus de dades de la columna - Podem utilitzar l'ordre MODIFY juntament amb ALTER
A la taula anterior, suposem que volem canviar el tipus de dades de la columna d'edat, podem utilitzar l'ordre següent
ALTER TABLE student_info MODIFY age TINYINT
- Si volem canviar el nom de la columna i el tipus de dades de la columna - Podem utilitzar l'ordre CHANGE juntament amb ALTER
A la taula anterior, suposem que volem canviar el nom de la columna de 'nom' a 'sname' i el tipus de dades de CHAR a VARCHAR (50), podem utilitzar l'ordre següent:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Q # 2) Quin és el tipus de dades per a una imatge a mysql?
Resposta: Per emmagatzemar qualsevol tipus de fitxer a MySQL com imatges, pdf, etc. El tipus de dades binari o BLOB és el tipus més adequat. Hi ha diferents variants de tipus de dades BLOB disponibles en funció de la mida del fitxer de destinació que vulguem emmagatzemar. Podem utilitzar variants de BLOB com: TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
P # 3) Quin tipus de dades és més adequat per emmagatzemar documents a mysql?
Resposta: Similar a BLOB per a imatges o fitxers pdf, per emmagatzemar documents / articles de text, es pot utilitzar el tipus de dades TEXT. Es tracta d’una extensió al tipus de dades CHAR amb suport per a l’emmagatzematge de caràcters addicional.
Les diferents variants de tipus de dades TEXT disponibles són - TEXT, TINYTEXT, MEDIUMTEXT I LONGTEXT
Q # 4) Quin és el tipus de dades de la moneda a MySQL?
Resposta: Per emmagatzemar dades per als valors de la moneda, el tipus de dades més adequat és DECIMAL. S’utilitza per emmagatzemar tipus de dades amb una precisió exacta. Per exemple, un nom de columna amb tipus DECIMAL (4,2) emmagatzemaria valors compresos entre -99,99 i 99,99 i retornaria el valor amb la mateixa precisió en recuperar-lo a diferència. aproximació per als números de coma flotant.
P # 5) Què passa si algú intenta inserir nombres negatius per a columnes senceres sense signar?
Resposta: MySQL genera un error per a aquestes instruccions d'inserció
Intentem crear una taula amb una columna INT que tingui l'opció UNSIGNED.
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
P # 6) Com obtenir les dades de la data actual a mysql?
Resposta: MySQL proporciona dues funcions de data incorporades per obtenir valors actuals
La funció CURDATE () retorna la data actual
SELECT CURDATE();
Sortida
2020-08-10
La funció NOW () retorna la data actual amb marca de temps.
SELECT NOW();
Sortida
2020-08-10 00:42:54
P # 7) Fora de CHAR i VARCHAR: quin és el més adequat?
Resposta: VARCHAR significa caràcter variable i té un avantatge important de consumir menys memòria en comparació amb CHAR de la mateixa longitud. Per exemple, Una columna amb VARCHAR (50) si emmagatzema cadenes de longitud 20 resultaria en consumir només 20 bytes en lloc d'un tipus de dades declarat amb CHAR (50)
Q # 8) Com actualitzar el valor ENUM a MySQL?
Resposta: Per actualitzar una columna ENUM a MySQL, haureu de modificar esmentant els valors de columna existents perquè les entrades existents es mantinguin intactes.
Intentem entendre-ho amb un exemple.
Suposem que tenim una taula anomenada mobile_details que té un camp de model com a cadena (VARCHAR) i una columna de marca com ENUM amb valors inicials com 'APPLE', SAMSUNG 'i' NOKIA '
Ara, suposem que volem afegir una altra marca ‘MOTOROLA’ a l’enumeració existent. Vegem les consultes que hauríem d’executar.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Un cop creat, podeu obtenir els detalls dels valors ENUM originals mitjançant l'ordre DESCRIBE
DESCRIBE mobile_details;
Ara executem l’ordre per actualitzar l’ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Podem tornar a executar l'ordre DESCRIBE per veure si les actualitzacions s'apliquen correctament.
DESCRIBE mobile_details
Aquí teniu la sortida de l’ordre anterior:
Conclusió
En aquest tutorial hem conegut els diferents tipus de dades compatibles amb MySQL.
Hem après sobre els tipus de dades numèriques, flotants, de cadena i de data, juntament amb la sintaxi i diferents exemples.
Els tipus de dades MySQL són els fonaments bàsics per començar i un dels aspectes més crucials durant el disseny d’esquemes MySQL.
Lectura recomanada
- Tipus de dades C ++
- Tipus de dades Python
- C # Tipus de dades i variables amb exemples
- PL SQL Tipus de dades, variables, constants i literals
- Tipus de dades de matriu: matriu int, matriu doble, matriu de cadenes, etc.
- Declaració MySQL Delete: suprimiu la sintaxi i els exemples d'ordres
- MySQL Insereix a la taula: insereix sintaxi i exemples de sentències
- Tutorial MySQL JOIN: Interior, exterior, creuat, esquerre, dret i autònom