数据类型
在
Microsoft®
SQL
Server™
中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money
等等)的特性。SQL
Server
提供系统数据类型集,定义了可与
SQL
Server
一起使用的所有数据类型。下面列出系统提供的数据类型集。
可以定义用户定义的数据类型,其是系统提供的数据类型的别名。有关用户定义的数据类型的更多信息,请参见
sp_addtype
和创建用户定义的数据类型。
当两个具有不同数据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时:
通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定所得值的数据类型。有关更多信息,请参见数据类型的优先顺序。
如果结果数据类型为
char、varchar、text、nchar、nvarchar
或
ntext,则结果值的排序规则由排序规则的优先顺序规则决定。有关更多信息,请参见排序规则的优先顺序。
结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。有关更多信息,请参见精度、小数位数和长度。
SQL
Server
为
SQL-92
兼容性提供了数据类型同义词。有关更多信息,请参见数据类型同义词。
精确数字
整数
bigint
从
-2^63
(-9223372036854775808)
到
2^63-1
(9223372036854775807)
的整型数据(所有数字)。
int
从
-2^31
(-2,147,483,648)
到
2^31
-
1
(2,147,483,647)
的整型数据(所有数字)。
smallint
从
-2^15
(-32,768)
到
2^15
-
1
(32,767)
的整数数据。
tinyint
从
0
到
255
的整数数据。
bit
bit
1
或
0
的整数数据。
decimal
和
numeric
decimal
从
-10^38
+1
到
10^38
–1
的固定精度和小数位的数字数据。
numeric
功能上等同于
decimal。
money
和
smallmoney
money
货币数据值介于
-2^63
(-922,337,203,685,4775808)
与
2^63
-
1
(+922,337,203,685,4775807)
之间,精确到货币单位的千分之十。
smallmoney
货币数据值介于
-214,7483648
与
+214,7483647
之间,精确到货币单位的千分之十。
近似数字
float
从
-179E
+
308
到
179E
+
308
的浮点精度数字。
real
从
-340E
+
38
到
340E
+
38
的浮点精度数字。
datetime
和
smalldatetime
datetime
从
1753
年
1
月
1
日到
9999
年
12
月
31
日的日期和时间数据,精确到百分之三秒(或
333
毫秒)。
smalldatetime
从
1900
年
1
月
1
日到
2079
年
6
月
6
日的日期和时间数据,精确到分钟。
字符串
char
固定长度的非
Unicode
字符数据,最大长度为
8,000
个字符。
varchar
可变长度的非
Unicode
数据,最长为
8,000
个字符。
text
可变长度的非
Unicode
数据,最大长度为
2^31
-
1
(2,147,483,647)
个字符。
Unicode
字符串
nchar
固定长度的
Unicode
数据,最大长度为
4,000
个字符。
nvarchar
可变长度
Unicode
数据,其最大长度为
4,000
字符。sysname
是系统提供用户定义的数据类型,在功能上等同于
nvarchar(128),用于引用数据库对象名。
ntext
可变长度
Unicode
数据,其最大长度为
2^30
-
1
(1,073,741,823)
个字符。
二进制字符串
binary
固定长度的二进制数据,其最大长度为
8,000
个字节。
varbinary
可变长度的二进制数据,其最大长度为
8,000
个字节。
image
可变长度的二进制数据,其最大长度为
2^31
-
1
(2,147,483,647)
个字节。
其它数据类型
cursor
游标的引用。
sql_variant
一种存储
SQL
Server
支持的各种数据类型(text、ntext、timestamp
和
sql_variant
除外)值的数据类型。
table
一种特殊的数据类型,存储供以后处理的结果集。
timestamp
数据库范围的唯一数字,每次更新行时也进行更新。
uniqueidentifier
全局唯一标识符
(GUID)。
请参见
CREATE
PROCEDURE
CREATE
TABLE
DECLARE
@local_variable
EXECUTE
表达式
函数
LIKE
SET
sp_bindefault
sp_bindrule
sp_droptype
sp_help
sp_rename
sp_unbindefault
sp_unbindrule
使用
Unicode
数据
可以设置的
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,这些数据类型的长度,并不是都指数据的大小。具体说就是:
(1)CHAR、VARCAHR的长度是指字符的长度,例如CHAR[3]则只能放字符串"123",如果插入数据"1234",则从高位截取,变为"123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的长度,其实和数据的大小无关!Length指的是显示宽度,举个例子:
区别:
length求得是字符长度
lengthb求得是字节长度。
用法(下面例子中第一个是4个字符长度,第二个例子中是8个字节):
SQL> select length('新春快乐') from dual;
LENGTH('新春快乐')
------------------
4
SQL> select lengthb('新春快乐') from dual;
LENGTHB('新春快乐')
-------------------
8
提示:不懂的一定要理解好
以上就是关于SQL 数据库 数据类型 固定长度的字符串怎么定义全部的内容,包括:SQL 数据库 数据类型 固定长度的字符串怎么定义、mysql能设置数据类型长度吗、请说明length函数与lengthb的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)