和所有的计算机语言一样,SQL语言也有自己的数据类型,这些数据类型主要用于在创建基本表(关系)的时候指定基本表的每个列(属性)的类型。这些数据类型主要可以分成字符串类型、数值类型、时间/日期类型等。
字符串类型又可以分为定长字符串类型和变长字符串类型,如表2-1所示。
表2-1 字符串类型说明
| 名称 | 概述 |
| CHAR(n) | n指定了定长字符串的长度。如果输入的字符串长度少于n,则用空格在字符串的尾部补齐到n个字符;如果输入的字符串长度大于n,则会从右边自动截断,到仅剩n个字符为止 |
| VARCHAR(n) | n指定了字符串的最大长度,输入的字符串不会有补齐操作,以变长的形式输出 |
数值类型又可以分成精确数值类型和近似数值类型,精确数据类型包括一系列的整数类型,而近似数值类型则包括浮点类型等(需要注意的是不同的数据库对于数据类型的支持会有细微的差别),如表2-2所示。
表2-2 数值类型说明
| 名称 | 概述 |
| SMALLINT | 整型,长度是2字节,取值范围是[-32768,32768] |
| INTERGER | 整型,长度是4字节,取值范围是[-2147483648,2147483647] |
| BIGINT | 整型,长度是8字节,取值范围在-2^63到2^63-1之间,即[-9223372036854775808,9223372036854775807] |
| FLOAT(p) | 浮点类型,其中p代表的是浮点类型中小数点前后的总位数之和 |
| REAL | 单精度浮点类型,长度为4个字节,取值范围是 [-3.40E+38,3.40E+38] |
| NUMERIC(p,s) | p:小数点前后的总位数之和; s:小数点后的位数; p和s的取值范围取决于不同的数据库的实现 |
| DECIMAL(p,s) | 和NUMERIC类似,但数值精度不受p和s的限制,p和s决定了DECIMAL精度的下限 |
| DOUBLE PRECISION | 双精度类型,长度为8个字节,取值范围是[-1.79E+308,1.79E+308] |
日期/时间类型包括日期和时间类型,如表2-3所示。
表2-3 日期类型和时间类型说明
| 名称 | 概述 |
| DATE | 日期类型,日期类型由年、月、日组成,形如yyyy-mm-dd |
| TIMESTAMP(p) | 时间类型,时间类型由年、月、日、时、分、秒共同组成,形如yyyy-mm-dd hh:mm:ss,如果指定了精度p,则会保存秒的小数部分 |
另外还包括一些常用类型,如表2-4所示。
表2-4 常用类型说明
| 名称 | 概述 |
| BLOB/CLOB | 大对象类型,BLOB中保存的是二进制文件,CLOB中保存的是文本类型 |
| BOOLEAN | 布尔类型,可以取值为TRUE、FALSE、UNKNOWN,通常UNKNOWN和NULL值等价 |
当创建基本表的时候,会给基本表的每个列指定一个数据类型,一个基本表是一个数据实体。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




