目录
文本类型类型:
CHAR(size)
VARCHAR(size)
TEXT
TINYTEXT, MEDIUMTEXT, LONGTEXT
BLOB, MEDIUMBLOB, LONGBLOB
ENUM
在mysql中,常用数据类型有三种:
1、文本类型;
2、数字类型;
3、日期/时间类型;
文本类型类型:
【常用的文本类型:char(size)、varchar(size)】
数据类型 | 描述 |
---|---|
CHAR(size) =>char | 保存固定长度的字符串(可包含字母、数字以及特殊字 符)。在括号中指定字符串的长度。最多 255 个字符。 |
VARCHAR(size)=>varchar | 保存可变长度的字符串(可包含字母、数字以及特殊字 符)。在括号中指定字符串的最大长度。最多 255 个字 符。如果size>255,则类型会自动转换为TEXT类型。 |
TEXT | 存放最大长度为 65,535 个字符的字符串。 |
TINYTEXT | 存放最大长度为 255 个字符的字符串。 |
MEDIUMTEXT | 存放最大长度为 16,777,215 个字符的字符串。 |
LONGTEXT | 存放最大长度为 4,294,967,295 个字符的字符串。 |
BLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。 |
MEDIUMBLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。 |
LONGBLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。 |
ENUM | 枚举类型 |
CHAR(size)
应用:用于存储固定长度的字符串,如国家代码、邮政编码等。
举例:存储国家代码(通常为2个字符)
CREATE TABLE countries ( country_code CHAR(2) NOT NULL, country_name VARCHAR(255) NOT NULL
); INSERT INTO countries (country_code, country_name) VALUES ('US', 'United States');
VARCHAR(size)
应用:用于存储可变长度的字符串,如姓名、地址等。
举例:存储用户的全名
CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, full_name VARCHAR(255) NOT NULL
); INSERT INTO users (full_name) VALUES ('John Doe');
TEXT
应用:用于存储大量的文本数据,如文章、评论等。
举例:存储博客文章
CREATE TABLE blog_posts ( post_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT NOT NULL
); INSERT INTO blog_posts (title, content) VALUES ('My First Blog Post', 'This is the content of my first blog post.');
TINYTEXT, MEDIUMTEXT, LONGTEXT
应用:与TEXT类似,但用于存储不同大小的大量文本数据。
举例:使用MEDIUMTEXT存储长文章或文档
CREATE TABLE documents ( doc_id INT AUTO_INCREMENT PRIMARY KEY, doc_name VARCHAR(255) NOT NULL, doc_content MEDIUMTEXT NOT NULL
); -- 插入数据会很长,这里省略具体内容
INSERT INTO documents (doc_name, doc_content) VALUES ('My Long Document', '...');
BLOB, MEDIUMBLOB, LONGBLOB
应用:用于存储二进制大对象,如图片、音频、视频等文件内容。
举例:存储用户头像
CREATE TABLE user_profiles ( user_id INT NOT NULL, avatar_image BLOB NOT NULL, FOREIGN KEY (user_id) REFERENCES users(user_id)
); -- 插入BLOB数据通常需要使用编程语言的数据库API,这里只是示意
-- INSERT INTO user_profiles (user_id, avatar_image) VALUES (1, <binary_data>);
ENUM
应用:用于存储预定义的值集合中的一个值,如性别、颜色等。
举例:存储用户的性别
CREATE TABLE users_enum ( user_id INT AUTO_INCREMENT PRIMARY KEY, gender ENUM('Male', 'Female', 'Other') NOT NULL
); INSERT INTO users_enum (gender) VALUES ('Male');