参考文章:
1. http://hi.baidu.com/me19860115/blog/item/e9764fee500b25e4cf1b3e25.html
一、MySQL的数据类型
主要包括以下五大类:
整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
浮点数类型:FLOAT、DOUBLE、DECIMAL
字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期类型:Date、DateTime、TimeStamp、Time、Year
其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等
二、MYSQL数据类型的长度和范围
各数据类型及字节长度一览表:
数据类型 |
字节长度
|
范围或用法 |
Bit |
1 |
无符号[0,255],有符号[-128,127],备注:BIT和BOOL布尔型都占用1字节 |
TinyInt |
1 |
整数[0,255] |
SmallInt |
2 |
无符号[0,65535],有符号[-32768,32767] |
MediumInt |
3 |
无符号[0,2^24-1],有符号[-2^23,2^23-1]] |
Int |
4 |
无符号[0,2^32-1],有符号[-2^31,2^31-1] |
BigInt |
8 |
无符号[0,2^64-1],有符号[-2^63 ,2^63 -1] |
Float(M,D) |
4 |
单精度浮点数。这里的D是精度,如果D<=24则为默认的FLOAT,如果D>24则会自动被转换为DOUBLE型。 |
Double(M,D) |
8 |
双精度浮点。 |
Decimal(M,D) |
M+1或M+2 |
未打包的浮点数,用法类似于FLOAT和DOUBLE,如果在ASP中使用到Decimal数据类型,直接从数据库读出来的Decimal可能需要先转换成Float或Double类型后再进行运算。 |
Date |
3 |
以YYYY-MM-DD的格式显示,比如:2009-07-19 |
Date Time |
8 |
以YYYY-MM-DD HH:MM:SS的格式显示,比如:2009-07-19 11:22:30 |
TimeStamp |
4 |
以YYYY-MM-DD的格式显示,比如:2009-07-19 |
Time |
3 |
以HH:MM:SS的格式显示。比如:11:22:30 |
Year |
1 |
以YYYY的格式显示。比如:2009 |
Char(M) |
M |
定长字符串。
|
VarChar(M) |
M |
变长字符串,要求M<=255 |
Binary(M) |
M |
类似Char的二进制存储,特点是插入定长不足补0 |
VarBinary(M) |
M |
类似VarChar的变长二进制存储,特点是定长不补0 |
Tiny Text |
Max:255 |
大小写不敏感 |
Text |
Max:64K |
大小写不敏感 |
Medium Text |
Max:16M |
大小写不敏感 |
Long Text |
Max:4G |
大小写不敏感 |
TinyBlob |
Max:255 |
大小写敏感 |
Blob |
Max:64K |
大小写敏感 |
MediumBlob |
Max:16M |
大小写敏感 |
LongBlob |
Max:4G |
大小写敏感 |
Enum |
1或2 |
最大可达65535个不同的枚举值 |
Set |
可达8 |
最大可达64个不同的值 |
Geometry |
|
|
Point |
|
|
LineString |
|
|
Polygon |
|
|
MultiPoint |
|
|
MultiLineString |
|
|
MultiPolygon |
|
|
GeometryCollection |
|
|
三、使用建议
1、在指定数据类型的时候一般是采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。
2、不需要把数据表设计的太过复杂,功能模块上区分或许对于后期的维护更为方便,慎重出现大杂烩数据表
3、数据表和字段的起名字也是一门学问
4、设计数据表结构之前请先想象一下是你的房间,或许结果会更加合理、高效
5、数据库的最后设计结果一定是效率和可扩展性的折中,偏向任何一方都是欠妥的
分享到:
相关推荐
### MySQL版中国省市区数据表的关键知识点 #### 1. 数据表设计与目的 - **设计目的**:MySQL版中国省市区数据表旨在为开发者提供一个结构化且易于查询和管理的数据库模型,以便在应用中高效使用中国行政区划信息。 ...
以下是从标题“MySQL常用命令一览”及部分描述内容中提取的关键知识点: ### 一、连接MySQL #### 1. 连接本地MySQL服务器 - **命令格式**:`mysql -h 主机地址 -u 用户名 -p [密码]` - **示例**:假设用户名为`...
MySQL是一种广泛使用的开源数据库,支持多种数据类型和索引,能够高效地处理大量数据查询和更新操作。通过SQL(结构化查询语言)语句,我们可以轻松地进行数据插入、查询、更新和删除操作。 例如,如果我们想要找出...
Oracle错误一览表是数据库管理员(DBA)和开发者在处理Oracle数据库系统时的重要参考资料。Oracle作为全球广泛使用的数据库管理系统,其复杂性和深度意味着在日常操作中可能会遇到各种错误和异常情况。这些错误信息...
1. 表定义:定义各个级别的行政区域表,每个表可能有ID(唯一标识)、父级ID(表示上级行政区域的ID)、区域名称、级别类型等字段。 2. 数据插入:通过INSERT语句将具体的数据填充到对应的表中,如省级数据插入省份...
- **新功能一览**:列举了MySQL 8.0新增加的特性,如窗口函数的支持、JSON数据类型的增强等,这些功能极大地扩展了MySQL的应用场景。 #### 五、MySQL 8.0 的差异性 - **标准SQL扩展**:MySQL在标准SQL基础上添加了...
本篇文章将详细探讨“Oracle错误情况一览表”,并提供相关源码和工具来帮助用户理解和解决这些问题。 首先,Oracle错误通常以一种称为“Oracle错误代码”或“ORA-错误”的形式出现,这些错误代码是由三位数字组成的...
9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章 第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 ...
例如,如果使用的是MySQL,可以设置为`org.hibernate.dialect.MySQLDialect`。 2. **hibernate.show_sql**:当设置为`true`时,Hibernate会在控制台上打印出执行的所有SQL语句,这对于调试和理解查询行为非常有用。...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...汽车品牌、车型、车系数据(带excel表格+sql+logo).zip
9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章 第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 ...
- MySQL支持多种数据类型,主要分为数值类型、字符串类型、日期/时间类型等。 - **2.4.2 数值(整数)的使用:** - 整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等。 - 不同类型的整数有不同的存储...
1. 数据类型: - 在Oracle中,数字类型通常使用`NUMBER`,而在MySQL中,整型对应`INT`,浮点型对应`DECIMAL`或`FLOAT`。 - `VARCHAR2`在Oracle中用于存储可变长度的字符串,而在MySQL中对应的类型是`VARCHAR`。 -...
9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章 第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 ...
导入数据库前,需要了解并选择合适的数据库系统(如MySQL、PostgreSQL、MongoDB等),设计合理的数据表结构,将这些信息规范化,确保数据的一致性和完整性。 2. 数据清洗:在实际操作中,数据可能存在格式不统一、...
- **功能**: 获取文件扩展名,并验证是否属于允许的类型。 - **参数**: - `$file_name`: 文件名。 - `$allow_type`: 允许的扩展名数组,默认为空。 **read_static_cache($cache_name)** - **功能**: 读取静态缓存...
12. 查看 Mysql 当前的数据库一览的命令是 show databases。 13. 查看表结构的命令是 desc 表名。 14. int 类型字段需要占 4bytes 存储空间。 15. DML 语句包括 SELECT 命令、INSERT 命令、UPDATE 命令、DELETE ...
数据库备份管理子模块(包括数据库的备份和还原),记帐模块(包括收入/支出记录、存款/取款记录、资金共用、资产记帐),债务模块(包括借入/借出记录,借入/借出归还),报表模块(包括日常收入/支出一览表、存...
#### 5.1 数据库表一览表 这一表格罗列了数据库中各表的基本信息,包括表ID、英文名称、简要说明以及对应的数据库管理系统(DBMS)名称与版本。例如,职员信息表被标识为“CS_ID01”,其简要说明为“职员信息表”。 ...