sintassi mysql

Upload: jatinger-singh

Post on 20-Jul-2015

1.828 views

Category:

Documents


0 download

TRANSCRIPT

ITIS LEONARDO DA VINCI

CORSO DI INFORMATICA PROGETTO ABACUS

MySqlSintesi della sintassi

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

IndiceDDL (Data Description Language)........................................................................................................... 2 ALTER DATABASE........................................................................................................................... 2 ALTER TABLE................................................................................................................................... 2 CREATE DATABASE ...................................................................................................................... 2 CREATE INDEX ............................................................................................................................. 3 CREATE TABLE ............................................................................................................................. 3 DROP DATABASE............................................................................................................................. 4 DROP INDEX ..................................................................................................................................... 5 DROP TABLE.................................................................................................................................. 5 RENAME TABLE ............................................................................................................................. 5 DML (Data Manipulation Language) ....................................................................................................... 6 DELETE .............................................................................................................................................. 6 DO ....................................................................................................................................................... 6 HANDLER .......................................................................................................................................... 6 INSERT ............................................................................................................................................... 7 LOAD DATA INFILE ......................................................................................................................... 7 REPLACE ........................................................................................................................................... 7 TRUNCATE ........................................................................................................................................ 8 UPDATE ............................................................................................................................................. 8 DQL (Data Query Language) ................................................................................................................... 9 SELECT .............................................................................................................................................. 9 JOIN .................................................................................................................................................... 9 UNION .............................................................................................................................................. 10 Funzioni di aggregazione................................................................................................................ 10 Comandi di Amministrazione Database.................................................................................................. 12 CREATE USER................................................................................................................................. 12 DROP USER ..................................................................................................................................... 12 GRANT ............................................................................................................................................. 12 RENAME USER ............................................................................................................................... 12 REVOKE ........................................................................................................................................... 13 SET PASSWORD.............................................................................................................................. 13 MySQL Transactional e Comandi di Locking ........................................................................................ 14 START TRANSACTION, COMMIT, and ROLLBACK ................................................................... 14 LOCK TABLES and UNLOCK TABLES.......................................................................................... 14 SET TRANSACTION........................................................................................................................ 14 Tipi di dato in MySql...15

A cura della Prof.ssa Capone Maria

-1-

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

DDL (Data Description Language)

ALTER DATABASEALTER {DATABASE | SCHEMA} [db_name] alter_specification [, alter_specification] ... alter_specification: [DEFAULT] CHARACTER SET charset_name

| [DEFAULT] COLLATE collation_name

ALTER TABLEALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: ADD ADD ADD ADD ADD [COLUMN] column_definition [FIRST | AFTER col_name ] [COLUMN] (column_definition,...) {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [CONSTRAINT [symbol]]PRIMARY KEY [index_type] (index_col_name,...) [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) ADD [FULLTEXT|SPATIAL] [INDEX|KEY] [index_name] (index_col_name,...) ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...)[reference_definition] ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] DROP [COLUMN] col_name DROP PRIMARY KEY DROP {INDEX|KEY} index_name DROP FOREIGN KEY fk_symbol DISABLE KEYS ENABLE KEYS RENAME [TO] new_tbl_name ORDER BY col_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] DISCARD TABLESPACE IMPORT TABLESPACE table_option ...

| | | | | | | | | | | | | | | | | | | | | |

index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH}

CREATE DATABASECREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name

| [DEFAULT] COLLATE collation_name

A cura della Prof.ssa Capone Maria

-2-

Sintesi della sintassi di MySql CREATE INDEX

Corso di Informatica ABACUS

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH}

CREATE TABLECREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_option ...]

Oppure:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_option ...] select_statement

Oppure:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) } create_definition: column_definition | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | {INDEX|KEY} [index_name] [index_type] (index_col_name,...) | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | CHECK (expr) column_definition: col_name data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition] index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH} reference_definition: REFERENCES tbl_name [(index_col_name,...)] [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option]

A cura della Prof.ssa Capone Maria

-3-

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION select_statement: [IGNORE | REPLACE] [AS] SELECT ... (una forma del comando Select) data_type: BIT[(length)] | TINYINT[(length)] [UNSIGNED] [ZEROFILL] | SMALLINT[(length)] [UNSIGNED] [ZEROFILL] | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] | INT[(length)] [UNSIGNED] [ZEROFILL] | INTEGER[(length)] [UNSIGNED] [ZEROFILL] | BIGINT[(length)] [UNSIGNED] [ZEROFILL] | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] | DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] | NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL] | DATE | TIME | TIMESTAMP | DATETIME | YEAR | CHAR(length)[CHARACTER SET charset_name] [COLLATE collation_name] | VARCHAR(length)[CHARACTER SET charset_name] [COLLATE collation_name] | BINARY(length) | VARBINARY(length) | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB | TINYTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name] | TEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name] | MEDIUMTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name] | LONGTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name] | ENUM(value1,value2,value3,...)[CHARACTER SET charset_name][COLLATE collation_name] | SET(value1,value2,value3,...)[CHARACTER SET charset_name][COLLATE collation_name] | spatial_type

table_option: {ENGINE|TYPE} [=] engine_name | AUTO_INCREMENT [=] value | AVG_ROW_LENGTH [=] value | [DEFAULT] CHARACTER SET charset_name | CHECKSUM [=] {0 | 1} | COLLATE collation_name | COMMENT [=] 'string' | CONNECTION [=] 'connect_string' | DATA DIRECTORY [=] 'absolute path to directory' | DELAY_KEY_WRITE [=] {0 | 1} | INDEX DIRECTORY [=] 'absolute path to directory' | INSERT_METHOD [=] { NO | FIRST | LAST } | MAX_ROWS [=] value | MIN_ROWS [=] value | PACK_KEYS [=] {0 | 1 | DEFAULT} | PASSWORD [=] 'string' | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} | UNION [=] (tbl_name[,tbl_name]...)

DROP DATABASEDROP {DATABASE | SCHEMA} [IF EXISTS] db_name A cura della Prof.ssa Capone Maria

-4-

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

DROP INDEXDROP INDEX index_name ON tbl_name

DROP TABLEDROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]

RENAME TABLERENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...

A cura della Prof.ssa Capone Maria

-5-

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

DML (Data Manipulation Language)DELETE Sintassi per tabella singola: Con questa sintassi, il comando DELETE cancella righe da tbl_name e restituisce il numero di righe cancellate.DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

Sintassi per tabella multipla: Con questa sintassi , DELETE cancella da ogni tbl_name le righe che soddisfano le condizioni; in questo caso non si possono usare ORDER BY e LIMIT.DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition]

Oppure:DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition]

DODO esegue le

espressioni ma non restituisce alcun risultato; utile principalmente con funzioni che hanno effetti collaterali, come RELEASE_LOCK().

DO expr [, expr] ...

HANDLER Il comando HANDLER fornisce un accesso diretto allinterfaccia dellengine della memorizzazione della tabella; disponibile per MyISAM e InnoDB.HANDLER tbl_name OPEN [ AS alias ] HANDLER tbl_name READ index_name { = | >= | SELECT student_name, AVG(test_score) -> FROM student -> GROUP BY student_name; BIT_AND(expr)

Restituisce lAND bit a bit fra tutti i bits inexpr. Il calcolo realizzato con la precisione di 64-bit (BIGINT). Restituisce il valore 18446744073709551615 se non sono state trovate righe (valore di un unsigned BIGINT con tutti i bits settati a 1) BIT_OR(expr)

Restituisce lOR bit a bit di tutti i bits in expr. Il calcolo realizzato con la precisione di 64-bit (BIGINT). Restituisce 0 se non sono state trovate righe. BIT_XOR(expr)

Restituisce lo XOR bit a bit fra tutti i bits in expr. Il calcolo realizzato con la precisione di 64-bit (BIGINT). Restituisce il valore 0 se non sono state trovate righe. COUNT(expr)

Restituisce il numero di valori non-NULL nelle righe selezionate con un comando SELECT. Il risultato un valore BIGINT. COUNT() restituisce 0 se non sono state individuate righe.mysql> SELECT student.student_name,COUNT(*) -> FROM student,course -> WHERE student.student_id=course.student_id -> GROUP BY student_name;

COUNT(DISTINCT expr,[expr...])

Restituisce il numero di valori diversi non-NULL. COUNT(DISTINCT) restituisce 0 se non sono state trovate righe.mysql> SELECT COUNT(DISTINCT results) FROM student; A cura della Prof.ssa Capone Maria

- 10 -

Sintesi della sintassi di MySql GROUP_CONCAT(expr)

Corso di Informatica ABACUS

Questa funzione restituisce un stringa che il risultato della concatenazione di valori non-NULL da un gruppo. Restituisce NULL se non vi sono valori non-NULL. L sintassi completa :GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])

mysql> SELECT student_name, -> GROUP_CONCAT(test_score) -> FROM student -> GROUP BY student_name;

Oppure

mysql> SELECT student_name,-> -> -> -> GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ') FROM student GROUP BY student_name;

MIN([DISTINCT] expr), MAX([DISTINCT] expr)

Restituiscono il valore minimo o maximum value of expr. MIN() and MAX() possono avere una stringa come parametro. Restituiscono NULL se non ci sono righe selezionate.mysql> SELECT student_name, MIN(test_score), MAX(test_score) -> FROM student -> GROUP BY student_name; STD(expr) STDDEV(expr)

Restituiscono lo scarto quadratico medio di expr; estensione dello standard SQL. Restituisce NULL se non ci sono righe selezionate. STDDEV_POP(expr)

Restituisce lo scarto quadratico medio di expr (la radice quadrata di VAR_POP()). STDDEV_POP() restituisce NULL se non ci sono righe selezionate. STDDEV_SAMP(expr)

Restituisce la deviazione standard campione di expr (radice quadrata di VAR_SAMP()). SUM([DISTINCT] expr)

Restituisce la somma di expr. Se linsieme restituito non ha righe, SUM() ritorna NULL. La parola chiave DISTINCT pu essere usata in MySQL 5.0 per sommare solo i valori distinti di expr. VAR_POP(expr)

Restituisce la varianza standard di expr. Considera le righe come lintero campione in modo che il numero di righe compare al denominatore. Questa funzione stata inserita in MySQL 5.0.3. Prima di 5.0.3, si pu usare VARIANCE(), che equivalente ma non standard SQL.A cura della Prof.ssa Capone Maria

- 11 -

Sintesi della sintassi di MySql VAR_SAMP(expr)

Corso di Informatica ABACUS

Restituisce la varianza campione di expr, cio il denominatore il numero di righe meno 1. Questa funzione stata aggiunta in MySQL 5.0.3. VARIANCE(expr)

Restituisce la varianza standard di expr. E una estensione allo standard SQL.

Comandi di Amministrazione DatabaseCREATE USER Questo comando crea un nuovo account MySQL. Per usarlo si devono avere il privilegio globale CREATE USER o il privilegio INSERT per il database mysql.CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...

DROP USERIl comando DROP USER rimuove uno o pi accounts MySQL. DROP USER user [, user] ...

GRANT Il comando GRANT consente agli amministratori di sistema di creare account utente MySQL e di concedere permessi agli accountGRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... [REQUIRE NONE | [{SSL| X509}][CIPHER 'cipher' [AND]] [ISSUER 'issuer' [AND]] [SUBJECT 'subject']] [WITH with_option [with_option] ...] object_type = TABLE | FUNCTION

| PROCEDURE

with_option = GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count

RENAME USER Il comando RENAME USER rinomina un account esistente MySQLRENAME USER old_user TO new_user [, old_user TO new_user] ... A cura della Prof.ssa Capone Maria

- 12 -

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

REVOKE Il comando REVOKE consente agli amministratori del sistema di revocare i privilegi ad accounts di MySQLREVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} FROM user [, user] ... REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

SET PASSWORD Questo comando consente di assegnare una password ad un account utente MySQL esistente.SET PASSWORD [FOR user] = PASSWORD('some password')

priv_type

per i comandi GRANT e REVOKE Privilege Meaning Sets all simple privileges except GRANT OPTION Enables use of ALTER TABLE Enables stored routines to be altered or dropped Enables use of CREATE TABLE Enables creation of stored routines Enables use of CREATE TEMPORARY TABLE Enables use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES. Enables use of CREATE VIEW Enables use of DELETE Enables use of DROP TABLE Enables the user to run stored routines Enables use of SELECT ... INTO OUTFILE and LOAD DATA INFILE Enables use of CREATE INDEX and DROP INDEX Enables use of INSERT Enables use of LOCK TABLES on tables for which you have the SELECT privilege Enables use of SHOW FULL PROCESSLIST Not implemented Enables use of FLUSH Enables the user to ask where slave or master servers are Needed for replication slaves (to read binary log events from the master) Enables use of SELECTSHOW DATABASES

ALL [PRIVILEGES] ALTER ALTER ROUTINE CREATE CREATE ROUTINE CREATE TEMPORARY TABLES CREATE USER CREATE VIEW DELETE DROP EXECUTE FILE INDEX INSERT LOCK TABLES PROCESS REFERENCES RELOAD REPLICATION CLIENT REPLICATION SLAVE SELECT SHOW DATABASES SHOW VIEW

shows all databases

Enables use of SHOW CREATE VIEW - 13 -

A cura della Prof.ssa Capone Maria

Sintesi della sintassi di MySqlSHUTDOWN SUPER UPDATE USAGE GRANT OPTION

Corso di Informatica ABACUS

Enables use of mysqladmin shutdown Enables use of CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL statements, the mysqladmin debug command; allows you to connect (once) even if max_connections is reached Enables use of UPDATE Synonym for no privileges Enables privileges to be granted

MySQL Transactional e Comandi di Locking

START TRANSACTION, COMMIT, and ROLLBACKSTART TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] SET AUTOCOMMIT = {0 | 1}

LOCK TABLES and UNLOCK TABLES LOCK TABLES blocca le tabelle (ma non le viste) per il thread corrente. Se qualche tabella bloccata da altri threads, essa blocca fino a che tutti i locks possono essere acquisiti. UNLOCK TABLES rilascia tutti i locks mantenuti dal thread correnteLOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ... UNLOCK TABLES

SET TRANSACTION Questo comando setta il livello di isolamento della transazione per la successiva transazione, globalmente o per la sessione correnteSET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }

A cura della Prof.ssa Capone Maria

- 14 -

Sintesi della sintassi di MySql

Corso di Informatica ABACUS

TIPI DI DATO IN MySQLTIPI NUMERICI MySQL supporta tutti i tipi numerici ANSI/ISO SQL 92. Questi tipi includono sia i tipi di dato numerici esatti (NUMERIC, DECIMAL, INTEGER e SMALLINT) sia i tipi di dato numerici approssimati (FLOAT, REAL, e DOUBLE). La keyword INT un sinonimo di INTEGER, e la keyword DEC un sinonimo di DECIMAL. Identificatore di tipoBIT[(M)]

DescrizioneUn tipo campo di bit. M indica il numero di bits per valore, da 1 a 64. Il valore di default 1 se M omesso. Questo tipo di dato stato aggiunto in MySQL 5.0.3 per MyISAM, e esteso in 5.0.5 a MEMORY, InnoDB, e BDB. Prima di 5.0.3, BIT un sinonimo di TINYINT(1). Very small integer (1 Byte) Questi tipi sono sinonimi per TINYINT(1). Un valore zero considerato false; valori nonzero sono considerati true Un intero small (2 Byte) Un intero medium-size (3 Byte) Un intero normal-size (4 Byte) Questo tipo un sinonimo di INT. A large integer (8 Byte)

Campo di variabilit

TINYINT[(M)] [UNSIGNED] [ZEROFILL] BOOL, BOOLEAN

-128 127 Unsigned: 0 255

SMALLINT[(M)] [UNSIGNED] [ZEROFILL] MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] INT[(M)] [UNSIGNED] [ZEROFILL]

-32768 32767 Unsigned: 0 65535 -8388608 8388607 Unsigned: 0 16777215 -2147483648 2147483647 Unsigned: 0 4294967295

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

FLOAT[(M,D)] [ZEROFILL]

A single-precision floating-point number (4 Byte) M il numero totale di cifre decimali D il numero di cifre che seguono il punto decimale. Se M e D sono omessi, i valori sono memorizzati secondo i limiti consentiti dallhardware. Un numero floating-point single-precision ha una precisione di 7 posti decimali.

-9223372036854775808 9223372036854775807 Unsigned: 0 18446744073709551615 -3.402823466E+38 -1.175494351E-38

A cura della Prof.ssa Capone Maria

- 15 -

Sintesi della sintassi di MySql Identificatore di tipoDOUBLE[(M,D)] [ZEROFILL]

Corso di Informatica ABACUS DescrizioneA double-precision floating-point number (8 Byte) Un numero floating-point double-precision ha una precisione di 15 posti decimali. Numero floating point; p rappresenta la precisione in bits, ma MySQL usa questo valore solo per determinare se usare FLOAT o DOUBLE per il tipo di dato risultante. Se p varia da 0 a 24, il tipo di dato diventa FLOAT senza valori M o D. Se p varia da 25 a 53, il tipo di dato diventa DOUBLE senza valori M o D. Il renge della colonna risultato lo stesso sia per la precisione singola FLOAT che per la precisione doppia DOUBLE. La sintassi FLOAT(p) fornita per compatibilit con ODBC Sinonimi di Double Per MySQL 5.0.3 e oltre: Un numero fixed-point packed. M il numero totale di cifre decimali (precision) e D il numero di cifre dopo il punto decimale (scale). Il punto decimale e (per i numeri negativi) il segno - non sono contati in M. Se D 0, i valori non hanno punto decimale o parte frazionaria. Il numero massimo di cifre (M) per DECIMAL 65 (64 from 5.0.3 to 5.0.5). Il numero massimo supportato per i dacimali (D) 30. Se D omesso, il default 0. Se M omesso, il default 10. UNSIGNED, se specificato, elimina i valori negativi. Tutti i calcoli di base (+, -, *, /) con colonne DECIMAL sono fatti con una precisione di 65 cifre. Prima di MySQL 5.0.3: Numero unpacked fixed-point Si comporta come un campo CHAR; unpacked significa che il numero memorizzato come una stringa, con luso di un carattere per ogni cifra del valore; M il numero totale di cifre e D il numero di cifre dopo il punto decimale. il punto decimale ed il segno - per i numeri negativi non sono contati in M, sebbene lo spazio per essi sia riservato. Il tipo DECIMAL (come il NUMERIC) implementato in MySQL allo stesso modo, secondo lo standard SQL92; sono usati per valori per cui importante preservare lesatta precisione (ad es. dati monetari). (M + 2 Byte) Il comportamento usato dal server per le colonne DECIMAL dipende dalla versione di MySQL usato per creare la tabella. Se il server MySQL 5.0.3 o pi alto, ma si hanno colonne DECIMAL in tabelle che erano state create prima della 5.0.3, a queste colonne ancora applicato il vecchio comportamento. Per convertire le tabelle al formato DECIMAL pi nuovo, si deve usare mysqldump per ricaricare. Sinonimi per DECIMAL

Campo di variabilit-1.7976931348623157E+308 -2.2250738585072014E-308 FLOAT senza argomento o con un argumento