在MySQL中,使用CREATE TABLE
語句創(chuàng)建一個新表時,可以為每個列定義數(shù)據(jù)類型。以下是一些常見的數(shù)據(jù)類型及其用法:
-
整數(shù)類型:
- TINYINT:1字節(jié)有符號整數(shù),范圍從-128到127(有符號)或0到255(無符號)。
- SMALLINT:2字節(jié)有符號整數(shù),范圍從-32,768到32,767(有符號)或0到65,535(無符號)。
- MEDIUMINT:3字節(jié)有符號整數(shù),范圍從-8,388,608到8,388,607(有符號)或0到16,777,215(無符號)。
- INT:4字節(jié)有符號整數(shù),范圍從-2,147,483,648到2,147,483,647(有符號)或0到4,294,967,295(無符號)。
- BIGINT:8字節(jié)有符號整數(shù),范圍從-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符號)或0到18,446,744,073,709,551,615(無符號)。
-
浮點類型:
- FLOAT:單精度浮點數(shù),4字節(jié),范圍約為-3.4E+38到3.4E+38,精度為7位有效數(shù)字。
- DOUBLE:雙精度浮點數(shù),8字節(jié),范圍約為-1.8E+308到1.8E+308,精度為16位有效數(shù)字。
- DECIMAL:定點數(shù),可以指定精度和小數(shù)位數(shù)。例如,DECIMAL(10,2)表示最多有10位數(shù)字,其中2位小數(shù)。
-
字符串類型:
- CHAR:固定長度的字符串,長度由括號內(nèi)的數(shù)字指定。例如,CHAR(10)表示最多存儲10個字符的字符串。
- VARCHAR:可變長度的字符串,最大長度由括號內(nèi)的數(shù)字指定。例如,VARCHAR(255)表示最多存儲255個字符的字符串。
- TEXT:長文本,最大長度為65,535個字符。
- MEDIUMTEXT:中等長度的文本,最大長度為16,777,215個字符。
- LONGTEXT:非常長的文本,最大長度為4,294,967,295個字符。
-
日期和時間類型:
- DATE:日期,格式為’YYYY-MM-DD’。
- TIME:時間,格式為’HH:MM:SS’。
- DATETIME:日期和時間,格式為’YYYY-MM-DD HH:MM:SS’。
- TIMESTAMP:時間戳,從’1970-01-01 00:00:01’ UTC到’2038-01-19 03:14:07’ UTC。
-
二進制數(shù)據(jù)類型:
- BINARY:固定長度的二進制字符串。
- VARBINARY:可變長度的二進制字符串。
- BLOB:二進制大對象,可以存儲大量的二進制數(shù)據(jù)。
-
其他類型:
- ENUM:枚舉值,必須在創(chuàng)建表時定義一個枚舉列表,列中的值必須匹配列表中的一個。
- SET:集合值,必須在創(chuàng)建表時定義一個集合列表,列中的值可以是列表中的一個或多個。
以下是一個創(chuàng)建表的示例,其中包含了上述的一些數(shù)據(jù)類型:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age TINYINT,
salary DECIMAL(10, 2),
join_date DATE,
job_title ENUM('Manager', 'Developer', 'Designer'),
notes TEXT
);
在這個示例中,我們創(chuàng)建了一個名為employees
的表,其中包含了員工的ID、名字、姓氏、年齡、薪水、加入日期、職位和備注等信息。