MorkaLork Development

Interesting stuff I've picked up over the years...

PHP/MySql part 4: Data types

2009-04-17 07:32:18 | 265 views | sql data types datatypes char int table blob enum long

Here are some differant data types to use when creating a table:

Text Types:


NameDescription
CHAR(size) Holds a fixed length string (letters, numbers, special characters). Can hold up to 255 characters. The fixed size is set in the paranthesis.
VARCHAR(size) Holds string text(letters, numbers, special characters). Can hold 255 characters. The size is set within the paranthesis. (If set size is greater than 255 it will be converted to TEXT)
TINYTEXT Holds a string with a maximum of 255 characters.
TEXT Like varchar, can hold 65.535 characters
MEDIUM TEXT Holds a string, can hold 16,777,215 characters
LONGTEXT Like varchar, can hold 4,294,967,295 characters
BLOB BLOB = Binary Large OBjects. Holds up to 65.535 bytes of data.
MEDIUMBLOB BLOB = Binary Large OBjects. Holds up to 16,777,215 bytes of data.
LONGBLOB BLOB = Binary Large OBjects. Holds up to 4,294,967,295 bytes of data.
ENUM(x,y,z,etc.) Let you enter a list of possible values. You can list up to 65535 values in an ENUM list. If a value is inserted that is not in the list, a blank value will be inserted. Use: ENUM('A','B','C')
SET Similar to ENUM except that SET may contain up to 64 list items and can store more than one choice.


Number types:


NameDescription
TINYINT(size) -128 to 127 normal. 0 to 255 UNSIGNED*. The maximum number of digits may be specified in parenthesis.
SMALLINT(size) -32768 to 32767 normal. 0 to 65535 UNSIGNED*. The maximum number of digits may be specified in parenthesis.
MEDIUMINT(size) -8388608 to 8388607 normal. 0 to 16777215 UNSIGNED*. The maximum number of digits may be specified in parenthesis.
INT(size) -2147483648 to 2147483647 normal. 0 to 4294967295 UNSIGNED*. The maximum number of digits may be specified in parenthesis.
BIGINT(size) -9223372036854775808 to 9223372036854775807 normal. 0 to 18446744073709551615 UNSIGNED*. The maximum number of digits may be specified in parenthesis.
FLOAT(size,d) A small number with a floating decimal point. The maximum number of digits may be specified in the size parameter. The maximum number of digits to the right of the decimal point is specified in the d parameter.
DOUBLE(size,d) A large number with a floating decimal point. The maximum number of digits may be specified in the size parameter. The maximum number of digits to the right of the decimal point is specified in the d parameter.
DECIMAL(size,d) A DOUBLE stored as a string , allowing for a fixed decimal point. The maximum number of digits may be specified in the size parameter. The maximum number of digits to the right of the decimal point is specified in the d parameter.


Date types:


NameDescription
DATE() A date. Format: YYYY-MM-DD Note: The supported range is from '1000-01-01' to '9999-12-31'
DATETIME() *A date and time combination. Format: YYYY-MM-DD HH:MM:SS Note: The supported range is from '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP() *A timestamp. TIMESTAMP values are stored as the number of seconds since the Unix epoch ('1970-01-01 00:00:00' UTC). Format: YYYY-MM-DD HH:MM:SS Note: The supported range is from '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC
TIME() A time. Format: HH:MM:SS Note: The supported range is from '-838:59:59' to '838:59:59'
YEAR() A year in two-digit or four-digit format. Note: Values allowed in four-digit format: 1901 to 2155. Values allowed in two-digit format: 70 to 69, representing years from 1970 to 2069


*Even if DATETIME and TIMESTAMP return the same format, they work very differently. In an INSERT or UPDATE query, the TIMESTAMP automatically set itself to the current date and time. TIMESTAMP also accepts various formats, like YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, or YYMMDD.

This information has come from www.w3schools.com


Article comments

Feel free to comment this article using a facebook profile.

I'm using facebook accounts for identification since even akismet couldn't handle all the spam I receive every day.