自己整理的SQL数据类型

来源:互联网 发布:淘宝领卷app 编辑:程序博客网 时间:2024/06/05 08:26

PostgreSQL

 

除了postgresql内置的变量类型外,常用的还有 record ,表示一条记录。 

 

数字类型

 

子类型

标准名

描述

small integer

smallint

2字节的符号型整数,可以存储-2^15到2^15-1的数字

integer

int

4字节的符号型整数,可以存储-2^31到2^31-1的数字

big integer

bigint

8 字节大范围的整数-2^63 到 2^63-1

float

float(n)

支持最少精度为n,存储为最多8字节的浮点数。

float8

real

8字节双精度不准确的浮点数字

numeric

decimal

numeric(p,s)

decimal(p,s)

不像float,这始终是一个确切的数字,但工作效率比普通浮点数字低。末尾四舍五入,据太大会插入失败

double precision

double

8 字节变精度,不精确15 位十进制数字精度

serial

serial

4 字节自增整数1 到 2^31-1

big serial

bigserial

8 字节大范围的自增整数1 到 2^63-1

 

字符类型

 

名字

描述

"char"

1 字节;单字节内部类型

name

64 字节;用于对象名的内部类型

character varying(n)

varchar(n)

变长,有长度限制

character(n)

char(n)

定长,不足补空白

text

变长,无长度限制

 

时间类型

 

time ,timestamp 和interval 接受一个可选的精度值 (p),这个精度值声明在秒域后面小数点之后保留的位数。 缺省的时候在精度上是没有明确的绑定的, p 有用的范围对 timestamp和 interval 是从 0 到大约 6。

名字

描述

精度

timestamp [without time zone]

8 字节;包括日期和时间;4713 BC到5874897 AD

1ms / 14 位

timestamp with time zone

8 字节;日期和时间,带时区;4713 BC到5874897 AD

1ms / 14 位

interval

12 字节;时间间隔;-178000000 到178000000 年

1ms / 14 位

date

4 字节;只用于日期;4713 BC到32767 AD

1 天

time [without time zone]

8 字节;只用于一日内时间;00:00:00到24:00:00

1ms / 14 位

Time with time zone

12 字节;一日时间; 00:00:00+1359到24:00:00-1359

1ms / 14 位

 

特殊类型

 

注:postgresql也允许你使用sql命令create type在数据库中建立你自己的类型。这通常不需要,而且在一定程度上,它是postgresql独有的。

名字

描述

表现形式

point

16 字节;空间中一点

(x,y)

line

32 字节;(无穷)直线(未完全实现)

((x1,y1),(x2,y2))

lseg

32 字节;有限线段

((x1,y1),(x2,y2))

box

32 字节;长方形

((x1,y1),(x2,y2))

path

16+16n 字节;闭合路径(与多边形类似)

((x1,y1),...)

path

16+16n 字节;开放路径

[(x1,y1),...]

polygon

40+16n 字节;多边形(与闭合路径相似)

((x1,y1),...)

circle

24 字节;圆(圆心和半径)

<(x,y),r>(圆心与半径)

cidr或inet

一个ipv4的地址,录入192.168.0.1

macaddr

以mac地址(以太网卡物理地址)

 

数组、复合类型

 

postgresql样式的数组:int[]

不需要定义元素的个数。即使定义了个数,也不会强制要求存储的个数。

sql99样式的数组:int  array[7]

在sql99标准中,必须指出元素的个数。

复合类型:

creat  type  名字  as(

子名1  类型1,

子名2 类型2…)

 

SQL Server

 

字符串

 

数据类型

描述

char(n)

固定长度的字符串。最多 8,000 个字符。

varchar(n)

可变长度的字符串。最多 8,000 个字符。

Varchar(max)

可变长度的字符串。最多 2^30 个字符。

Text

可变长度的字符串。最多 2gb 字符数据。

nchar(n)

固定长度的 unicode 数据。最多 4,000 个字符。

Nvarchar(n)

可变长度的 unicode 数据。最多 4,000 个字符。

Nvarchar(max)

可变长度的 unicode 数据。最多 2^29 个字符。

Ntext

可变长度的 unicode 数据。最多 2gb 字符数据。

 

数字类型

 

数据类型

描述

字节

tinyint

允许从0到255的所有数字。

1

smallint

允许从-2^15到2^15-1的所有数字。

2

int

允许从-2^31到2^31-1的所有数字。

4

bigint

允许介于-2^63和2^63-1之间的所有数字。

8

decimal(p,s)
numeric(p,s)

固定精度和比例的,-10^38+1到10^38-1间的数字。p:整体最大位数。p是1-38默认18。s:小数点右侧最大位数。s是0-p默认0。

5-17

smallmoney

介于-(2^31)÷10000和(2^31-1)÷10000之间的货币数据。

4

money

介于-(2^63)÷10000和(2^63-1)÷10000之间的货币数据。

8

float(n)

-1.79E+308到1.79E+308的浮动精度数字数据。n指示保存4字节还是8字节。float(24)保存4,float(53)保存8。n的默认值是53。

4/8

real

从-3.40E+38到3.40E+38的浮动精度数字数据。

4

 

日期时间类型

 

数据类型

描述

存储

datetime

从 1753 .1 .1 到 9999 .12 .31 ,精度为 3.33 毫秒。

8

datetime2

从 1753 .1 .1 到 9999 .12 .31 ,精度为 100 纳秒。

6-8

smalldatetime

从 1900 .1 .1 到 2079 . 6 .6 ,精度为 1 分钟。

4

date

仅存储.期。从 0001 .1 .1 .到 9999 .12 .31 。

3

time

仅存储时间。精度为 100 纳秒。

3-5

datetimeoffset

与 datetime2 相同,外加时区偏移。

8-10

timestamp

存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。 

 

 

其他数据类型

 

数据类型

描述

bit

允许 0、1 或 null

binary(n)

固定长度的二进制数据。最多 8,000 字节。

Varbinary(n)

可变长度的二进制数据。最多 8,000 字节。

Varbinary(max)

可变长度的二进制数据。最多 2gb 字节。

Image

可变长度的二进制数据。最多 2gb。

sql_variant

存储最多 8,000 字节不同数据类型的数据,除text、ntext 和 timestamp。

Uniqueidentifier

存储全局标识符 (guid)。

Xml

存储 xml 格式化数据。最多 2gb。

Cursor

存储对用于数据库操作的指针的引用。

Table

存储结果集,供稍后处理。

 

Microsoft Access 数据类型

 

数据类型

描述

存储

text

用于文本或文本与数字的组合。最多255个字符。

 

memo

memo用于更大数量的文本。最多存储65,536个字符。注释:无法对memo字段进行排序。不过它们是可搜索的。

 

byte

允许0到255的数字。

1

integer

允许介于-2^15到2^15-1之间的数字。

2

long

允许介于-2^31与2^31-1之间的全部数字

4

single

单精度浮点。处理大多数小数。

4

double

双精度浮点。处理大多数小数。

8

currency

货币。支持15位的元,加4位小数。提示:可以选择使用哪国货币。

8

autonumber

autonumber字段自动为每条记录分配数字,通常从1开始。

4

date/time

用于日期和时间

8

yes/no

逻辑字段,可以显示为yes/no、true/false或on/off。在代码中,使用true/false(等价于1/0)。注释:yes/no字段中不允许null值

1bit

OLEobject

可以存储图片、音频、视频或其他blobs(binarylargeobjects)

<1g

hyperlink

包含指向其他文件的链接,包括网页。

 

lookupwizard

允许你创建一个可从下列列表中进行选择的选项列表。

4

 

MySQL 数据类型

 

text类型

 

数据类型

描述

char(n)

保存固定长度的字符串。在括号中指定字符串的长度。最多 255 个字符。

varchar(n)

保存可变长度的字符串。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 text 类型。

tinytext

存放最大长度为 255 个字符的字符串。

text

存放最大长度为 2^16-1 个字符的字符串。

BLOB

用于 blobs (binary large objects)。存放最多 2^16-1 字节的数据。

mediumtext

存放最大长度为 16,777,215 个字符的字符串。

mediumblob

用于 blobs (binary large objects)。存放最多 2^24-1 字节的数据。

longtext

存放最大长度为 2^32-1个字符的字符串。

longblob

用于 blobs (binary large objects)。存放最多 2^32-1 字节的数据。

enum(x,y,z,etc.)

允许你输入可能值的列表。可以在 enum 列表中列出最大 2^16-1 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:enum(‘x’,’y’,’z’)

set

类似enum,set最多只能包含64个列表项,不过set可存储一个以上的值。

 

number 类型

 

数据类型

描述

tinyint(n)

-128到127常规。0到255无符号。在括号中规定最大位数。

smallint(n

-2^15到2^15-1常规。0到2^16-1无符号。在括号中规定最大位数。

mediumint(n)

-2^23到2^23-1常规。0到2^24-1无符号。在括号中规定最大位数。

int(n)

-2^31到2^31-1常规。0到2^32-1无符号。在括号中规定最大位数。

bigint(n)

-2^63到2^63-1常规。0到2^64-1无符号。在括号中规定最大位数。

float(n,d)

带浮动小数点的小数字。括号中规定最大位数。d规定小数点右侧最大位数。

double(n,d)

带浮动小数点的大数字。括号中规定最大位数。d规定小数点右侧最大位数。

decimal(n,d)

作为字符串存储的double类型,允许固定的小数点。

*这些整数类型拥有额外的选项unsigned。通常,整数可以是负数或正数。如果添加unsigned属性,那么范围将从0开始,而不是某个负数。

 

date 类型

 

数据类型

描述

date()

日期。格式:yyyy-mm-dd。注释:范围是从’1000-01-01’到’9999-12-31’

datetime()

日期+时间。格式:yyyy-mm-dd hh:mm:ss。注释:范围是从’1000-01-01 00:00:00’到’9999-12-31 23:59:59

timestamp()

时间戳。值使用unix纪元(‘1970-01-01 00:00:00’utc)至今的描述来存储。格式:yyyy-mm-dd hh:mm:ss。注释:支持的范围是从’1970-01-01 00:00:01’utc到’2038-01-09 03:14:07’utc

time()

时间。格式:hh:mm:ss注释:范围是从’-838:59:59’到’838:59:59’

year()

2位或4位格式的年。注释:4位格式所允许的值:1901到2155。2位格式所允许的值:70到69,表示从1970到2069。

* 即便 datetime 和 timestamp 返回相同的格式,它们的工作方式很不同。在 insert 或 update 查询中,timestamp 自动把自身设置为当前的日期和时间。timestamp 也接受不同的格式,比如 yyyymmddhhmmss、yymmddhhmmss、yyyymmdd 或 yymmdd。

0 0